The Liberica JDK does not include the Attach API. I'm investigating why. Given the inherent insecurity of this API, I recommend we transition away from using it. ________________________________ From: Kirk Lund <kl...@apache.org> Sent: Monday, July 6, 2020 10:36 AM To: dev@geode.apache.org <dev@geode.apache.org> Subject: Flaky test caused by missing JDK dependency
CI Failure: LocatorLauncherRemoteFileIntegrationTest.startDeletesStaleControlFiles failed with ConditionTimeoutException https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fissues.apache.org%2Fjira%2Fbrowse%2FGEODE-6183&data=02%7C01%7Csgoller%40vmware.com%7Cbcfa660e6577442247ee08d821d3283c%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637296538083290882&sdata=7HMMMxvHvdlJf8Awc9zAl7Xr9291Ep0HMoto5%2F%2BgUys%3D&reserved=0 I've debugged the latest occurrence of GEODE-6183 (intermittent failure CI): https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fconcourse.apachegeode-ci.info%2Fteams%2Fmain%2Fpipelines%2Fapache-support-1-13-main%2Fjobs%2FWindowsCoreIntegrationTestOpenJDK11%2Fbuilds%2F34&data=02%7C01%7Csgoller%40vmware.com%7Cbcfa660e6577442247ee08d821d3283c%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637296538083290882&sdata=x1FIsAQOyZd%2Bvl%2BRRkzI8yGeFW%2B04sMuO4JM%2F67vu8w%3D&reserved=0 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)