On 28/09/2022 11:03, Rainer Jung wrote:
Am 28.09.2022 um 11:40 schrieb Rainer Jung:
Hi all,

I observe the following behavior:

NIO2 connector with HTTP2 and JSSE.
Client is (recent) curl or recent Firefox or Chrome.

If I call a JSP, that sleep for 8 seconds before responding, then the client gets after 5 seconds:

curl: (92) HTTP/2 stream 1 was not closed cleanly before end of the underlying stream

The JSP is:


Begin Sleeping ...
<%
Thread.sleep(8000);
%>
Done

Turning on debug logging I see:

28-Sep-2022 11:11:11.408 FINE [https-jsse-nio2-8444-exec-5] org.apache.coyote.http2.Http2AsyncParser$FrameCompletionHandler.failed Connection [0], Stream [0], Frame type [null], Error
         java.net.SocketTimeoutException
                 at org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.failed(SocketWrapperBase.java:1124)                  at org.apache.tomcat.util.net.SocketWrapperBase$VectoredIOCompletionHandler.failed(SocketWrapperBase.java:1066)                  at org.apache.tomcat.util.net.SecureNio2Channel$2.failed(SecureNio2Channel.java:1158)                  at java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:129)
                 at java.base/sun.nio.ch.Invoker$2.run(Invoker.java:219)
                 at java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)                  at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)                  at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)                  at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
                 at java.base/java.lang.Thread.run(Thread.java:829)


The request actually finished in Tomvcat, but when it tries to start back the response it gets another exception because of the closed stream


28-Sep-2022 11:11:14.809 FINE [https-jsse-nio2-8444-exec-4] org.apache.coyote.AbstractProcessor.setErrorState Error state [CLOSE_NOW] reported while processing request          org.apache.coyote.CloseNowException: Connection [0], Stream [1], This stream is not writable                  at org.apache.coyote.http2.Stream.doStreamCancel(Stream.java:269)                  at org.apache.coyote.http2.Http2UpgradeHandler.reserveWindowSize(Http2UpgradeHandler.java:939)
...


This only happens for NIO2, not NIO.

It happens for 10.1.0, 10.0.26, 9.0.67 but also for the older e.g. 10.0.20 and 9.0.60.

Should I open an issue?

Also happens with 10.0.10 and 10.0.0, so an old bug.

I don't think we'll forget about this problem but please open a BZ issue so we can track / reference it easily.

Mark

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

Reply via email to