RFR: 8377142: Jtreg test gc/shenandoah/oom/TestThreadFailure.java triggers assert(young_reserve + reserve_for_mixed + reserve_for_promo <= old_available + young_available) failed [v2]

Kelvin Nilsen kdnilsen at openjdk.org
Thu Feb 12 17:52:35 UTC 2026


On Wed, 11 Feb 2026 18:10:26 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp line 771:
>> 
>>> 769:     young_available -= old_region_deficit * region_size_bytes;
>>> 770: 
>>> 771:     assert(old_available < old_reserve, "sanity");
>> 
>> Suggestion:
>> 
>>     assert(old_available < old_reserve, "Old available (%zu) must be less than old reserve (%zu)", old_available, old_reserve);
>
> I understand what these variables represent, but their names make this comparison feel backward. Shouldn't the reserve rather be limited by what is available?

Making this change to the assert as well.

In an attempt to improve readability of code, I'm renaming old_available to old_currently_available, reserve_for_promo to proposed_reserve_for_promo, reserve_for_mixed to proposed_reserve_for_mixed, old_reserve to proposed_old_reserve.

At this point in the code, we've discovered that old_currently_available is smaller than proposed_old_reserve.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/29621#discussion_r2800254016


More information about the hotspot-gc-dev mailing list