RFR (XS/T) 8232176: Shenandoah: new assert in ShenandoahEvacuationTask is too strong
Aleksey Shipilev
shade at redhat.com
Mon Oct 14 09:07:12 UTC 2019
Thanks, pushed.
-Aleksey
On 10/14/19 11:02 AM, Roman Kennke wrote:
> Hmm, ok.
>
> Roman
>
>
>> Recent regression:
>> https://bugs.openjdk.java.net/browse/JDK-8232176
>>
>> JDK-8231947 added the assert in ShenandoahEvacuationTask that is too strong. There is a corner case
>> when the region is collection-set-pinned (CSP), and the oom-evac-protocol waits for GC thread to
>> complete the evacuation. There is a short window where GC thread can see the CSP region before
>> seeing cancellation request.
>>
>> It seems easier to remove the too strong assert for now. is_conc_move_allowed() == true is a lie
>> right now. We can add cancelled_gc() check inside of it, but that would only be safe if we know that
>> caller holds oom-evac-scope.
>>
>> The assertion failure reliably reproduces with -XX:ShenandoahGCHeuristics=aggressive
>> -XX:+ShenandoahOOMDuringEvacALot on SPECjvm2008.
>>
>> Fix:
>> https://cr.openjdk.java.net/~shade/8232176/webrev.01/
>>
>> Testing: broken tests
>>
>
More information about the hotspot-gc-dev
mailing list