[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