Have there been any recent changes that might
affect org.apache.tomcat.websocket.server.TestAsyncMessagesPerformance
using NIO2? I ran it a few times and it fails on Linux with Azul Java
21.0.1+12-LTS -
org.apache.tomcat.util.net.AbstractEndpoint.processSocket Executor rejected
sock
et [org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper@54bff557:Closed
Nio2Channel] for processing
       java.util.concurrent.RejectedExecutionException: Executor not
running, can't force a command into the queue

Full output below.

Igal

❯ cat
/workspace/build/tomcat/main/build/logs/TEST-org.apache.tomcat.websocket.server.TestAsyncMessagesPerformance.NIO2.txt

Testsuite: org.apache.tomcat.websocket.server.TestAsyncMessagesPerformance
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 26.312 sec
------------- Standard Output ---------------
Sent Hello message, waiting for data
Expected diff < 500,000 but was [567099], count [56]
Expected diff < 500,000 but was [709569], count [65]
Expected diff < 500,000 but was [537496], count [110]
Expected diff < 500,000 but was [502372], count [116]
Expected diff < 500,000 but was [595551], count [152]
Expected diff < 500,000 but was [533207], count [164]
Expected diff < 500,000 but was [534436], count [176]
Expected diff < 500,000 but was [600551], count [179]
Expected diff < 500,000 but was [523944], count [182]
Expected diff < 500,000 but was [532614], count [185]
Expected diff < 500,000 but was [657567], count [188]
Expected diff < 500,000 but was [846194], count [191]
Expected diff < 500,000 but was [532466], count [194]
Expected diff < 500,000 but was [514685], count [224]
Expected diff < 500,000 but was [519522], count [230]
Expected diff < 500,000 but was [554426], count [239]
Expected diff < 500,000 but was [527420], count [245]
Expected diff < 500,000 but was [610897], count [269]
Expected diff < 500,000 but was [624163], count [281]
Expected diff < 500,000 but was [841963], count [287]
Expected diff < 500,000 but was [519565], count [293]
Expected diff < 500,000 but was [635134], count [302]
Expected diff < 500,000 but was [660258], count [305]
Expected diff < 500,000 but was [501776], count [311]
Expected diff < 500,000 but was [568888], count [314]
Expected diff < 500,000 but was [581086], count [323]
Expected diff < 500,000 but was [609751], count [326]
Expected diff < 500,000 but was [645257], count [332]
Expected diff < 500,000 but was [688288], count [335]
Expected diff < 500,000 but was [554412], count [338]
Expected diff < 500,000 but was [563938], count [359]
Expected diff < 500,000 but was [562841], count [362]
Expected diff < 500,000 but was [673779], count [365]
Expected diff < 500,000 but was [546897], count [371]
Expected diff < 500,000 but was [643343], count [374]
Expected diff < 500,000 but was [723508], count [383]
Expected diff < 500,000 but was [594315], count [392]
Expected diff < 500,000 but was [752402], count [395]
Expected diff < 500,000 but was [500642], count [401]
Expected diff < 500,000 but was [544715], count [410]
Expected diff < 500,000 but was [547439], count [413]
Expected diff < 500,000 but was [529557], count [416]
Expected diff < 500,000 but was [504613], count [428]
Expected diff < 500,000 but was [509866], count [434]
Expected diff < 500,000 but was [550444], count [440]
Expected diff < 500,000 but was [550533], count [455]
Expected diff < 500,000 but was [506029], count [467]
Expected diff < 500,000 but was [637453], count [470]
Expected diff < 500,000 but was [640345], count [479]
Expected diff < 500,000 but was [716690], count [485]
Expected diff < 500,000 but was [17129814], count [488]
Expected diff > 40ms but was [33748798], count [489]
Expected diff < 500,000 but was [1130429], count [490]
Expected diff < 500,000 but was [517541], count [491]
Expected diff < 500,000 but was [501639], count [497]
Expected diff < 500,000 but was [593562], count [500]
Expected diff < 500,000 but was [681615], count [503]
Expected diff < 500,000 but was [532502], count [524]
Expected diff < 500,000 but was [598957], count [527]
Expected diff < 500,000 but was [611344], count [539]
Expected diff < 500,000 but was [627601], count [554]
Expected diff < 500,000 but was [574242], count [557]
Expected diff < 500,000 but was [548632], count [566]
Expected diff < 500,000 but was [542409], count [578]
Expected diff < 500,000 but was [538701], count [584]
Expected diff < 500,000 but was [500443], count [602]
Expected diff < 500,000 but was [582018], count [608]
Expected diff < 500,000 but was [567923], count [635]
Expected diff < 500,000 but was [512395], count [656]
Expected diff < 500,000 but was [647834], count [662]
Expected diff < 500,000 but was [532620], count [665]
Expected diff < 500,000 but was [506794], count [668]
Expected diff < 500,000 but was [578525], count [689]
Expected diff < 500,000 but was [509293], count [695]
Expected diff < 500,000 but was [689391], count [716]
Expected diff < 500,000 but was [678806], count [743]
Expected diff < 500,000 but was [527397], count [746]
Expected diff < 500,000 but was [533796], count [761]
Expected diff < 500,000 but was [555531], count [764]
Expected diff < 500,000 but was [1333848], count [767]
Expected diff < 500,000 but was [550121], count [770]
Expected diff < 500,000 but was [563466], count [935]
Expected diff < 500,000 but was [567300], count [959]
Expected diff < 500,000 but was [567141], count [1022]
Expected diff < 500,000 but was [547720], count [1049]
Expected diff < 500,000 but was [550465], count [1061]
Expected diff < 500,000 but was [524857], count [1118]
Expected diff < 500,000 but was [526693], count [1145]
Expected diff < 500,000 but was [824638], count [1154]
Expected diff < 500,000 but was [532072], count [1346]
Expected diff < 500,000 but was [554228], count [1493]
------------- ---------------- ---------------
------------- Standard Error -----------------
07-Jan-2024 15:18:07.338 INFO [main]
org.apache.catalina.startup.LoggingBaseTest.setUp Starting test case
[testAsyncTiming]
07-Jan-2024 15:18:07.766 INFO [main]
org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler
["http-nio2-127.0.0.1-auto-1"]
07-Jan-2024 15:18:07.797 INFO [main]
org.apache.catalina.core.StandardService.startInternal Starting service
[Tomcat]
07-Jan-2024 15:18:07.797 INFO [main]
org.apache.catalina.core.StandardEngine.startInternal Starting Servlet
engine: [Apache Tomcat/11.0.0-M16]
07-Jan-2024 15:18:07.894 INFO [main]
org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler
["http-nio2-127.0.0.1-auto-1-36879"]
07-Jan-2024 15:18:33.394 INFO [main]
org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler
["http-nio2-127.0.0.1-auto-1-36879"]
07-Jan-2024 15:18:33.402 INFO [main]
org.apache.catalina.core.StandardService.stopInternal Stopping service
[Tomcat]
07-Jan-2024 15:18:33.423 WARNING [main]
org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The
web application [ROOT] appears to
have started a thread named [http-nio2-127.0.0.1-auto-1-exec-3] but has
failed to stop it. This is very likely to create a memory leak. Stack trace
of thread:
java.base/java.lang.Thread.sleep0(Native Method)
java.base/java.lang.Thread.sleep(Thread.java:509)
org.apache.tomcat.websocket.TesterAsyncTiming$Endpoint.onMessage(TesterAsyncTiming.java:64)

