[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Another Deadlock
clebert.suconic@jboss.com
do-not-reply at jboss.com
Fri Mar 6 18:12:59 EST 2009
This Thread is holding a Channel.lock:
[junit] "Thread-2 (group:JBM-async-session-delivery-threads-17258453)" daemon prio=1 tid=0x63ee2568 nid=0xae2 waiting for monitor entry [0x650b8000..0x650b9030]
| [junit] at org.jboss.messaging.integration.transports.netty.MessagingChannelHandler.exceptionCaught(MessagingChannelHandler.java:100)
| [junit] - waiting to lock <0x74398000> (a org.jboss.messaging.integration.transports.netty.NettyConnector$MessagingClientChannelHandler)
| [junit] at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:147)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:577)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:804)
| [junit] at org.jboss.netty.handler.codec.frame.FrameDecoder.exceptionCaught(FrameDecoder.java:224)
| [junit] at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:147)
| [junit] at org.jboss.netty.handler.codec.frame.FrameDecoder.handleUpstream(FrameDecoder.java:162)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:577)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:572)
| [junit] at org.jboss.netty.channel.Channels.fireExceptionCaught(Channels.java:605)
| [junit] at org.jboss.netty.channel.socket.nio.NioWorker.cleanUpWriteBuffer(NioWorker.java:558)
| [junit] - locked <0x74395c80> (a java.lang.Object)
| [junit] at org.jboss.netty.channel.socket.nio.NioWorker.write(NioWorker.java:322)
| [junit] at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.eventSunk(NioClientSocketPipelineSink.java:121)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:792)
| [junit] at org.jboss.netty.channel.SimpleChannelHandler.writeRequested(SimpleChannelHandler.java:309)
| [junit] at org.jboss.netty.channel.SimpleChannelHandler.handleDownstream(SimpleChannelHandler.java:271)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:600)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:797)
| [junit] at org.jboss.netty.channel.SimpleChannelHandler.writeRequested(SimpleChannelHandler.java:309)
| [junit] at org.jboss.netty.channel.SimpleChannelHandler.handleDownstream(SimpleChannelHandler.java:271)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:600)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:595)
| [junit] at org.jboss.netty.channel.Channels.write(Channels.java:876)
| [junit] at org.jboss.netty.channel.Channels.write(Channels.java:824)
| [junit] at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:236)
| [junit] at org.jboss.messaging.integration.transports.netty.NettyConnection.write(NettyConnection.java:128)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl$ChannelImpl.sendBlocking(RemotingConnectionImpl.java:1076)
| [junit] - locked <0x74390d18> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ClientConsumerImpl.doCleanUp(ClientConsumerImpl.java:620)
| [junit] at org.jboss.messaging.core.client.impl.ClientConsumerImpl.close(ClientConsumerImpl.java:263)
| [junit] at org.jboss.messaging.core.client.impl.ClientSessionImpl.closeChildren(ClientSessionImpl.java:1339)
| [junit] at org.jboss.messaging.core.client.impl.ClientSessionImpl.close(ClientSessionImpl.java:750)
| [junit] at org.jboss.messaging.core.server.cluster.impl.BridgeImpl$StopRunnable.run(BridgeImpl.java:322)
| [junit] - locked <0x74390b48> (a org.jboss.messaging.core.server.cluster.impl.BridgeImpl)
| [junit] at org.jboss.messaging.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:105)
| [junit] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
| [junit] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
| [junit] at java.lang.Thread.run(Thread.java:595)
|
If you look at the code, you will see the lock being held:
org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl$ChannelImpl.sendBlocking(RemotingConnectionImpl.java:1076) (the lock was acquired at lock.lock(), line 1053).
And this thread is trying to the channel lock, while it holds 0x74398000
| [junit] "New I/O client worker #4336-1" daemon prio=1 tid=0x0a1dbb18 nid=0x92c waiting on condition [0x6264f000..0x62650130]
| [junit] at sun.misc.Unsafe.park(Native Method)
| [junit] at java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)
| [junit] at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:716)
| [junit] at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:746)
| [junit] at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1076)
| [junit] at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:184)
| [junit] at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:256)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.callListeners(RemotingConnectionImpl.java:547)
| [junit] at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl.fail(RemotingConnectionImpl.java:421)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.failConnection(ConnectionManagerImpl.java:876)
| [junit] - locked <0x7461ccb8> (a java.lang.Object)
| [junit] at org.jboss.messaging.core.client.impl.ConnectionManagerImpl.connectionDestroyed(ConnectionManagerImpl.java:197)
| [junit] at org.jboss.messaging.integration.transports.netty.MessagingChannelHandler.channelDisconnected(MessagingChannelHandler.java:83)
| [junit] - locked <0x7461b3a0> (a org.jboss.messaging.integration.transports.netty.NettyConnector$MessagingClientChannelHandler)
| [junit] at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:137)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:577)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:804)
| [junit] at org.jboss.netty.handler.codec.frame.FrameDecoder.cleanup(FrameDecoder.java:299)
| [junit] at org.jboss.netty.handler.codec.frame.FrameDecoder.channelDisconnected(FrameDecoder.java:212)
| [junit] at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:137)
| [junit] at org.jboss.netty.handler.codec.frame.FrameDecoder.handleUpstream(FrameDecoder.java:162)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:577)
| [junit] at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:572)
| [junit] at org.jboss.netty.channel.Channels.fireChannelDisconnected(Channels.java:494)
| [junit] at org.jboss.netty.channel.socket.nio.NioWorker.close(NioWorker.java:514)
| [junit] at org.jboss.netty.channel.socket.nio.NioWorker.close(NioWorker.java:317)
| [junit] at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:306)
| [junit] at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:254)
| [junit] at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:171)
| [junit] at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:72)
| [junit] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
| [junit] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
| [junit] at java.lang.Thread.run(Thread.java:595)
|
|
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4215901#4215901
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4215901
More information about the jboss-dev-forums
mailing list