On Mon, 28 Mar 2022 19:58:59 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

> In this test the debuggee creates a couple of threads, and the debugger 
> checks to make sure it gets a ThreadStartEvent for each of these threads, 
> plus one for the main debuggee thread. Once it has done this, it disables the 
> ThreadStartRequest and sends a "quit" command to the debuggee. However, 
> another ThreadStartEvent can arrive after the expected 3, and this will cause 
> all debuggee threads to be suspended (since the ThreadStartRequest uses the 
> SUSPEND_ALL). If this happens the debuggee cannot even read "quit" message 
> and terminate, so the debugger times out waiting. The solution is to simply 
> to an unconditional vm.resume() after disabling ThreadStartRequest.
> 
> Note this bug was observed in loom due to the creation of carrier threads, 
> but it could potentially happen in jdk also since the jvm creates numerous 
> threads on startup, and they can potentially be delayed a bit.

Thanks for the reviews!

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

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

Reply via email to