RFR(XS) 8252521: possible race in java_suspend_self_with_safepoint_check
Reingruber, Richard
richard.reingruber at sap.com
Wed Sep 2 15:15:13 UTC 2020
Hi,
please help review this fix for a race condition in
JavaThread::java_suspend_self_with_safepoint_check() that allows a suspended
thread to continue executing java for an arbitrary long time (see repro test
attached to bug report).
Webrev: http://cr.openjdk.java.net/~rrich/webrevs/8252521/webrev.0/
Bug: https://bugs.openjdk.java.net/browse/JDK-8252521
The fix is to add a do-while-loop to java_suspend_self_with_safepoint_check()
that checks if the current thread was suspended again after returning from
java_suspend_self() and before restoring the original thread state. The check is
performed after restoring the original state because then we are guaranteed to
see the suspend request issued before the requester observed that target to be
_thread_blocked and executed VM_ThreadSuspend.
Thanks, Richard.
More information about the hotspot-runtime-dev
mailing list