On 27/06/2021 12:05, Erik Nilsson wrote:
We might have found an issue with the window size in http2 in Tomcat 9.0.45.

Thanks for the heads up.

9.0.45 has fixes for all the known issues with window size management so this looks like a potential new bug.

java.lang.IllegalStateException: Connection [483], Stream [21], Already waiting
         at 
org.apache.coyote.http2.WindowAllocationManager.waitFor(WindowAllocationManager.java:143)
         at 
org.apache.coyote.http2.WindowAllocationManager.waitForConnection(WindowAllocationManager.java:84)
         at 
org.apache.coyote.http2.Stream.waitForConnectionAllocation(Stream.java:257)
         at 
org.apache.coyote.http2.Http2UpgradeHandler.reserveWindowSize(Http2UpgradeHandler.java:903)
         at 
org.apache.coyote.http2.Stream$StreamOutputBuffer.flush(Stream.java:904)
         at 
org.apache.coyote.http2.Stream$StreamOutputBuffer.doWrite(Stream.java:823)
         at 
org.apache.coyote.http2.Http2OutputBuffer.doWrite(Http2OutputBuffer.java:59)
         at org.apache.coyote.Response.doWrite(Response.java:606)
         at 
org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:340)
         at 
org.apache.catalina.connector.OutputBuffer.appendByteArray(OutputBuffer.java:753)
         at 
org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:682)
         at 
org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:388)
         at 
org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:366)
         at 
org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96)
         at 
org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)


This problem occurs when we are using the nghttp client to receive
data from our root page (nghttp -vnsay https://localhost). By
decreasing the initial window size to 8 kb in nghttp (flag -w 13), the
problem disappears. Another solution is to set the http2-connector
attribute maxConcurrentStreamExecution="1".

Hmm. That suggests some sort of concurrency issue.

How easy is this to reproduce? I'll see if I can reproduce this locally but it may well depend on the structure of the page you are testing with.

Mark

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to