-
Bug
-
Resolution: Fixed
-
P4
-
None
-
b16
Several issues were detected during rr playback of a recent assertion failure:
1. The balancing of generations that happens at the end of free set rebuild is redundant with the actions taken by ShenandoahGenerationalHeap::balance_generations(). This sometimes results in performing these actions twice, resulting in an unexpected imbalance of generation sizes and a generation size assertion error.
2. The convention within ShennadoahFreeSet's ShenandoahRegionPartition is to use rightmost equal to -1 and leftmost equal to max to indicate an empty partition. At the end of ShenandoahFreeSet::find_regions_with_alloc_capacity(), we were accidentally violating this convention by using righmost equal to 0 for empty.
3. At the end of ShenandoahFreeSet::reserve_regions(), we log failure to reserve intended amounts. But the test for when to log this failure is wrong. We were testing for capacity rather than availability within the relevant partitions
1. The balancing of generations that happens at the end of free set rebuild is redundant with the actions taken by ShenandoahGenerationalHeap::balance_generations(). This sometimes results in performing these actions twice, resulting in an unexpected imbalance of generation sizes and a generation size assertion error.
2. The convention within ShennadoahFreeSet's ShenandoahRegionPartition is to use rightmost equal to -1 and leftmost equal to max to indicate an empty partition. At the end of ShenandoahFreeSet::find_regions_with_alloc_capacity(), we were accidentally violating this convention by using righmost equal to 0 for empty.
3. At the end of ShenandoahFreeSet::reserve_regions(), we log failure to reserve intended amounts. But the test for when to log this failure is wrong. We were testing for capacity rather than availability within the relevant partitions
- links to
-
Commit(master) openjdk/jdk/858b4f12
-
Commit(master) openjdk/shenandoah-jdk21u/4e5107d5
-
Commit(master) openjdk/shenandoah/1a7d597d
-
Review(master) openjdk/jdk/20974
-
Review(master) openjdk/shenandoah-jdk21u/90
-
Review(master) openjdk/shenandoah/497
(1 links to)