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