RFR: 8351464: Shenandoah: Hang on ShenandoahController::handle_alloc_failure when run test TestAllocHumongousFragment#generational [v3]

William Kemper wkemper at openjdk.org
Tue Mar 11 23:51:35 UTC 2025


> Failed allocations may race to cancel the GC with the collector who is working to clear the cancelled GC. When the GC wins this race, it will fail to notify threads that are waiting for the failed GC cycle to complete. This change directly tracks the number of threads waiting due to an allocation failure, rather than indirectly tracking them through the cancelled gc state.
> 
> # Testing
> Ran TestAllocHumongousFragment#generational 6,500 times without failures.

William Kemper has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:

 - Unproblem list test that found this issue
 - Merge remote-tracking branch 'jdk/master' into fix-alloc-waiters-missed-notify
 - Notify alloc waiters when GC completes without cancellation
 - Track number of threads waiting on allocation failures for notification

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23997/files
  - new: https://git.openjdk.org/jdk/pull/23997/files/cb9cd72f..3a16131b

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23997&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23997&range=01-02

  Stats: 17915 lines in 138 files changed: 6689 ins; 10288 del; 938 mod
  Patch: https://git.openjdk.org/jdk/pull/23997.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23997/head:pull/23997

PR: https://git.openjdk.org/jdk/pull/23997


More information about the shenandoah-dev mailing list