java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)

java.base/java.lang.reflect.Method.invoke(Method.java:580)
org.apache.tomcat.websocket.pojo.PojoMessageHandlerWholeBase.onMessage(PojoMessageHandlerWholeBase.java:102)

org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:390)

org.apache.tomcat.websocket.server.WsFrameServer.sendMessageText(WsFrameServer.java:130)

org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:484)

org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:284)
org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:130)

org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:85)

org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:184)

org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:164)

org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:152)

org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:60)

org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:57)

org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)

org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1686)

org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)

org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1376)

org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:635)

org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:611)

java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:129)
java.base/sun.nio.ch.Invoker$2.run(Invoker.java:221)
java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:113)

org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)

org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

java.base/java.lang.Thread.run(Thread.java:1583)
07-Jan-2024 15:18:33.431 INFO [main]
org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler
["http-nio2-127.0.0.1-auto-1-36879"]
07-Jan-2024 15:18:33.432 INFO [main]
org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler
["http-nio2-127.0.0.1-auto-1-36879"]
07-Jan-2024 15:18:33.443 WARNING [http-nio2-127.0.0.1-auto-1-exec-3]
org.apache.tomcat.util.net.AbstractEndpoint.processSocket Executor rejected
sock
et [org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper@54bff557:Closed
Nio2Channel] for processing
       java.util.concurrent.RejectedExecutionException: Executor not
