[jboss-jira] [JBoss JIRA] Commented: (JGRP-532) TCP: hangs without FC
Bela Ban (JIRA)
jira-events at lists.jboss.org
Fri Jun 15 08:21:11 EDT 2007
[ http://jira.jboss.com/jira/browse/JGRP-532?page=comments#action_12365508 ]
Bela Ban commented on JGRP-532:
-------------------------------
Fact is that TCP hangs when we don't pull off data of the socket, the hanging receiver is:
"ConnectionTable.Connection.Receiver [192.168.0.5:7801 - 192.168.0.5:58328]" daemon prio=10 tid=0x00002aaacb666000 nid=0x1682 waiting for monitor entry [0x00000000400e4000..0x00000000400e4a10]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.jgroups.protocols.pbcast.NAKACK.handleMessage(NAKACK.java:710)
- waiting to lock <0x00002aaac68dbcd0> (a org.jgroups.stack.NakReceiverWindow)
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:546)
at org.jgroups.protocols.BARRIER.up(BARRIER.java:122)
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:298)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:145)
at org.jgroups.protocols.Discovery.up(Discovery.java:220)
at org.jgroups.protocols.MPING.up(MPING.java:151)
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1542)
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1491)
at java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy.rejectedExecution(ThreadPoolExecutor.java:1737)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
at org.jgroups.protocols.TP.dispatchToThreadPool(TP.java:1041)
at org.jgroups.protocols.TP.receive(TP.java:1012)
at org.jgroups.protocols.BasicTCP.receive(BasicTCP.java:233)
at org.jgroups.blocks.BasicConnectionTable.receive(BasicConnectionTable.java:162)
at org.jgroups.blocks.BasicConnectionTable$Connection.run(BasicConnectionTable.java:606)
at java.lang.Thread.run(Thread.java:619)
This is due to the fact that the rejection policy was "Run", so the current thread will actually attempt to deliver the message itself. This is bad, as it can hang and therefore not receive any more data off of the socket, which causes the sender to block.
A simple change of the rejection policy to "Discard" should do the job, never blocking the receiving thread
> TCP: hangs without FC
> ---------------------
>
> Key: JGRP-532
> URL: http://jira.jboss.com/jira/browse/JGRP-532
> Project: JGroups
> Issue Type: Bug
> Reporter: Bela Ban
> Assigned To: Bela Ban
> Fix For: 2.5
>
> Attachments: config.txt, tcp.xml, tmp.txt
>
>
> Usually, FC is enabled, but when FC is not present, perf.Test with 2 senders and the attached tcp.xml/config.txt hangs. Stack trace attached too.
--
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