[jdk11u-dev] RFR: 8274338: com/sun/jdi/RedefineCrossEvent.java failed "assert(m != __null) failed: NULL mirror"

Paul Hohensee phh at openjdk.java.net
Thu Nov 4 22:03:25 UTC 2021


On Thu, 4 Nov 2021 16:32:16 GMT, Zhengyu Gu <zgu at openjdk.org> wrote:

> Backport for parity with Oracle 11.0.15.
> 
> The original patch applies cleanly, but some of CDS tests fail due to following new assertion in `ClassLoaderData::loaded_classes_do()`
> 
> `  // To call this, one must have the MultiArray_lock held, but the _klasses list still has lock free reads.
>   assert_locked_or_safepoint(MultiArray_lock);
> `
> The solution is to take `MultiArray_lock` in `MetaspaceShared::link_and_cleanup_shared_classes()` method
> 
> Test:
> - [x]  tier1

I'd add the comment from JvmtiGetLoadedClasses::getLoadedClasses() before the added MultiArray_lock in metaspaceShared.cpp, vis

    // To get a consistent list of classes we need MultiArray_lock to ensure
    // array classes aren't created.

Otherwise, lgtm.

-------------

PR: https://git.openjdk.java.net/jdk11u-dev/pull/584


More information about the jdk-updates-dev mailing list