RFR: 8351464: Shenandoah: Hang on ShenandoahController::handle_alloc_failure when run test TestAllocHumongousFragment#generational
    William Kemper 
    wkemper at openjdk.org
       
    Tue Mar 11 22:32:52 UTC 2025
    
    
  
On Tue, 11 Mar 2025 21:52:00 GMT, Xiaolong Peng <xpeng at openjdk.org> wrote:
>> 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.
>
> src/hotspot/share/gc/shenandoah/shenandoahGenerationalControlThread.cpp line 281:
> 
>> 279: 
>> 280:   {
>> 281:     MonitorLocker ml(&_alloc_failure_waiters_lock);
> 
> Should the notification code be encapsulated in method `notify_alloc_failure_waiters()`?
Yes, will do this when I take out the waiter counts.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23997#discussion_r1990208348
    
    
More information about the shenandoah-dev
mailing list