SafepointSynchronize::block() checks the _thread_state of the JT and exits with fatal error if the state is not valid. The JT could have the wrong state when checking for safepoint/handshakes but due to timing issues we might not notice it, i.e. there are no current safepoint operations to block for so we never call SafepointSynchronize::block(). A sanity check of the JT state could be added in SafepointMechanism right before checking for pending safepoint operations and calling SafepointSynchronize::block().
- is blocked by
-
JDK-8271251 JavaThread::java_suspend() fails with "fatal error: Illegal threadstate encountered: 6"
- Closed
- relates to
-
JDK-8271251 JavaThread::java_suspend() fails with "fatal error: Illegal threadstate encountered: 6"
- Closed