-
Bug
-
Resolution: Fixed
-
P4
-
25, 26
-
b12
-
generic
-
linux
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)
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)
- links to
-
Commit(master) openjdk/jdk/98f54d90
-
Review(master) openjdk/jdk25u/135
-
Review(master) openjdk/jdk/26760