RFR: 8365487: [asan] some oops (mode) related tests fail

Matthias Baesken mbaesken at openjdk.org
Wed Aug 13 13:30:57 UTC 2025


When running with asan - enabled binaries, some oops related tests fail.
This seems to be related to (small) changes in memory layout caused by asan.
examples :
runtime/CompressedOops/UseCompressedOops.java


java.lang.RuntimeException: 'Zero based' missing from stdout/stderr
               at jdk.test.lib.process.OutputAnalyzer.shouldContain(OutputAnalyzer.java:253)
               at UseCompressedOops.testCompressedOopsModes(UseCompressedOops.java:98)
               at UseCompressedOops.testCompressedOopsModesGCs(UseCompressedOops.java:59)
               at UseCompressedOops.main(UseCompressedOops.java:48)
               at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
               at java.base/java.lang.reflect.Method.invoke(Method.java:565)
               at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
               at java.base/java.lang.Thread.run(Thread.java:1474)




jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWith32BitOops.java


Error: Value not equal to 32-bit, field='compressedOopsMode', value='Non-zero based' expected: Non-zero based but was: 32-bit
Failed event:
jdk.GCHeapConfiguration {
  startTime = 13:13:02.886 (2025-08-09)
  minSize = 100.0 MB
  maxSize = 100.0 MB
  initialSize = 100.0 MB
  usesCompressedOops = true
  compressedOopsMode = "Non-zero based"
  objectAlignment = 8 bytes
  heapAddressBits = 32
}

----------System.err:(20/1718)----------
java.lang.RuntimeException: Value not equal to 32-bit, field='compressedOopsMode', value='Non-zero based' expected: Non-zero based but was: 32-bit
               at jdk.test.lib.Asserts.fail(Asserts.java:715)
               at jdk.test.lib.Asserts.assertEquals(Asserts.java:208)
               at jdk.test.lib.jfr.EventField.lambda$equal$0(EventField.java:50)
               at jdk.test.lib.jfr.EventField.doAssert(EventField.java:114)
               at jdk.test.lib.jfr.EventField.equal(EventField.java:50)
               at jdk.test.lib.jfr.EventVerifier.verifyEquals(EventVerifier.java:35)
               at jdk.jfr.event.gc.configuration.GCHeapConfigurationEventVerifier.verifyCompressedOopModeIs(GCHeapConfigurationEventVerifier.java:59)
               at jdk.jfr.event.gc.configuration.ThirtyTwoBitsVerifier.verify(TestGCHeapConfigurationEventWith32BitOops.java:74)
               at jdk.jfr.event.gc.configuration.GCHeapConfigurationEventTester.run(GCHeapConfigurationEventTester.java:46)
               at jdk.jfr.event.gc.configuration.TestGCHeapConfigurationEventWith32BitOops.main(TestGCHeapConfigurationEventWith32BitOops.java:49)
               at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
               at java.base/java.lang.reflect.Method.invoke(Method.java:565)
               at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
               at java.base/java.lang.Thread.run(Thread.java:1474)



jdk/jfr/event/gc/configuration/TestGCHeapConfigurationEventWithZeroBasedOops.java



Error: Value not equal to Zero based, field='compressedOopsMode', value='Non-zero based' expected: Non-zero based but was: Zero based
Failed event:
jdk.GCHeapConfiguration {
  startTime = 13:13:02.073 (2025-08-09)
  minSize = 8.0 MB
  maxSize = 4.0 GB
  initialSize = 1000.0 MB
  usesCompressedOops = true
  compressedOopsMode = "Non-zero based"
  objectAlignment = 8 bytes
  heapAddressBits = 32
}

----------System.err:(20/1754)----------
java.lang.RuntimeException: Value not equal to Zero based, field='compressedOopsMode', value='Non-zero based' expected: Non-zero based but was: Zero based
               at jdk.test.lib.Asserts.fail(Asserts.java:715)
               at jdk.test.lib.Asserts.assertEquals(Asserts.java:208)
               at jdk.test.lib.jfr.EventField.lambda$equal$0(EventField.java:50)
               at jdk.test.lib.jfr.EventField.doAssert(EventField.java:114)
               at jdk.test.lib.jfr.EventField.equal(EventField.java:50)
               at jdk.test.lib.jfr.EventVerifier.verifyEquals(EventVerifier.java:35)
               at jdk.jfr.event.gc.configuration.GCHeapConfigurationEventVerifier.verifyCompressedOopModeIs(GCHeapConfigurationEventVerifier.java:59)
               at jdk.jfr.event.gc.configuration.ZeroBasedOopsVerifier.verify(TestGCHeapConfigurationEventWithZeroBasedOops.java:67)
               at jdk.jfr.event.gc.configuration.GCHeapConfigurationEventTester.run(GCHeapConfigurationEventTester.java:46)
               at jdk.jfr.event.gc.configuration.TestGCHeapConfigurationEventWithZeroBasedOops.main(TestGCHeapConfigurationEventWithZeroBasedOops.java:44)
               at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
               at java.base/java.lang.reflect.Method.invoke(Method.java:565)
               at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
               at java.base/java.lang.Thread.run(Thread.java:1474)

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

Commit messages:
 - JDK-8365487

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

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


More information about the hotspot-dev mailing list