On Sat, 2 Jul 2022 06:21:36 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:
>> This fixes a bug in the debug agent when there is a request to suspend a >> virtual thread that has already terminated. The issue was that unless the >> debug agent was currently under a "suspend all", it would not properly put >> the virtual thread on the `otherThreads` list, and instead added it to >> `runningVThreads`. This meant at the end of `insertThread()` the following >> code tried to do a JVMTI `SetThreadLocalStorage`, which can't be done on a >> terminated thread. >> >> >> if (list != &otherThreads) { >> setThreadLocalStorage(node->thread, (void*)node); >> } > > Chris Plummer 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 ten additional > commits since the last revision: > > - Merge branch 'master' of https://github.com/openjdk/jdk19 into 8287847_nb > merge > - provide a slightly more descriptive @summary > - Add new SuspendAfterDeath test to jdk_jdi_sanity test group. > - Always run test both in virtual and platform thread modes > - No need to initialzie boolean to false. > - Get rid of need to cast toArray() result to a String[] > - fix indentation > - fixed jcheck errors > - Fix issue with suspending a virtual thread after it has terminated. Serguei has pushed his JVMTI fix for the virtual thread state and I have pushed the test changes to verify the target thread's state. Please review. Thanks ------------- PR: https://git.openjdk.org/jdk19/pull/88