CI Failure: LocatorLauncherRemoteFileIntegrationTest.startDeletesStaleControlFiles failed with ConditionTimeoutException https://issues.apache.org/jira/browse/GEODE-6183
I've debugged the latest occurrence of GEODE-6183 (intermittent failure CI): https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-support-1-13-main/jobs/WindowsCoreIntegrationTestOpenJDK11/builds/34 The underlying cause is a missing dependency: the Attach API. In the Oracle JDK, the Attach API is found in the JAVA_HOME/lib/tools.jar. In some JDKs, including LibericaJDK, there may not be a tools.jar or it may be missing from our image of specific JDKs or a specific OS. I confirmed that the Attach API is actually inside a different .jar on some Mac releases of the JDK. Other than JDK differences, I'm not sure why tools.jar would intermittently be missing from our testing image, but that's definitely the cause of WindowsCoreIntegrationTestOpenJDK11 failing. I've reviewed a couple other older runs and it was the same intermittent cause of failure. Does anyone know if LibericaJDK includes tools.jar or the Attach API? Does anyone know how to verify that our images all have tools.jar or its equivalent? java.util.ServiceConfigurationError: com.sun.tools.attach.spi.AttachProvider: Provider sun.tools.attach.WindowsAttachProvider not found at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:588) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1211) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1220) at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1264) at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1299) at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1384) at jdk.attach/com.sun.tools.attach.spi.AttachProvider.providers(AttachProvider.java:258) at jdk.attach/com.sun.tools.attach.VirtualMachine.list(VirtualMachine.java:144) at org.apache.geode.internal.process.AttachProcessUtils.isProcessAlive(AttachProcessUtils.java:35) at org.apache.geode.internal.process.ProcessUtils.isProcessAlive(ProcessUtils.java:99) at org.apache.geode.internal.process.lang.AvailablePid.findAvailablePid(AvailablePid.java:117) at org.apache.geode.distributed.LauncherIntegrationTestCase.setUpAbstractLauncherIntegrationTestCase(LauncherIntegrationTestCase.java:92)