RFR: 8365656: [ubsan] G1CSetCandidateGroup::liveness() reports division by 0 [v5]

Ivan Walulya iwalulya at openjdk.org
Mon Aug 25 12:17:53 UTC 2025


On Mon, 25 Aug 2025 12:01:32 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

>> Hi all,
>> 
>>   please review this change that fixes a div-by-zero in calculating liveness for logging.
>> 
>> It is possible that the young gen group cardset is empty (has no regions assigned to it as no eden region has retired yet) when the `Cleanup` pause starts, making the liveness calculation divide by zero.
>> 
>> The change special-cases this case when printing - I decided to always print the group in this case, regardless of length, just fudging the output value a bit. An alternative would be not printing it at all in this case. Feel free to argue for that solution. Also the printed value for liveness (0.0%) is up for discussion.
>> 
>> Testing: failing test case does not fail any more now and then, gha, tier1-4
>> 
>> Thanks,
>>   Thomas
>
> Thomas Schatzl has updated the pull request incrementally with one additional commit since the last revision:
> 
>   * use double-sized 0.0 constants

Marked as reviewed by iwalulya (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/26888#pullrequestreview-3151170749


More information about the hotspot-gc-dev mailing list