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 hotspot-dev mailing list