RFR: 8299240: rank of JvmtiVTMSTransition_lock can be safepoint
David Holmes
dholmes at openjdk.org
Tue Feb 21 00:50:25 UTC 2023
On Sat, 18 Feb 2023 01:33:16 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:
>> Thank you for looking at this PR, David!
>> Please, note a disabler at L938. A safepont can be reached in its destructor.
>> Also, see the comment at L952:
>>
>> 937 {
>> 938 JvmtiVTMSTransitionDisabler disabler(true);
>> 939 ThreadsListHandle tlh(current);
>> 940
>> 941 err = get_threadOop_and_JavaThread(tlh.list(), thread, &java_thread, &thread_oop);
>> 942 if (err != JVMTI_ERROR_NONE) {
>> 943 return err;
>> 944 }
>> 945
>> 946 // Do not use JvmtiVTMSTransitionDisabler in context of self suspend to avoid deadlocks.
>> 947 if (java_thread != current) {
>> 948 err = suspend_thread(thread_oop, java_thread, /* single_suspend */ true, nullptr);
>> 949 return err;
>> 950 }
>> 951 // protect thread_oop as a safepoint can be reached in disabler destructor
>> 952 self_tobj = Handle(current, thread_oop);
>> 953 }
>
>> it means there are now many places that can block for safepoints that previously wouldn't and it is very to hard to tell if that is okay or not.
>
> We partially rely on testing and good test coverage here.
Okay we can see how this goes.
-------------
PR: https://git.openjdk.org/jdk/pull/12550
More information about the serviceability-dev
mailing list