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

Thomas Schatzl tschatzl at openjdk.org
Thu Aug 21 16:18:23 UTC 2025


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 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

Thanks,
  Thomas

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

Commit messages:
 - 8365656

Changes: https://git.openjdk.org/jdk/pull/26888/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=26888&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8365656
  Stats: 2 lines in 2 files changed: 1 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/26888.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26888/head:pull/26888

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


More information about the hotspot-gc-dev mailing list