You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by "Asankha C. Perera (JIRA)" <ji...@apache.org> on 2008/10/08 04:11:44 UTC
[jira] Resolved: (SYNAPSE-470) Expiring keep-alive connections can
cause thread hangs
[ https://issues.apache.org/jira/browse/SYNAPSE-470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Asankha C. Perera resolved SYNAPSE-470.
---------------------------------------
Resolution: Fixed
Fixed on trunk
> Expiring keep-alive connections can cause thread hangs
> ------------------------------------------------------
>
> Key: SYNAPSE-470
> URL: https://issues.apache.org/jira/browse/SYNAPSE-470
> Project: Synapse
> Issue Type: Bug
> Components: Transports
> Affects Versions: 1.2
> Reporter: Eric Hubert
> Assignee: Asankha C. Perera
> Fix For: 1.3
>
>
> The last entries in the logs before a hang are:
> [HttpClientWorker-369] ERROR ServerHandler IO error submiting response : Connection is closed
> [HttpClientWorker-362] ERROR ServerHandler IO error submiting response : Connection is closed
> Here are the suspicious entries from the thread dumps. When I get a bunch of thread dumps during normal operations, I could never find those entries in it. No matter how often I tried. But these entries seem to be a pattern. They have a server worker waiting at the same position in the code. They are waiting of a notification (from a ClientHandler?).
> Additionally on another node a client worker was also waiting for a notification.
> Here are the details from the dump:
> "HttpServerWorker-5" prio=1 tid=0xa8b9d670 nid=0x2b4d in Object.wait() [0xa56fe000..0xa56ff160]
> at java.lang.Object.wait(Native Method)
> at java.lang.Object.wait(Object.java:474)
> at org.apache.synapse.transport.nhttp.Axis2HttpRequest.streamMessageContents(Axis2HttpRequest.java:213)
> "HttpServerWorker-14" prio=1 tid=0x0840b6c0 nid=0x4194 in Object.wait() [0xa577e000..0xa577efe0]
> at java.lang.Object.wait(Native Method)
> - waiting on <0xea555cf8> (a org.apache.synapse.transport.nhttp.Axis2HttpRequest)
> at java.lang.Object.wait(Object.java:474)
> at org.apache.synapse.transport.nhttp.Axis2HttpRequest.streamMessageContents(Axis2HttpRequest.java:213)
> "HttpClientWorker-62" prio=1 tid=0xa89d03a8 nid=0x7c14 in Object.wait() [0xa4ffe000..0xa4fff0e0]
> at java.lang.Object.wait(Native Method)
> - waiting on <0xb1d0da00> (a java.lang.Object)
> at java.lang.Object.wait(Object.java:474)
> at org.apache.http.nio.util.SharedOutputBuffer.flushContent(SharedOutputBuffer.java:161)
> Another thing I noticed and don't know whether this is normal or not is the number at the end of the Client-Worker Threads. While ServerWorker stay at -1 till -20. ClientWorker increase up to around -400. The total number is only about 20 each. So it looks to me as if ClientWorker Threads somehow die and get newly created.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org