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:08 UTC 2026
On Sat, 7 Feb 2026 00:50:59 GMT, Kelvin Nilsen <kdnilsen 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.
I'd prefer more meaningful assertion messages. I feel it gives you a leg up when debugging.
src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp line 685:
> 683: }
> 684: }
> 685: assert(reserve_for_mixed + reserve_for_promo <= max_old_reserve, "sanity");
Suggestion:
assert(reserve_for_mixed + reserve_for_promo <= max_old_reserve, "Reserve for mixed (%zu) and reserve for promotions (%zu) must be less than maximum old reserve (%zu)", reserve_for_mixed, reserve_for_promo, max_old_reserve);
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);
src/hotspot/share/gc/shenandoah/shenandoahGenerationalHeap.cpp line 787:
> 785: }
> 786:
> 787: assert(old_region_deficit == 0 || old_region_surplus == 0, "Only surplus or deficit, never both");
Suggestion:
assert(old_region_deficit == 0 || old_region_surplus == 0, "Only surplus (%zu) or deficit (%zu), never both", old_region_surplus, old_region_deficit);
-------------
Changes requested by wkemper (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/29621#pullrequestreview-3786395944
PR Review Comment: https://git.openjdk.org/jdk/pull/29621#discussion_r2794712634
PR Review Comment: https://git.openjdk.org/jdk/pull/29621#discussion_r2794728306
PR Review Comment: https://git.openjdk.org/jdk/pull/29621#discussion_r2794747812
More information about the hotspot-gc-dev
mailing list