Hello, I have a question regarding the test SADebugDTest.java . The test
https://github.com/openjdk/jdk/blob/master/test/hotspot/jtreg/serviceability/sa/sadebugd/SADebugDTest.java seems to handle already cases where "Address already in use" is found in the output (see line 120 ). However in our nightly test, the SADebugDTest.java fails with this output : LingeredApp stdout: []; LingeredApp stderr: [] LingeredApp exitValue = 0 ----------System.err:(17/1318)---------- [debugd] Attaching to process ID 372 and starting RMI services, please wait... [debugd] Error attaching to process or starting server: sun.jvm.hotspot.debugger.DebuggerException: java.rmi.server.ExportException: Port already in use: 39399; nested exception is: [debugd] java.net.BindException: Address already in use [debugd] at jdk.hotspot.agent/sun.jvm.hotspot.HotSpotAgent.setupDebugger(HotSpotAgent.java:384) java.lang.RuntimeException: Expected message "RMI connector is bound to port 39399" is not found in the output. at SADebugDTest.testWithPid(SADebugDTest.java:132) at SADebugDTest.runTests(SADebugDTest.java:68) at SADebugDTest.main(SADebugDTest.java:60) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:577) at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127) at java.base/java.lang.Thread.run(Thread.java:833) JavaTest Message: Test threw exception: java.lang.RuntimeException: Expected message "RMI connector is bound to port 39399" is not found in the output. JavaTest Message: shutting down test Looks like the ADDRESS_ALREADY_IN_USE string is checked below; however later in the coding portInUse is not checked but the RuntimeException "Expected message . . ." is thrown : Process debugd = startProcess("debugd", pb, null, l -> { if (!useRmiPort && l.contains(GOLDEN)) { testResult = true; } else if (useRmiPort && l.contains(RMI_CONNECTOR_IS_BOUND + finalRmiPort)) { testResult = true; } else if (l.contains(ADDRESS_ALREADY_IN_USE)) { portInUse = true; } return (l.contains(GOLDEN) || portInUse); }, 20, TimeUnit.SECONDS); // If we are here, this means we have received the golden line and the test has passed // The debugd remains running, we have to kill it debugd.destroy(); debugd.waitFor(); if (!testResult) { throw new RuntimeException("Expected message \"" + RMI_CONNECTOR_IS_BOUND + rmiPort + "\" is not found in the output."); } } while (portInUse); // Repeat the test if the port is already in use Is this really intended ? from the comments in the test I had the impression that in case of "port in use" / "address already in use" the test should be repeated ? Otherwise if this is intended, should we flag the test with @key intermittent ? Thanks and best regards, Matthias