RFR: 8156500: deadlock provoked by new stress test com/sun/jdi/OomDebugTest.java
Per Liden
per.liden at oracle.com
Tue Jun 28 08:26:20 UTC 2016
Hi Dan,
On 2016-06-28 03:34, Daniel D. Daugherty wrote:
[...]
>
> src/share/vm/gc/shared/vmGCOperations.cpp
> L103: Heap_lock->unlock();
> You did not add a conditional "Heap_lock->notify_all()" before
> the Heap_lock->unlock() like you've done in other places.
> Since you deleted a release_and_notify_pending_list_lock()
> call, I would think you need the:
>
> if (Universe::has_reference_pending_list()) {
> Heap_lock->notify_all();
> }
This path is only taken if the GC was skipped and never ran. In this
case, we know we didn't discover and enqueued any new references on the
pending list, hence no need to notify any waiting thread (the Reference
Handler thread in this case).
cheers,
Per
More information about the core-libs-dev
mailing list