RFR: 8327176: UnreferencedExecutor.java can fail on libgraal with -Xcomp
Alan Bateman
alanb at openjdk.org
Thu Mar 21 07:43:21 UTC 2024
On Sun, 3 Mar 2024 17:03:51 GMT, Doug Simon <dnsimon at openjdk.org> wrote:
>> The `java/util/concurrent/Executors/UnreferencedExecutor.java` test can fail when run on libgraal and `-Xcomp` is specified. The problem is that libgraal in `-Xcomp` temporarily causes some extra memory pressure (probably due to [JDK-8310218](https://bugs.openjdk.org/browse/JDK-8310218)) which can cause recoverable OOMEs to occur (memory is recovered when the relevant libgraal compilations complete). It also seems related to async threads used for cleaning weak references when using G1 or ZGC as I cannot reproduce the failure under `-XX:+UseSerialGC`.
>>
>> Installing a global `Thread.UncaughtExceptionHandler` that ignores `OutOfMemoryError`s resolves the problem.
>
> I confirmed that `java/util/concurrent/Executors/UnreferencedExecutor.java` still fails if the [fix applied to ThreadContainers.java](https://github.com/openjdk/jdk/commit/ada416e66cbff6c8e631bf352acc0744c248740b#diff-1e347b9a95cc4fe81a01ca70e4122a73a65d99a69668c7567abb2a6067f8cc6dL68) is reverted.
@dougxc I added this test when fixing JDK-8308235. The point of the test is that OOME is not thrown so adding a default UEH to ignore OOME is changing the test. I wonder if this is a test that just needed to be skipped with libgraal.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/18098#issuecomment-2011390893
More information about the core-libs-dev
mailing list