RFR: 8377142: Jtreg test gc/shenandoah/oom/TestThreadFailure.java triggers assert(young_reserve + reserve_for_mixed + reserve_for_promo <= old_available + young_available) failed
William Kemper
wkemper at openjdk.org
Wed Feb 11 18:16:10 UTC 2026
On Wed, 11 Feb 2026 18:07:09 GMT, William Kemper <wkemper at openjdk.org> wrote:
>> In ShenandoahGenerationalHeap::compute_old_generation_balance(), adjust old_available and young_available when regions are transferred between young and old generations.
>
> 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?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/29621#discussion_r2794742800
More information about the hotspot-gc-dev
mailing list