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