RFR: Fix full gc with class unloading

William Kemper wkemper at openjdk.java.net
Tue Sep 14 21:31:23 UTC 2021


On Mon, 13 Sep 2021 21:01:00 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

> This pull request fixes incompatibilities between Full GC and class unloading.  In particular, when degenerated GC upgrades to Full GC, it is important to change the generation to GLOBAL.  Otherwise, certain assertions related to class unloading fail.

src/hotspot/share/gc/shenandoah/shenandoahControlThread.cpp line 591:

> 589:     assert(heap->cancelled_gc(), "Must have been cancelled");
> 590:     check_cancellation_or_degen(gc.degen_point());
> 591:     if (generation->generation_mode() == OLD) {

Is this ever true here? Old collections should go through the `service_concurrent_old_cycle` method.

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

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


More information about the shenandoah-dev mailing list