RFR: 7904027: JOL: Add test cases for ZGC and object alignments
Aleksey Shipilev
shade at openjdk.org
Fri Jun 6 15:33:07 UTC 2025
On Thu, 8 May 2025 00:43:03 GMT, Anton Rybochkin <duke at openjdk.org> wrote:
> This test reveals incorrect object alignment detection when using generational ZGC which results in high object size reported (512k on aarch64 and 64k otherwise)
There are test failures in GHA right now, do you know what are those?
[INFO] Running org.openjdk.jol.vm.HotspotUnsafeTest
Error: Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.016 s <<< FAILURE! - in org.openjdk.jol.vm.HotspotUnsafeTest
Error: org.openjdk.jol.vm.HotspotUnsafeTest.testAlignment Time elapsed: 0.012 s <<< FAILURE!
java.lang.AssertionError: expected:<8> but was:<65536>
at org.openjdk.jol.vm.HotspotUnsafeTest.testAlignment(HotspotUnsafeTest.java:14)
jol-core/pom.xml line 363:
> 361: <id>generational-zgc-tests</id>
> 362: <activation>
> 363: <jdk>21</jdk>
Sounds more like `[21,)`?
jol-core/src/test/java/org/openjdk/jol/vm/HotspotUnsafeTest.java line 23:
> 21: return alignmentProperty
> 22: .map(alignment -> Integer.parseInt(substringAfter(alignment, "=")))
> 23: .orElseGet(() -> Integer.parseInt(System.getProperty("sun.arch.data.model")) / Byte.SIZE);
This is not really correct. On 32-bit, the object alignment is not `32/8 = 4`, it is still `8`. Hotspot just does `8` on these platforms, put `8` in here too.
jol-core/src/test/java/org/openjdk/jol/vm/HotspotUnsafeTest.java line 25:
> 23: .orElseGet(() -> Integer.parseInt(System.getProperty("sun.arch.data.model")) / Byte.SIZE);
> 24: }
> 25: }
Newline, please.
-------------
PR Review: https://git.openjdk.org/jol/pull/64#pullrequestreview-2905274220
PR Review Comment: https://git.openjdk.org/jol/pull/64#discussion_r2132405768
PR Review Comment: https://git.openjdk.org/jol/pull/64#discussion_r2132407825
PR Review Comment: https://git.openjdk.org/jol/pull/64#discussion_r2132408055
More information about the jol-dev
mailing list