Hello Tomcat users.
I’m facing some issues with HTTP/2 and I hope you can help me. Thanks in
advance!
I'm running Tomcat 10.1.31 on Debian 12 with JVM Version
17.0.13+11-Debian-2deb12u1.
My web application runs smoothly on HTTP/1.x but, when enabling HTTP/2, we
randomly start getting CLOSED_RST_RX errors on the log, causing the
application to become unstable.
Is there some additional configuration that I should be considering,
besides the UpgradeProtocol?
Here is an extract of the Stack Trace:
14-Nov-2024 18:19:31.134 SEVERE [https-jsse-nio-8443-exec-6]
org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse An I/O
error has occurred while writing a response message entity to the container
output stream.
org.glassfish.jersey.server.internal.process.MappableException:
org.apache.catalina.connector.ClientAbortException:
org.apache.coyote.CloseNowException: Connection [b], Stream [7], This
stream is in state [CLOSED_RST_RX] and is not writable
at
org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:67)
at
org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:139)
at
org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1116)
(…)
Caused by: org.apache.catalina.connector.ClientAbortException:
org.apache.coyote.CloseNowException: Connection [b], Stream [7], This
stream is in state [CLOSED_RST_RX] and is not writable
at
org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:303)
at
org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:265)
(…)
Caused by: org.apache.coyote.CloseNowException: Connection [b], Stream [7],
This stream is in state [CLOSED_RST_RX] and is not writable
at
org.apache.coyote.http2.Stream.doStreamCancel(Stream.java:304)
at
org.apache.coyote.http2.Http2UpgradeHandler.reserveWindowSize(Http2UpgradeHandler.java:946)
at
org.apache.coyote.http2.Stream$StreamOutputBuffer.flush(Stream.java:1120)
at
org.apache.coyote.http2.Stream$StreamOutputBuffer.flush(Stream.java:1064)
at
org.apache.coyote.http2.Stream$StreamOutputBuffer.flush(Stream.java:1191)
at
org.apache.coyote.http11.filters.GzipOutputFilter.flush(GzipOutputFilter.java:107)
at
org.apache.coyote.http2.Http2OutputBuffer.flush(Http2OutputBuffer.java:75)
at
org.apache.coyote.http2.StreamProcessor.flush(StreamProcessor.java:295)
at
org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:408)
at org.apache.coyote.Response.action(Response.java:208)
at
org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:299)
... 85 more
Caused by: org.apache.coyote.http2.StreamException: Connection [b],
Stream [7], This stream is in state [CLOSED_RST_RX] and is not writable
at
org.apache.coyote.http2.Stream.doStreamCancel(Stream.java:296)
... 95 more
Thanks!
Eduardo