https://bz.apache.org/bugzilla/show_bug.cgi?id=66390
Bug ID: 66390 Summary: Test TestNonBlockingAPI (testNonBlockingWriteError02NoSwallow, testNonBlockingWriteError02Swallow) using NIO fail on Solaris 11 Product: Tomcat 10 Version: 10.1.4 Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P2 Component: Connectors Assignee: dev@tomcat.apache.org Reporter: rainer.j...@kippdata.de Target Milestone: ------ The tests testNonBlockingWriteError02NoSwallow() and testNonBlockingWriteError02Swallow() of TestNonBlockingAPI fail for me on Solaris 10 and 11, but only when using the NIO connector, not for NIO2. Examples below are when Java 11 and TC 10.1.4 but it is not specific to these. I can see the same problem for TC 8.5, 9.0, 10.0, 10.1 and 11 and for Java 8, 9 and 11. The test loops unterminated doing flush on Solaris until after 60 seconds the TC instance gets shut down. The access log entry for Solaris is 127.0.0.1 - - [12/Dec/2022:23:36:18 +0100] "POST / HTTP/1.1" 500 - http-nio-127.0.0.1-auto-1-exec-2 1012864 for Linux (no problem) 127.0.0.1 - - [12/Dec/2022:23:28:29 +0100] "POST / HTTP/1.1" 500 - http-nio-127.0.0.1-auto-1-exec-2 208015 so the Solaris line logging a request duration of 1 second does not reflect this looping for 60 seconds. I added some debug logging to the TestWriteListener02.onWritePossible(), which follows. If there is more I can do to analyze please let me know. First the patch that generates the output lines: diff --git a/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java b/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java index 0db6faa900..cc8ba0d0b0 100644 --- a/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java +++ b/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java @@ -1659,27 +1659,36 @@ public class TestNonBlockingAPI extends TomcatBaseTest { @Override public void onWritePossible() throws IOException { try { + log.info("TestWriteListener02 onWritePossible"); ServletOutputStream sos = ac.getResponse().getOutputStream(); do { + log.info("sos.isReady() stage.get()==" + stage.get()); if (stage.get() == 0) { + log.info("Committing"); // Commit the response ac.getResponse().flushBuffer(); responseCommitLatch.countDown(); stage.incrementAndGet(); } else if (stage.get() == 1) { + log.info("Waiting for client drop"); // Wait for the client to drop the connection try { + log.info("Calling clientCloseLatch.await()"); clientCloseLatch.await(); } catch (InterruptedException e) { + log.info("Got InterruptedException", e); // Ignore } + log.info("Writing TEST"); sos.print("TEST"); stage.incrementAndGet(); } else if (stage.get() == 2) { + log.info("Flushing"); sos.flush(); } } while (sos.isReady()); } catch (IOException ioe) { + log.info("IOException", ioe); if (!swallowIoException) { throw ioe; } This shows the following behavior on Solaris: [junit] 12-Dec-2022 23:36:22.753 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AbstractProtocol$ConnectionHandler.process Created new processor [org.apache.coyote.http11.Http11Processor@71be62ce] [junit] 12-Dec-2022 23:36:22.754 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.http11.Http11InputBuffer.fill Before fill(): parsingHeader: [true], parsingRequestLine: [true], parsingRequestLinePhase: [0], parsingRequestLineStart: [0], byteBuffer.position(): [0], byteBuffer.limit(): [0], end: [0] [junit] 12-Dec-2022 23:36:22.755 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.tomcat.util.net.SocketWrapperBase.populateReadBuffer Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@308368f5:org.apache.tomcat.util.net.NioChannel@7f798351:java.nio.channels.SocketChannel[connected local=/127.0.0.1:48778 remote=/127.0.0.1:52071]], Read from buffer: [0] [junit] 12-Dec-2022 23:36:22.757 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.read Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@308368f5:org.apache.tomcat.util.net.NioChannel@7f798351:java.nio.channels.SocketChannel[connected local=/127.0.0.1:48778 remote=/127.0.0.1:52071]], Read direct from socket: [36] [junit] 12-Dec-2022 23:36:22.757 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.http11.Http11InputBuffer.fill Received [GET / HTTP/1.1 [junit] Host: localhost: [junit] [junit] ] [junit] 12-Dec-2022 23:36:22.759 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.tomcat.util.http.Parameters.setQueryStringCharset Set query string encoding to UTF-8 [junit] 12-Dec-2022 23:36:22.762 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.authenticator.AuthenticatorBase.invoke Security checking request GET / [junit] 12-Dec-2022 23:36:22.763 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.realm.RealmBase.findSecurityConstraints No applicable constraints defined [junit] 12-Dec-2022 23:36:22.764 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.authenticator.AuthenticatorBase.invoke Not subject to any constraint [junit] 12-Dec-2022 23:36:22.766 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.core.StandardWrapper.allocate Allocating instance [junit] 12-Dec-2022 23:36:22.766 FINER [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.core.StandardWrapper.allocate Returning instance [junit] 12-Dec-2022 23:36:22.783 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AsyncStateMachine.updateState Changing async state from [DISPATCHED] to [STARTING] [junit] 12-Dec-2022 23:36:22.810 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AbstractProcessorLight.process Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@308368f5:org.apache.tomcat.util.net.NioChannel@7f798351:java.nio.channels.SocketChannel[connected local=/127.0.0.1:48778 remote=/127.0.0.1:52071]], Status in: [OPEN_READ], State out: [LONG] [junit] 12-Dec-2022 23:36:22.811 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AsyncStateMachine.updateState Changing async state from [STARTING] to [STARTED] [junit] 12-Dec-2022 23:36:22.812 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AbstractProcessorLight.process Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@308368f5:org.apache.tomcat.util.net.NioChannel@7f798351:java.nio.channels.SocketChannel[connected local=/127.0.0.1:48778 remote=/127.0.0.1:52071]], State after async post processing: [LONG] [junit] 12-Dec-2022 23:36:22.813 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AbstractProcessorLight.process Processing dispatch type: [NON_BLOCKING_WRITE] [junit] 12-Dec-2022 23:36:22.813 FINE [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AsyncStateMachine.updateState Changing async state from [STARTED] to [READ_WRITE_OP] [junit] 12-Dec-2022 23:36:22.814 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible TestWriteListener02 onWritePossible [junit] 12-Dec-2022 23:36:22.819 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible sos.isReady() stage.get()==0 [junit] 12-Dec-2022 23:36:22.820 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Committing [junit] 12-Dec-2022 23:36:22.828 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible sos.isReady() stage.get()==1 [junit] 12-Dec-2022 23:36:22.829 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Waiting for client drop [junit] 12-Dec-2022 23:36:22.829 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Calling clientCloseLatch.await() [junit] 12-Dec-2022 23:36:22.830 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Writing TEST and then an infinite loop of [junit] 12-Dec-2022 23:36:22.831 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible sos.isReady() stage.get()==2 [junit] 12-Dec-2022 23:36:22.832 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Flushing [junit] 12-Dec-2022 23:36:22.844 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible sos.isReady() stage.get()==2 [junit] 12-Dec-2022 23:36:22.845 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Flushing [junit] 12-Dec-2022 23:36:22.846 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible sos.isReady() stage.get()==2 [junit] 12-Dec-2022 23:36:22.846 INFO [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Flushing ... After a minute of these flush lines a timeout triggers and the server gets shutdown with the warning: [junit] 12-Dec-2022 23:37:25.118 WARNING [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [ROOT] is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation. Stack trace of request processing thread:[ [junit] java.logging@11.0.17/java.util.logging.StreamHandler.publish(StreamHandler.java:199) [junit] java.logging@11.0.17/java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:95) [junit] java.logging@11.0.17/java.util.logging.Logger.log(Logger.java:979) [junit] java.logging@11.0.17/java.util.logging.Logger.doLog(Logger.java:1006) [junit] java.logging@11.0.17/java.util.logging.Logger.logp(Logger.java:1172) [junit] app//org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:173) [junit] app//org.apache.juli.logging.DirectJDKLog.info(DirectJDKLog.java:116) [junit] app//org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible(TestNonBlockingAPI.java:1686) [junit] app//org.apache.coyote.Response.onWritePossible(Response.java:791) [junit] app//org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:179) [junit] app//org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:243) [junit] app//org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:52) [junit] app//org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:859) [junit] app//org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1734) [junit] app//org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [junit] app//org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [junit] app//org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [junit] app//org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [junit] java.base@11.0.17/java.lang.Thread.run(Thread.java:834)] In the working linux case I get: [junit] 12-Dec-2022 23:28:30.156 INFORMATION [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible TestWriteListener02 onWritePossible [junit] 12-Dec-2022 23:28:30.156 INFORMATION [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible sos.isReady() stage.get()==0 [junit] 12-Dec-2022 23:28:30.156 INFORMATION [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Committing [junit] 12-Dec-2022 23:28:30.157 INFORMATION [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible sos.isReady() stage.get()==1 [junit] 12-Dec-2022 23:28:30.157 INFORMATION [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Waiting for client drop [junit] 12-Dec-2022 23:28:30.157 INFORMATION [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Calling clientCloseLatch.await() [junit] 12-Dec-2022 23:28:30.158 INFORMATION [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Writing TEST [junit] 12-Dec-2022 23:28:30.158 INFORMATION [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible sos.isReady() stage.get()==2 [junit] 12-Dec-2022 23:28:30.158 INFORMATION [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible Flushing [junit] 12-Dec-2022 23:28:30.161 FEIN [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AbstractProcessor.setErrorState Error state [CLOSE_CONNECTION_NOW] reported while processing request [junit] java.io.IOException: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt [junit] at java.base/sun.nio.ch.FileDispatcherImpl.write0(Native Method) [junit] at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [junit] at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:113) [junit] at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:79) [junit] at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:50) [junit] at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [junit] at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:118) [junit] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1405) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) [junit] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.flushNonBlocking(NioEndpoint.java:1303) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:714) [junit] at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:573) [junit] at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157) [junit] at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:221) [junit] at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1267) [junit] at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:404) [junit] at org.apache.coyote.Response.action(Response.java:210) [junit] at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:302) [junit] at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:269) [junit] at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:118) [junit] at org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible(TestNonBlockingAPI.java:1687) [junit] at org.apache.coyote.Response.onWritePossible(Response.java:791) [junit] at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:179) [junit] at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:243) [junit] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:52) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:859) [junit] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1734) [junit] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [junit] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [junit] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [junit] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [junit] at java.base/java.lang.Thread.run(Thread.java:834) [junit] 12-Dec-2022 23:28:30.162 FEIN [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AsyncStateMachine.updateState Changing async state from [READ_WRITE_OP] to [ERROR] [junit] 12-Dec-2022 23:28:30.162 INFORMATION [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible IOException [junit] org.apache.catalina.connector.ClientAbortException: java.io.IOException: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt [junit] at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:306) [junit] at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:269) [junit] at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:118) [junit] at org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible(TestNonBlockingAPI.java:1687) [junit] at org.apache.coyote.Response.onWritePossible(Response.java:791) [junit] at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:179) [junit] at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:243) [junit] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:52) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:859) [junit] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1734) [junit] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [junit] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [junit] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [junit] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [junit] at java.base/java.lang.Thread.run(Thread.java:834) [junit] Caused by: java.io.IOException: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt [junit] at java.base/sun.nio.ch.FileDispatcherImpl.write0(Native Method) [junit] at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [junit] at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:113) [junit] at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:79) [junit] at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:50) [junit] at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [junit] at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:118) [junit] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1405) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) [junit] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.flushNonBlocking(NioEndpoint.java:1303) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:714) [junit] at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:573) [junit] at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157) [junit] at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:221) [junit] at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1267) [junit] at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:404) [junit] at org.apache.coyote.Response.action(Response.java:210) [junit] at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:302) [junit] ... 14 more [junit] 12-Dec-2022 23:28:30.162 FEIN [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AbstractProcessor.setErrorState Error state [CLOSE_NOW] reported while processing request [junit] org.apache.catalina.connector.ClientAbortException: java.io.IOException: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt [junit] at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:306) [junit] at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:269) [junit] at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:118) [junit] at org.apache.catalina.nonblocking.TestNonBlockingAPI$TestWriteListener02.onWritePossible(TestNonBlockingAPI.java:1687) [junit] at org.apache.coyote.Response.onWritePossible(Response.java:791) [junit] at org.apache.catalina.connector.CoyoteAdapter.asyncDispatch(CoyoteAdapter.java:179) [junit] at org.apache.coyote.AbstractProcessor.dispatch(AbstractProcessor.java:243) [junit] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:52) [junit] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:859) [junit] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1734) [junit] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) [junit] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [junit] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [junit] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [junit] at java.base/java.lang.Thread.run(Thread.java:834) [junit] Caused by: java.io.IOException: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt [junit] at java.base/sun.nio.ch.FileDispatcherImpl.write0(Native Method) [junit] at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) [junit] at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:113) [junit] at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:79) [junit] at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:50) [junit] at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:466) [junit] at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:118) [junit] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1405) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.doWrite(SocketWrapperBase.java:764) [junit] at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.flushNonBlocking(NioEndpoint.java:1303) [junit] at org.apache.tomcat.util.net.SocketWrapperBase.flush(SocketWrapperBase.java:714) [junit] at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.flush(Http11OutputBuffer.java:573) [junit] at org.apache.coyote.http11.filters.ChunkedOutputFilter.flush(ChunkedOutputFilter.java:157) [junit] at org.apache.coyote.http11.Http11OutputBuffer.flush(Http11OutputBuffer.java:221) [junit] at org.apache.coyote.http11.Http11Processor.flush(Http11Processor.java:1267) [junit] at org.apache.coyote.AbstractProcessor.action(AbstractProcessor.java:404) [junit] at org.apache.coyote.Response.action(Response.java:210) [junit] at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:302) [junit] ... 14 more [junit] 12-Dec-2022 23:28:30.162 FEIN [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AsyncStateMachine.updateState Changing async state from [ERROR] to [ERROR] [junit] 12-Dec-2022 23:28:30.162 FEIN [http-nio-127.0.0.1-auto-3-exec-1] org.apache.catalina.core.StandardHostValve.throwable Remote Client Aborted Request, IOException: [Die Verbindung wurde vom Kommunikationspartner zurückgesetzt] [junit] 12-Dec-2022 23:28:30.163 FEIN [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AsyncStateMachine.updateState Changing async state from [ERROR] to [COMPLETING] [junit] 12-Dec-2022 23:28:30.163 FEIN [http-nio-127.0.0.1-auto-3-exec-1] org.apache.coyote.AsyncStateMachine.updateState Changing async state from [COMPLETING] to [DISPATCHED] Best regards, Rainer -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org