RFR: 8266593: vmTestbase/nsk/jvmti/PopFrame/popframe011 fails with "assert(java_thread == _state->get_thread()) failed: Must be" [v2]

Serguei Spitsyn sspitsyn at openjdk.java.net
Thu Nov 18 08:29:41 UTC 2021


On Thu, 18 Nov 2021 07:08:15 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 with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:
> 
>  - Merge
>  - remove vmTestbase/nsk/jvmti/PopFrame/popframe011 from ProblemList.txt
>  - fix 8266593: vmTestbase/nsk/jvmti/PopFrame/popframe011 fails with assert

It does not look right to check other conditions if the JavaThread is exiting.
So, I think, the `java_thread->is_exiting()` has to be checked first.
Please, let me know if I miss anything.

-------------

PR: https://git.openjdk.java.net/jdk/pull/6440


More information about the serviceability-dev mailing list