[jdk11u-dev] Withdrawn: 8251945: SIGSEGV in PackageEntry::purge_qualified_exports()
Zhengyu Gu
zgu at openjdk.java.net
Thu Jun 10 14:28:57 UTC 2021
On Thu, 10 Jun 2021 13:48:15 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 still points 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.
This pull request has been closed without being integrated.
-------------
PR: https://git.openjdk.java.net/jdk11u-dev/pull/22
More information about the jdk-updates-dev
mailing list