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