running, can't force a command into the queue
               at
org.apache.tomcat.util.threads.TaskQueue.force(TaskQueue.java:67)
               at
org.apache.tomcat.util.threads.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1344)

               at
org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1374)

               at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$2.failed(Nio2Endpoint.java:653)

               at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$2.failed(Nio2Endpoint.java:611)

               at
org.apache.tomcat.util.net.Nio2Channel$3.read(Nio2Channel.java:280)
               at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper.fillReadBuffer(Nio2Endpoint.java:1157)

               at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper.fillReadBuffer(Nio2Endpoint.java:1124)

               at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper.read(Nio2Endpoint.java:946)

               at
org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:74)

               at
org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:184)

               at
org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:164)

               at
org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:152)

               at
org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:60)

               at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:57)

               at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)

               at
org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1686)

               at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)

               at
org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1376)

               at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:635)

               at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$2.completed(Nio2Endpoint.java:611)

               at
java.base/sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:129)
               at java.base/sun.nio.ch.Invoker$2.run(Invoker.java:221)
               at
java.base/sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:113)

               at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

               at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)

               at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

               at java.base/java.lang.Thread.run(Thread.java:1583)
------------- ---------------- ---------------

Testcase: testAsyncTiming took 26.259 sec
       FAILED
null
junit.framework.AssertionFailedError
       at
org.apache.tomcat.websocket.server.TestAsyncMessagesPerformance.testAsyncTiming(TestAsyncMessagesPerformance.java:64)

       at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)


On Thu, Jan 4, 2024 at 1:08 PM Mark Thomas <ma...@apache.org> wrote:

> The proposed Apache Tomcat 11.0.0-M16 release is now available for
> voting.
>
> Apache Tomcat 11.0.0-M16 is a milestone release of the 11.0.x branch and
> has been made to provide users with early access to the new features in
> Apache Tomcat 11.0.x so that they may provide feedback. The notable
> changes compared to the previous milestone include:
>
> - Fix virtual thread support for the NIO2 connector
>
> - Correct a regression in the fix for 67675 that broke TLS key file
>    parsing for PKCS#8 format keys that do not specify an explicit
>    pseudo-random function and rely on the default. This typically affects
>    keys generated by OpenSSL 1.0.2.
>
> - Allow multiple operations with the same name on introspected mbeans,
>    fixing a regression caused by the introduction of a second
>    addSslHostConfig() method.
>
> For full details, see the change log:
> https://nightlies.apache.org/tomcat/tomcat-11.0.x/docs/changelog.html
>
> Applications that run on Tomcat 9 and earlier will not run on Tomcat 11
> without changes. Java EE applications designed for Tomcat 9 and earlier
> may be placed in the $CATALINA_BASE/webapps-javaee directory and Tomcat
> will automatically convert them to Jakarta EE and copy them to the
> webapps directory. Applications using deprecated APIs may require
> further changes.
>
> It can be obtained from:
> https://dist.apache.org/repos/dist/dev/tomcat/tomcat-11/v11.0.0-M16/
>
> The Maven staging repo is:
> https://repository.apache.org/content/repositories/orgapachetomcat-1474
>
> The tag is:
> https://github.com/apache/tomcat/tree/11.0.0-M16
> ca6ea22e9b6c47df1db85e9af80f80431c3ea19e
>
>
> The proposed 11.0.0-M16 release is:
> [ ] -1 Broken - do not release
> [ ] +1 Alpha  - go ahead and release as 11.0.0-M16
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>

Reply via email to