[jdk11u-dev] RFR: 8268364: jmethod clearing should be done during unloading
Andrew John Hughes
andrew at openjdk.org
Wed Dec 4 16:24:52 UTC 2024
On Thu, 19 Sep 2024 15:26:56 GMT, Kerem Kat <duke at openjdk.org> wrote:
>> Backport of [8268364](https://bugs.openjdk.org/browse/JDK-8268364), single hunk conflict resolved by accepting "empty" from the backport commit vs. `clear_jmethod_ids` invocation in the dtor. Backport commit moves the `clear_jmethod_ids` invocation to `unload` method instead.
>>
>> It fixes crashes when accessing jmethodIDs of a class being unloaded.
>>
>> Here is the reproducer that crashes JVM in ~1 second without the patch, but works fine with it: [gist](https://gist.github.com/krk/a0800bac5bc5a01709be85637285a965).
>>
>> This fix also resolves the issue reported at https://github.com/async-profiler/async-profiler/issues/974 for Java 11.
>>
>> To run the repro:
>>
>>
>> javac Main.java
>> gcc -shared -I"$JAVA_HOME/include" -I"$JAVA_HOME/include/linux" -fPIC repro.cpp -orepro.so
>>
>> java -agentpath:"$(pwd)/repro.so" -Xmx100m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrent Main
>
> cc @coleenp @fisk
> @krk @shipilev Andrew Haley has approved this PR. Do you plan to integrate it?
This really should have waited until the rampdown changes were in place. I've manually moved this one to 11.0.27.
-------------
PR Comment: https://git.openjdk.org/jdk11u-dev/pull/2935#issuecomment-2517923926
More information about the jdk-updates-dev
mailing list