RFR: 8253833: mutexLocker assert_locked_or_safepoint should not access VMThread state from non-VM-thread

Daniel D.Daugherty dcubed at openjdk.java.net
Thu Oct 8 16:01:23 UTC 2020


On Thu, 8 Oct 2020 13:08:51 GMT, Robbin Ehn <rehn at openjdk.org> wrote:

> It's unsafe for all threads except VM thread to access the current vm operation.
> This part of the assert is also faulty:
> If we are not at safepoint and the operation requester (calling thread) would be the owner of the lock do not mean it
> is safe for current thread.
> Passes t1-5. (also note VMThread::vm_operation() assert current thread is VM thread, and I have seen no such assert)
> 
> Thanks

I'm good with the change, but I had one question about
code above the code that you deleted.

src/hotspot/share/runtime/mutexLocker.cpp line 171:

> 169:   if (lock->owned_by_self()) return;
> 170:   if (SafepointSynchronize::is_at_safepoint()) return;
> 171:   if (!Universe::is_fully_initialized()) return;

Is this bailout on L171 for the code you are deleting (old L172-4)
or for the fatal() on old L175?

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

Marked as reviewed by dcubed (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/563


More information about the hotspot-runtime-dev mailing list