RFR: 8274338: com/sun/jdi/RedefineCrossEvent.java failed "assert(m != __null) failed: NULL mirror" [v3]
David Holmes
dholmes at openjdk.java.net
Thu Oct 14 22:12:48 UTC 2021
On Thu, 14 Oct 2021 16:03:22 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> The MultiArray_lock isn't held when restoring shared arrays, so an observer can find one that isn't completely restored.
>> Tested with tier1-3 in progress, and CDS tests locally. Not really reproduceable otherwise even with sleeps.
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
>
> Add assert that MultiArray_lock is held for loaded_classes_do.
I will state again: If the JVMTI code is racing with the execution of restore_unshareable_info and the setting of the mirror, then even with the lock added the JVMTI code could still get there first and find the mirror not set.
The added lock simply ensures that the JVMTI code and the restore_unshareable_info code cannot execute concurrently - it does not guarantee that the JVMTI code can't execute until after restore_unshareable_info.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5935
More information about the hotspot-dev
mailing list