[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-serviceability-dev
Subject: Re: RFR: 8274687: JDWP deadlocks if some Java thread reaches wait in blockOnDebuggerSuspend [v10]
From: Chris Plummer <cjplummer () openjdk ! java ! net>
Date: 2021-10-22 17:52:11
Message-ID: vll1XCaAvKKKFFhOVD0VMvsl7ABn6a-M2bZ46yBebFg=.dcad0f77-5efa-447f-a9ec-87a80f507fa5 () github ! com
[Download RAW message or body]
On Fri, 22 Oct 2021 06:21:37 GMT, Richard Reingruber <rrich@openjdk.org> wrote:
> > This change fixes deadlocks described in the JBS-bug by:
> >
> > * Releasing `handlerLock` before waiting on `threadLock` in \
> > `blockOnDebuggerSuspend()`
> > * Notifying on `threadLock` in `threadControl_reset()`
> >
> > Also the actions in handleAppResumeBreakpoint() are moved/deferred until
> > doPendingTasks() runs. This is necessary because an event handler must not
> > release handlerLock first and foremost because handlers are called while
> > iterating the handler chain for an event type which is protected by handlerLock
> > (see https://github.com/openjdk/jdk/pull/5805)
> >
> > The first commit delays the cleanup actions after leaving the loop in
> > `debugLoop_run()`. It allows to reproduce the deadlock running the dispose003
> > test with the command
> >
> >
> > make run-test TEST=test/hotspot/jtreg/vmTestbase/nsk/jdi/VirtualMachine/dispose/dispose003
> >
> >
> > The second commit adds a new test that reproduces the deadlock when calling
> > threadControl_resumeThread() while a thread is waiting in
> > blockOnDebuggerSuspend().
> >
> > The third commit contains the fix described above. With it the deadlocks
> > cannot be reproduced anymore.
> >
> > The forth commit removes the diagnostic code introduced with the first commit \
> > again.
> > The fix passed
> >
> > test/hotspot/jtreg/serviceability/jdwp
> > test/jdk/com/sun/jdi
> > test/hotspot/jtreg/vmTestbase/nsk/jdwp
> > test/hotspot/jtreg/vmTestbase/nsk/jdi
>
> Richard Reingruber has updated the pull request incrementally with one additional \
> commit since the last revision:
> Improve comment as suggested by Chris.
Marked as reviewed by cjplummer (Reviewer).
-------------
PR: https://git.openjdk.java.net/jdk/pull/5849
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic