You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by Kirk Lund <kl...@apache.org> on 2020/07/06 17:36:31 UTC

Flaky test caused by missing JDK dependency

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)

Re: Flaky test caused by missing JDK dependency

Posted by Kirk Lund <kl...@apache.org>.
Closing out this discussion thread about GEODE-6183:

We believe that the machine performed an update of Java during the test.
This caused the tools.jar to be unavailable only while this test was
executing. There are many other tests that use the Attach API which passed
in this overall CI job suggesting that it was only a momentary problem.

I'm not sure how easy or practical it is to turn off Java updates on
instances running CI jobs. I'll leave that to others to decide.

On Wed, Jul 8, 2020 at 1:30 PM Kirk Lund <kl...@apache.org> wrote:

> The Attach API is optional for Users running the product.
>
> The Attach API is required to compile the classes that use the Attach API
> and to run tests that cover this feature (such as "--pid").
>
> On Wed, Jul 8, 2020 at 12:11 PM Anthony Baker <ba...@vmware.com> wrote:
>
>> I thought we made the dependency on the Attach API optional when we added
>> support for JDK 11?
>>
>> Anthony
>>
>>
>> > On Jul 8, 2020, at 10:17 AM, Kirk Lund <kl...@apache.org> wrote:
>> >
>> > To transition away from Attach API, the community needs a proposal to
>> do so
>> > and we'll need to deprecate the GFSH options that depend on Attach API
>> such
>> > as "--pid" in "status server --pid 20938". Even then we're looking at a
>> > minimum of one major release before we can remove options after they are
>> > deprecated.
>> >
>> > We haven't had a major release in 4+ years so don't hold your breath! :)
>> >
>> > On Wed, Jul 8, 2020 at 9:59 AM Sean Goller <sg...@vmware.com> wrote:
>> >
>> >> 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 <de...@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&amp;data=02%7C01%7Cbakera%40vmware.com%7Cdb5c3b93c1994223ff8b08d82362e699%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637298254971916697&amp;sdata=g67yHspVjXA8pJjp0shhYf7fZWltB7EexUXJ6sck8F8%3D&amp;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&amp;data=02%7C01%7Cbakera%40vmware.com%7Cdb5c3b93c1994223ff8b08d82362e699%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637298254971916697&amp;sdata=bACP7X6c%2By%2FtzyN6S65UEJ0xWRYxgEhM1KyvlYaYbSU%3D&amp;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)
>> >>
>>
>>

Re: Flaky test caused by missing JDK dependency

Posted by Kirk Lund <kl...@apache.org>.
The Attach API is optional for Users running the product.

The Attach API is required to compile the classes that use the Attach API
and to run tests that cover this feature (such as "--pid").

On Wed, Jul 8, 2020 at 12:11 PM Anthony Baker <ba...@vmware.com> wrote:

> I thought we made the dependency on the Attach API optional when we added
> support for JDK 11?
>
> Anthony
>
>
> > On Jul 8, 2020, at 10:17 AM, Kirk Lund <kl...@apache.org> wrote:
> >
> > To transition away from Attach API, the community needs a proposal to do
> so
> > and we'll need to deprecate the GFSH options that depend on Attach API
> such
> > as "--pid" in "status server --pid 20938". Even then we're looking at a
> > minimum of one major release before we can remove options after they are
> > deprecated.
> >
> > We haven't had a major release in 4+ years so don't hold your breath! :)
> >
> > On Wed, Jul 8, 2020 at 9:59 AM Sean Goller <sg...@vmware.com> wrote:
> >
> >> 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 <de...@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&amp;data=02%7C01%7Cbakera%40vmware.com%7Cdb5c3b93c1994223ff8b08d82362e699%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637298254971916697&amp;sdata=g67yHspVjXA8pJjp0shhYf7fZWltB7EexUXJ6sck8F8%3D&amp;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&amp;data=02%7C01%7Cbakera%40vmware.com%7Cdb5c3b93c1994223ff8b08d82362e699%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637298254971916697&amp;sdata=bACP7X6c%2By%2FtzyN6S65UEJ0xWRYxgEhM1KyvlYaYbSU%3D&amp;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)
> >>
>
>

Re: Flaky test caused by missing JDK dependency

Posted by Anthony Baker <ba...@vmware.com>.
I thought we made the dependency on the Attach API optional when we added support for JDK 11?

Anthony


> On Jul 8, 2020, at 10:17 AM, Kirk Lund <kl...@apache.org> wrote:
> 
> To transition away from Attach API, the community needs a proposal to do so
> and we'll need to deprecate the GFSH options that depend on Attach API such
> as "--pid" in "status server --pid 20938". Even then we're looking at a
> minimum of one major release before we can remove options after they are
> deprecated.
> 
> We haven't had a major release in 4+ years so don't hold your breath! :)
> 
> On Wed, Jul 8, 2020 at 9:59 AM Sean Goller <sg...@vmware.com> wrote:
> 
>> 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 <de...@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&amp;data=02%7C01%7Cbakera%40vmware.com%7Cdb5c3b93c1994223ff8b08d82362e699%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637298254971916697&amp;sdata=g67yHspVjXA8pJjp0shhYf7fZWltB7EexUXJ6sck8F8%3D&amp;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&amp;data=02%7C01%7Cbakera%40vmware.com%7Cdb5c3b93c1994223ff8b08d82362e699%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637298254971916697&amp;sdata=bACP7X6c%2By%2FtzyN6S65UEJ0xWRYxgEhM1KyvlYaYbSU%3D&amp;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)
>> 


Re: Flaky test caused by missing JDK dependency

Posted by Kirk Lund <kl...@apache.org>.
To transition away from Attach API, the community needs a proposal to do so
and we'll need to deprecate the GFSH options that depend on Attach API such
as "--pid" in "status server --pid 20938". Even then we're looking at a
minimum of one major release before we can remove options after they are
deprecated.

We haven't had a major release in 4+ years so don't hold your breath! :)

On Wed, Jul 8, 2020 at 9:59 AM Sean Goller <sg...@vmware.com> wrote:

> 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 <de...@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&amp;data=02%7C01%7Csgoller%40vmware.com%7Cbcfa660e6577442247ee08d821d3283c%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637296538083290882&amp;sdata=7HMMMxvHvdlJf8Awc9zAl7Xr9291Ep0HMoto5%2F%2BgUys%3D&amp;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&amp;data=02%7C01%7Csgoller%40vmware.com%7Cbcfa660e6577442247ee08d821d3283c%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637296538083290882&amp;sdata=x1FIsAQOyZd%2Bvl%2BRRkzI8yGeFW%2B04sMuO4JM%2F67vu8w%3D&amp;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)
>

Re: Flaky test caused by missing JDK dependency

Posted by Sean Goller <sg...@vmware.com>.
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 <de...@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&amp;data=02%7C01%7Csgoller%40vmware.com%7Cbcfa660e6577442247ee08d821d3283c%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637296538083290882&amp;sdata=7HMMMxvHvdlJf8Awc9zAl7Xr9291Ep0HMoto5%2F%2BgUys%3D&amp;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&amp;data=02%7C01%7Csgoller%40vmware.com%7Cbcfa660e6577442247ee08d821d3283c%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C637296538083290882&amp;sdata=x1FIsAQOyZd%2Bvl%2BRRkzI8yGeFW%2B04sMuO4JM%2F67vu8w%3D&amp;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)