RFR: 8274687: JDWP deadlocks if some Java thread reaches wait in blockOnDebuggerSuspend [v9]

Richard Reingruber rrich at openjdk.java.net
Fri Oct 22 06:21:42 UTC 2021


On Fri, 22 Oct 2021 04:02:04 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:

>> Richard Reingruber has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Hoist locking from trackAppResume() up to it its caller doPendingTasks()
>
> src/jdk.jdwp.agent/share/native/libjdwp/threadControl.c line 2212:
> 
>> 2210:          * handlerLock is not needed anymore. We release it before calling
>> 2211:          * blockOnDebuggerSuspend() because it is required for resumes by the
>> 2212:          * debugger so we cannot wait for that holding handlerLock.
> 
> * handlerLock is not needed anymore. We must release it before calling
>          * blockOnDebuggerSuspend() because it is required for resumes done by
>          * the debugger. If resumee is currently suspended by the debugger, then
>          * blockOnDebuggerSuspend() will block until a debugger resume is done.
>          * If it blocks while holding the handlerLock, then the resume will deadlock.

Done.

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

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


More information about the serviceability-dev mailing list