RFR: 8362083: JDI VirtualMachine/dispose/dispose001 failed with FATAL ERROR in native method: JDWP cannot set thread local storage, jvmtiError=JVMTI_ERROR_WRONG_PHASE(112)

Chris Plummer cjplummer at openjdk.org
Thu Dec 4 22:25:37 UTC 2025


On Thu, 4 Dec 2025 21:58:07 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:

>> It's only possible to end up in this situation with vthreads. That's because when the debugger disconnects, we free all the ThreadNodes for vthreads. We don't do that for platform threads or non-java threads. threadControl_reset() is calling removeVThreads() when this issue turns up. There is no equivalent for other thread types.
>
> Should `JVMTI_ERROR_THREAD_NOT_ALIVE` be added to this check for better reliability?

JVMTI_ERROR_THREAD_NOT_ALIVE is already checked at line 161.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28653#discussion_r2590783597


More information about the serviceability-dev mailing list