RFR: Do not abort coalesce and fill during fullgc

William Kemper wkemper at openjdk.java.net
Mon Mar 21 20:31:06 UTC 2022


On Mon, 21 Mar 2022 20:12:58 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

> We found that the GC cancellation flag that in some cases causes degenerated GC to upgrade to full GC remains set throughout the full GC effort.  In fact, some of the code within full GC checks this flag to determine if it was upgraded from degenerated GC.  We also discovered that when the cancellation flag is set, the coalesce-and-fill effort that is required for pinned regions does not run to completion.  This results in crashes during subsequent remembered set scans.
> 
> This fix uses a new service (ShenandoahHeapRegion::oop_fill_and_coalesce_wo_cancel()) to process pinned regions.  This service always runs to completion, ignoring the status of the GC cancellation flag.

Marked as reviewed by wkemper (Committer).

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

PR: https://git.openjdk.java.net/shenandoah/pull/126


More information about the shenandoah-dev mailing list