RFR: 8276201: Shenandoah: Race results degenerated GC to enter wrong entry point

Zhengyu Gu zgu at openjdk.java.net
Mon Nov 1 12:21:19 UTC 2021


On Mon, 1 Nov 2021 11:27:02 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> There is subtle race when concurrent GC comes out of final mark safepoint: an allocation failure occurred before control thread checks OOM conditional, that triggers degenerated GC enters "mark" degenerated point.
>> 
>> Degenerated GC re-executes final mark, then switching off SATB, but it is already off, because concurrent GC already completed final mark, that triggers the assertion.
>> 
>> The solution is to consult concurrent_mark_in_progress flag when selects degen-point.
>> 
>> Test:
>> - [x] hotspot_gc_shenandoah
>
> Looks fine.

Thanks, @shipilev

-------------

PR: https://git.openjdk.java.net/jdk/pull/6179



More information about the hotspot-gc-dev mailing list