RFR: 8297343: TestStress*.java fail with "got different traces for the same seed"

Roland Westrelin roland at openjdk.org
Thu Nov 24 15:35:29 UTC 2022


Root cause from Roberto's analysis:

"The regression seems to be due to the introduction of non-determinism
in the node dumps of otherwise identical compilations."

"The problem seems to be that JDK-6312651 dumps interface sets in an
order that is determined by the raw pointers of the set elements. This
is unstable across different runs and leads to different node dumps
for otherwise identical compilations."

"Stable node dumps are useful for debugging (e.g. when diffing
compiler traces from two different runs), so the solution is probably
dumping interface sets in some order (e.g. lexicographic order of each
interface dump) that does not depend on raw pointer values."

This patch implements Roberto's recommendation by sorting interfaces
on their ciBaseObject::_ident.

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

Commit messages:
 - comment
 - fix

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

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


More information about the hotspot-compiler-dev mailing list