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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to