[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Deadlock on pinger (recent commit)
clebert.suconic@jboss.com
do-not-reply at jboss.com
Mon Jun 15 12:56:23 EDT 2009
The latest commit on Pinger introduced a deadlock. It looks like easy to fix though.
| Java stack information for the threads listed above:
| ===================================================
| "Thread-4 (group:JBM-scheduled-threads-331781542)":
| at org.jboss.messaging.integration.transports.netty.MessagingChannelHandler.exceptionCaught(MessagingChannelHandler.java:103)
| - waiting to lock <0x00007f7488dc0610> (a org.jboss.messaging.integration.transports.netty.NettyAcceptor$MessagingServerChannelHandler)
| at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:147)
| at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:567)
| at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:803)
| at org.jboss.netty.handler.codec.frame.FrameDecoder.exceptionCaught(FrameDecoder.java:206)
| at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:129)
| at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:567)
| at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:562)
| at org.jboss.netty.channel.Channels.fireExceptionCaught(Channels.java:607)
| at org.jboss.netty.channel.socket.nio.NioWorker.cleanUpWriteBuffer(NioWorker.java:577)
| - locked <0x00007f7488dc0848> (a java.lang.Object)
| at org.jboss.netty.channel.socket.nio.NioWorker.write(NioWorker.java:326)
| at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:140)
| at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:79)
| at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:791)
| at org.jboss.netty.channel.SimpleChannelHandler.writeRequested(SimpleChannelHandler.java:309)
| at org.jboss.netty.channel.SimpleChannelHandler.handleDownstream(SimpleChannelHandler.java:271)
| at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:590)
| at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:585)
| at org.jboss.netty.channel.Channels.write(Channels.java:878)
| at org.jboss.netty.channel.Channels.write(Channels.java:826)
| at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:236)
| at org.jboss.messaging.integration.transports.netty.NettyConnection.write(NettyConnection.java:128)
| at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl$ChannelImpl.send(RemotingConnectionImpl.java:1056)
| - locked <0x00007f7488dc1ce0> (a java.lang.Object)
| at org.jboss.messaging.core.remoting.impl.RemotingConnectionImpl$ChannelImpl.send(RemotingConnectionImpl.java:1006)
| at org.jboss.messaging.core.remoting.impl.Pinger.run(Pinger.java:122)
| - locked <0x00007f7487faaef8> (a org.jboss.messaging.core.remoting.impl.Pinger)
| at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417)
| at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:280)
| at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:135)
| at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:65)
| at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:142)
| at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:166)
| at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
| at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
| at java.lang.Thread.run(Thread.java:595)
| "New I/O server worker #1-1":
| at org.jboss.messaging.core.remoting.impl.Pinger.close(Pinger.java:130)
| - waiting to lock <0x00007f7487faaef8> (a org.jboss.messaging.core.remoting.impl.Pinger)
| at org.jboss.messaging.core.remoting.server.impl.RemotingServiceImpl.closeConnection(RemotingServiceImpl.java:399)
| at org.jboss.messaging.core.remoting.server.impl.RemotingServiceImpl.connectionDestroyed(RemotingServiceImpl.java:319)
| at org.jboss.messaging.integration.transports.netty.NettyAcceptor$Listener.connectionDestroyed(NettyAcceptor.java:458)
| at org.jboss.messaging.integration.transports.netty.MessagingChannelHandler.channelDisconnected(MessagingChannelHandler.java:85)
| - locked <0x00007f7488dc0610> (a org.jboss.messaging.integration.transports.netty.NettyAcceptor$MessagingServerChannelHandler)
| at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:137)
| at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:567)
| at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:803)
| at org.jboss.netty.handler.codec.frame.FrameDecoder.cleanup(FrameDecoder.java:304)
| at org.jboss.netty.handler.codec.frame.FrameDecoder.channelDisconnected(FrameDecoder.java:194)
| at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:119)
| at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:567)
| at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:562)
| at org.jboss.netty.channel.Channels.fireChannelDisconnected(Channels.java:496)
| at org.jboss.netty.channel.socket.nio.NioWorker.close(NioWorker.java:520)
| at org.jboss.netty.channel.socket.nio.NioWorker.close(NioWorker.java:321)
| at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:307)
| at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:255)
| at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:176)
| at org.jboss.netty.util.internal.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:72)
| at org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:49)
| at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
| at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
| at java.lang.Thread.run(Thread.java:595)
|
| Found 1 deadlock.
|
|
I'm removing the synchronized on Pinger.close at my copy just to get the testsuite running. I will post the results here later today.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4237718#4237718
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4237718
More information about the jboss-dev-forums
mailing list