RFR: 8350605: assert(!heap->is_uncommit_in_progress()) failed: Cannot uncommit bitmaps while resetting them [v3]
Y. Srinivas Ramakrishna
ysr at openjdk.org
Mon Mar 3 23:52:53 UTC 2025
On Fri, 28 Feb 2025 17:44:36 GMT, William Kemper <wkemper at openjdk.org> wrote:
>> The protocol which is meant to prevent regions from being uncommitted while their bitmaps are being reset may fail. This happens when the control thread attempts to wait for the uncommit thread to finish, but the uncommit thread has not yet indicated that it has started.
>>
>> ## Testing
>> GHA, Dacapo, Extremem, Heapothesys, Diluvian, SpecJBB2015, SpecJVM2008 (with and without stress flags, asserts). Also have run the JTREG test that failed this assertion over 10K times (and counting).
>
> William Kemper has updated the pull request incrementally with one additional commit since the last revision:
>
> Comment tweak
🚢
Small documentation suggestion. No re-review needed.
If available, please add to the ticket or to the PR the failing test name(s), and a suitable exemplar stack retrace of assertion violation.
src/hotspot/share/gc/shenandoah/shenandoahUncommitThread.hpp line 65:
> 63: // Iterate and uncommit eligible regions. Return the number of regions uncommitted.
> 64: // This operation may be interrupted if the GC calls `forbid_uncommit`.
> 65: size_t do_uncommit_work(double shrink_before, size_t shrink_until) const;
I'd document the semantics of the parameters too:
// Iterate over and uncommit eligible regions unless committed heap would fall below `shrink_until` <units: bytes?>.
// A region is eligible if it's been empty for at least `shrink_before` <units: seconds?>
// Returns the number of regions uncommitted. May be interrupted by `forbid_uncommit`.
-------------
Marked as reviewed by ysr (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/23760#pullrequestreview-2655587421
PR Review Comment: https://git.openjdk.org/jdk/pull/23760#discussion_r1978390429
More information about the shenandoah-dev
mailing list