RFR: 8372566: Genshen: crash at ShenandoahScanRemembered::process_clusters after JDK-8371667

William Kemper wkemper at openjdk.org
Mon Dec 1 16:37:40 UTC 2025


On Thu, 27 Nov 2025 03:10:18 GMT, Xiaolong Peng <xpeng at openjdk.org> wrote:

> For non-plab allocs in old gen, the objects need to be registered in card table, which was missed in the [PR](https://git.openjdk.org/jdk/pull/28247) for JDK-8371667. The bug didn't cause jtreg test failures in GHA and my local test, but when I ran specjbb benchmarks, it did cause crash at ShenandoahScanRemembered::process_clusters when GC scans remembered set. 
> 
> The bug may cause other issue since the object in old gen is not properly registered, e.g. marking phase have wrong result.
> 
> Tests:
> - [x]  specjbb, no crash
> - [x] hotspot_gc_shenandoah

Given that https://github.com/openjdk/jdk/pull/28247 significantly changed the encoding of the request `type` here, and we already missed an incorrect usage in one spot, I think we should use the member function to test for a shared/lab allocation. Can we also check if there are other uses of `type()` that may not be safe now?

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

Changes requested by wkemper (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/28521#pullrequestreview-3525951105


More information about the shenandoah-dev mailing list