RFR: 8311843: GenShen: assertion failed "Old generation affiliated regions must be less than capacity" [v2]

William Kemper wkemper at openjdk.org
Mon Aug 28 16:52:01 UTC 2023


On Sat, 26 Aug 2023 12:38:53 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> Given that full-gc is allowed to violate the min/max constraints on generation sizes, I'm inclined to allow the same here, and revert this to force_transfer_to_old().  If that doesn't work, maybe a comment to explain why.  Because I'm not understanding this entirely.
>
> Specifically, it seems if we ever flip without adjusting capacity, we will end up violating assertions of the form old_gen->usage() <= old_gen->capacity().

Yes, there was a logic error in `rebuild` that caused the loop to exit well before any regions were transferred to the collector's reserves. This left it in a state where `capacity_of(Mutator)` was well higher than it ought to have been (i.e., when `young->available() == 0`).

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

PR Review Comment: https://git.openjdk.org/shenandoah/pull/311#discussion_r1307674739


More information about the shenandoah-dev mailing list