From a59f2fc8ad60655b8e5f522e828846e10629aee7 Mon Sep 17 00:00:00 2001 From: Patrick Fontanilla Date: Tue, 16 Jun 2026 16:00:47 +0000 Subject: [PATCH] 8386288: GenShen: assert(region->get_top_before_promote() == nullptr) failed: Cannot add region scheduled for in-place-promotion to the collection set Reviewed-by: wkemper, ruili --- src/hotspot/share/gc/shenandoah/shenandoahInPlacePromoter.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/hotspot/share/gc/shenandoah/shenandoahInPlacePromoter.cpp b/src/hotspot/share/gc/shenandoah/shenandoahInPlacePromoter.cpp index 153193fa3a3..ffa087ac3c0 100644 --- a/src/hotspot/share/gc/shenandoah/shenandoahInPlacePromoter.cpp +++ b/src/hotspot/share/gc/shenandoah/shenandoahInPlacePromoter.cpp @@ -153,7 +153,7 @@ void ShenandoahInPlacePromoter::maybe_promote_region(ShenandoahHeapRegion* r) co if (!obj->is_typeArray()) { promote_humongous(r); } - } else if (r->is_regular() && (r->get_top_before_promote() != nullptr)) { + } else if (r->is_regular_or_regular_pinned() && (r->get_top_before_promote() != nullptr)) { // Likewise, we cannot put promote-in-place regions into the collection set because that would also trigger // the LRB to copy on reference fetch. // @@ -181,7 +181,7 @@ void ShenandoahInPlacePromoter::promote(ShenandoahHeapRegion* region) const { assert(region->garbage_before_padded_for_promote() < old_garbage_threshold, "Region %zu has too much garbage for promotion", region->index()); assert(region->is_young(), "Only young regions can be promoted"); - assert(region->is_regular(), "Use different service to promote humongous regions"); + assert(region->is_regular_or_regular_pinned(), "Use different service to promote humongous regions"); assert(_heap->is_tenurable(region), "Only promote regions that are sufficiently aged"); assert(region->get_top_before_promote() == tams, "Region %zu has been used for allocations before promotion", region->index()); }