[jdk11u-dev] RFR: 8268523: SIGSEGV in PackageEntry::purge_qualified_exports()
Zhengyu Gu
zgu at openjdk.java.net
Fri Jun 11 13:04:50 UTC 2021
On Thu, 10 Jun 2021 14:28:41 GMT, Zhengyu Gu <zgu at openjdk.org> wrote:
> I would like to fix the crash in openjdk 11u.
>
> The crash is caused by racy installing new CLD in ClassLoaderDataGraph::add_to_graph().
>
> The method first creates new ClassLoaderData, and in its constructor, it creates unnamed module entry and installs it in java_lang_Module oop.
>
> Then add_to_graph() tries to install newly created CLD to java_lang_ClassLoader oop via CAS. If it loses race, then it deletes new CLD and returns existing one.
>
> But at this point, java_lang_Module oop could still point module entry that is already freed.
>
> The fix I am purposing is to borrow ClassLoaderDataGraph_lock from JDK-8210155, but only uses it to prevent racing installing CLD and new CLD is still published via CAS to avoid needing additional patches.
>
> Test:
>
> - [x] hotspot_runtime
> - [x] hotspot_gc
> - [x] vmTestbase_vm_gc
Close this one in favor of PR #22. Hopefully, it can be integrated under original CR
-------------
PR: https://git.openjdk.java.net/jdk11u-dev/pull/23
More information about the jdk-updates-dev
mailing list