RFR: 8308745: ObjArrayKlass::allocate_objArray_klass may call into java while holding a lock [v2]

David Holmes dholmes at openjdk.org
Thu Mar 7 02:50:58 UTC 2024


On Thu, 7 Mar 2024 01:38:56 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> This change creates a new sort of native recursive lock that can be held during JNI and Java calls, which can be used for synchronization while creating objArrayKlasses at runtime.
>> 
>> Passes tier1-7.
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Dean's comments.

This looks good to me. Thanks for working through the details with me.

src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp line 121:

> 119:   {
> 120:     // To get a consistent list of classes we need MultiArray_lock to ensure
> 121:     // array classes aren't created during this walk. This walks through the

Just curious but how can walking the set of classes trigger creation of array classes?

src/hotspot/share/runtime/mutexLocker.hpp line 335:

> 333: 
> 334: // Instance of a RecursiveLock that may be held through Java heap allocation, which may include calls to Java,
> 335: // and JNI event notification for resource exhausted for metaspace or heap.

s/exhausted/exhaustion/

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

Marked as reviewed by dholmes (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/17739#pullrequestreview-1921323899
PR Review Comment: https://git.openjdk.org/jdk/pull/17739#discussion_r1515402581
PR Review Comment: https://git.openjdk.org/jdk/pull/17739#discussion_r1515406082


More information about the serviceability-dev mailing list