On Thu, 18 Nov 2021 09:34:13 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:
>> The test fails when the target JavaThread has is_exiting() status. In such a >> case the JvmtiExport::cleanup_thread(this) has already made a clean up of >> its jvmtiThreadState, so the JavaThread address returned by >> _state->get_thread() is 0xbabababababababa. >> The fix is to add a check for is_exiting() status into handshake closure >> do_thread() early. >> There following handshake closures are fixed by this update: >> - UpdateForPopTopFrameClosure >> - SetForceEarlyReturn >> - SetFramePopClosure > > Serguei Spitsyn has updated the pull request incrementally with one > additional commit since the last revision: > > get rid of the checks in jvmti handshakes: java_thread->threadObj() == NULL Hi David, Thank you for looking at this and your comments. Exiting thread should not be in suspended state. Also, I'm pretty sure that the THREAD_NOT_ALIVE error code should normally take priority. So, I prefer current fix over moving the assert. But I kind of understand you concern. Thank you for sharing it! Thanks, Serguei ------------- PR: https://git.openjdk.java.net/jdk/pull/6440