[jboss-jira] [JBoss JIRA] Resolved: (JGRP-496) TCP: deadlock when loopback=true
Bela Ban (JIRA)
jira-events at lists.jboss.org
Thu May 3 07:04:40 EDT 2007
[ http://jira.jboss.com/jira/browse/JGRP-496?page=all ]
Bela Ban resolved JGRP-496.
---------------------------
Resolution: Done
Fixed by making the call to Receiver.receive() not protected by a mutex; the receive() method must be reentrant.
> TCP: deadlock when loopback=true
> --------------------------------
>
> Key: JGRP-496
> URL: http://jira.jboss.com/jira/browse/JGRP-496
> Project: JGroups
> Issue Type: Bug
> Reporter: Bela Ban
> Assigned To: Bela Ban
> Fix For: 2.5
>
>
> Found one Java-level deadlock:
> =============================
> "ConnectionTable.Connection.Receiver [10.68.28.33:7800 - 10.68.0.33:41796]":
> waiting to lock monitor 0x080ca6dc (object 0xdec9a0c8, a org.jgroups.stack.NakReceiverWindow),
> which is held by "Incoming Thread,perf,10.68.28.33:7800"
> "Incoming Thread,perf,10.68.28.33:7800":
> waiting to lock monitor 0x080ca3dc (object 0xdeb9f9e8, a java.lang.Object),
> which is held by "ConnectionTable.Connection.Receiver [10.68.28.33:7800 - 10.68.0.33:41796]"
> Java stack information for the threads listed above:
> ===================================================
> "ConnectionTable.Connection.Receiver [10.68.28.33:7800 - 10.68.0.33:41796]":
> at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:714)
> - waiting to lock <0xdec9a0c8> (a org.jgroups.stack.NakReceiverWindow)
> at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:549)
> at org.jgroups.protocols.pbcast.NAKACK.handleXmitRsp(NAKACK.java:962)
> at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:565)
> at org.jgroups.protocols.BARRIER.up(BARRIER.java:119)
> at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:154)
> at org.jgroups.protocols.FD.up(FD.java:328)
> at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:301)
> at org.jgroups.protocols.MERGE2.up(MERGE2.java:145)
> at org.jgroups.protocols.Discovery.up(Discovery.java:224)
> at org.jgroups.protocols.MPING.up(MPING.java:151)
> at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1536)
> at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1485)
> at java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy.rejectedExecution(ThreadPoolExecutor.java:1455)
> at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:384)
> at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:867)
> at org.jgroups.protocols.TP.dispatchToThreadPool(TP.java:1050)
> at org.jgroups.protocols.TP.receive(TP.java:1021)
> at org.jgroups.protocols.BasicTCP.receive(BasicTCP.java:233)
> at org.jgroups.blocks.BasicConnectionTable.receive(BasicConnectionTable.java:163)
> - locked <0xdeb9f9e8> (a java.lang.Object)
> at org.jgroups.blocks.BasicConnectionTable$Connection.run(BasicConnectionTable.java:593)
> at java.lang.Thread.run(Thread.java:595)
> "Incoming Thread,perf,10.68.28.33:7800":
> at org.jgroups.blocks.BasicConnectionTable.receive(BasicConnectionTable.java:163)
> - waiting to lock <0xdeb9f9e8> (a java.lang.Object)
> at org.jgroups.blocks.BasicConnectionTable.send(BasicConnectionTable.java:230)
> at org.jgroups.protocols.TCP.send(TCP.java:54)
> at org.jgroups.protocols.BasicTCP.sendToSingleMember(BasicTCP.java:194)
> at org.jgroups.protocols.BasicTCP.sendToAllMembers(BasicTCP.java:179)
> at org.jgroups.protocols.TP.doSend(TP.java:1189)
> at org.jgroups.protocols.TP.send(TP.java:1179)
> at org.jgroups.protocols.TP.down(TP.java:953)
> at org.jgroups.protocols.Discovery.down(Discovery.java:325)
> at org.jgroups.protocols.MERGE2.down(MERGE2.java:184)
> at org.jgroups.protocols.FD_SOCK.down(FD_SOCK.java:406)
> at org.jgroups.protocols.FD.down(FD.java:363)
> at org.jgroups.stack.Protocol.down(Protocol.java:252)
> at org.jgroups.protocols.BARRIER.down(BARRIER.java:94)
> at org.jgroups.protocols.pbcast.NAKACK.send(NAKACK.java:651)
> at org.jgroups.protocols.pbcast.NAKACK.down(NAKACK.java:441)
> at org.jgroups.protocols.pbcast.STABLE.sendStableMessage(STABLE.java:628)
> at org.jgroups.protocols.pbcast.STABLE.handleRegularMessage(STABLE.java:281)
> at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:223)
> at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:723)
> - locked <0xdec9a0c8> (a org.jgroups.stack.NakReceiverWindow)
> at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:549)
> at org.jgroups.protocols.pbcast.NAKACK.handleXmitRsp(NAKACK.java:962)
> at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:565)
> at org.jgroups.protocols.BARRIER.up(BARRIER.java:119)
> at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:154)
> at org.jgroups.protocols.FD.up(FD.java:328)
> at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:301)
> at org.jgroups.protocols.MERGE2.up(MERGE2.java:145)
> at org.jgroups.protocols.Discovery.up(Discovery.java:224)
> at org.jgroups.protocols.MPING.up(MPING.java:151)
> at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1536)
> at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1485)
> 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.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list