Hi Rainer,

Apologies for this and the other failures. I was trying to reduce the reports of ignored tests during release testing so it was more obvious when the OpenSSL (via JNI and/or FFM) were not executed. I was working on the basis that the performance tests weren't executed by default. While that is true for CI systems, it isn't generally true and I need to take another pass at these changes.

I'm not sure if I just need to recategorise a small number of tests or if some new category will be required. I need to look at all of the current performance tests to better understand the range of what we have.

I'm planning on starting this work now so barring any distractions I should get this fixed today.

Personally, I don't have any concerns voting +1 for a release without executing the peformance tests (or manually exclusing a few of them) this time around but obviously that is a decision each PMC member needs to make for themselves and I understand if the consensus is I need to re-roll the release.

Mark


On 07/01/2024 10:01, Rainer Jung wrote:
Am 03.01.24 um 12:29 schrieb ma...@apache.org:
This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 8fe3db67fdd69c160367982e85b23bfe01689c5c
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jan 3 10:43:07 2024 +0000

     This is a performance test - use correct naming
---
  .../{TestConnectionLimit.java => TestConnectionLimitPerformance.java} | 4 +---
  1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/test/org/apache/tomcat/websocket/TestConnectionLimit.java b/test/org/apache/tomcat/websocket/TestConnectionLimitPerformance.java
similarity index 96%
rename from test/org/apache/tomcat/websocket/TestConnectionLimit.java
rename to test/org/apache/tomcat/websocket/TestConnectionLimitPerformance.java
index 463ee95b01..6fc045622c 100644
--- a/test/org/apache/tomcat/websocket/TestConnectionLimit.java
+++ b/test/org/apache/tomcat/websocket/TestConnectionLimitPerformance.java
@@ -25,7 +25,6 @@ import jakarta.websocket.DeploymentException;
  import jakarta.websocket.WebSocketContainer;
  import org.junit.Assert;
-import org.junit.Ignore;
  import org.junit.Test;
  import org.apache.catalina.Context;
@@ -34,8 +33,7 @@ import org.apache.catalina.startup.Tomcat;
  import org.apache.catalina.startup.TomcatBaseTest;
  import org.apache.tomcat.websocket.TesterMessageCountClient.TesterProgrammaticEndpoint;
-@Ignore // Not for use in normal unit test runs
-public class TestConnectionLimit extends TomcatBaseTest {
+public class TestConnectionLimitPerformance extends TomcatBaseTest {
      /*
       * Simple test to see how many outgoing connections can be created on a single machine.

This test - which probably wasn't executed before - now fails frequently for me. The failure is with java.lang.NoClassDefFoundError in various places. An example:

Testcase: testSingleMachine took 9.285 sec
         Caused an ERROR
org/apache/catalina/startup/ExpandWar
java.lang.NoClassDefFoundError: org/apache/catalina/startup/ExpandWar
        at org.apache.catalina.startup.LoggingBaseTest.tearDown(LoggingBaseTest.java:138)         at org.apache.catalina.startup.TomcatBaseTest.tearDown(TomcatBaseTest.java:243)         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) Caused by: java.lang.ClassNotFoundException: org.apache.catalina.startup.ExpandWar         at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)         at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
         at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)

Testcase: org.apache.tomcat.websocket.TestConnectionLimitPerformance took 0 sec
         Caused an ERROR
org/apache/catalina/startup/ExpandWar
java.lang.NoClassDefFoundError: org/apache/catalina/startup/ExpandWar
        at org.apache.catalina.startup.LoggingBaseTest.tearDownPerTestClass(LoggingBaseTest.java:154)         at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) Caused by: java.lang.ClassNotFoundException: org.apache.catalina.startup.ExpandWar


The stacks can differ and also the classes in the java.lang.NoClassDefFoundError:

jakarta/websocket/SendResult
org/apache/catalina/Lifecycle$SingleUse
org/apache/catalina/startup/ExpandWar
org/apache/tomcat/PeriodicEventListener
org/apache/tomcat/util/net/SocketWrapperBase$BlockingMode
org/apache/tomcat/util/net/SocketWrapperBase$CompletionState
org/apache/tomcat/websocket/MessagePart
org/apache/tomcat/websocket/server/WsRemoteEndpointImplServer$1
org/apache/tomcat/websocket/WsRemoteEndpointImplBase$BlockingSendHandler


Wild guess: it might be, because the tested process runs out of file descriptors before:

06-Jan-2024 09:59:21.358 SEVERE [http-nio-127.0.0.1-auto-1-Acceptor] org.apache.tomcat.util.net.Acceptor.run Socket accept failed
     java.io.IOException: Too many open files
         at java.base/sun.nio.ch.Net.accept(Native Method)
        at java.base/sun.nio.ch.ServerSocketChannelImpl.implAccept(ServerSocketChannelImpl.java:433)         at java.base/sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:399)         at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:518)         at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:80)
         at org.apache.tomcat.util.net.Acceptor.run(Acceptor.java:128)
         at java.base/java.lang.Thread.run(Thread.java:1583)


Best regards,

Rainer

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


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

Reply via email to