connectionTimeout is not timing out long client write times in JBossWeb

Solution Verified - Updated -

Issue

  • Thread dumps show threads stalling for some time in socket writes to clients in JBossWeb, for example:

    "127.0.0.1-8080-1" daemon prio=10 tid=0x0000000057503800 nid=0x7b37 runnable [0x00000000456fa000]
       java.lang.Thread.State: RUNNABLE
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(Unknown Source)
        at java.net.SocketOutputStream.write(Unknown Source)
        at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:724)
        at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:449)
        at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:299)
        at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:950)
        at org.apache.coyote.Response.action(Response.java:186)
        at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:345)
        at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:314)
        at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
    
  • This Socket write state appears to last much longer than our connector's configured connectionTimeout. Why is the connectionTimeout not limiting the length of these socket writes?

Environment

  • JBoss Enterprise Application Platform (EAP)

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.