RFR: 8266593: vmTestbase/nsk/jvmti/PopFrame/popframe011 fails with "assert(java_thread == _state->get_thread()) failed: Must be" [v3]
David Holmes
dholmes at openjdk.java.net
Thu Nov 18 09:58:39 UTC 2021
On Thu, 18 Nov 2021 09:34:13 GMT, Serguei Spitsyn <sspitsyn at 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
IIUC these cases all require that the target is suspended else it is an error. If the target is_exiting then it is not suspended and therefore there is an error. The suspension check should already handle an exiting thread and so there is no need to explicitly add an is_exiting check.
-------------
PR: https://git.openjdk.java.net/jdk/pull/6440
More information about the serviceability-dev
mailing list