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