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