On Thu, 4 Dec 2025 05:14:51 GMT, Chris Plummer <[email protected]> wrote:

>> src/jdk.jdwp.agent/share/native/libjdwp/threadControl.c line 173:
>> 
>>> 171:         }
>>> 172:     }
>>> 173:     if (error == JVMTI_ERROR_WRONG_PHASE && gdata->vmDead && 
>>> isVThread(thread)) {
>> 
>> Shouldn't be check for any daemon threads and not only virtual?
>
> 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?

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

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

Reply via email to