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

Thomas Schatzl tschatzl at openjdk.org
Tue Aug 26 07:00:44 UTC 2025


On Thu, 21 Aug 2025 16:13:10 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

This pull request has now been integrated.

Changeset: e38c6f98
Author:    Thomas Schatzl <tschatzl at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/e38c6f9827c15777361dd1c7ce420f020f5de313
Stats:     3 lines in 2 files changed: 1 ins; 0 del; 2 mod

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

Reviewed-by: iwalulya, ayang

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

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


More information about the hotspot-gc-dev mailing list