RFR: 8361339: Test gc/shenandoah/TestLargeObjectAlignment.java#generational fails on macOS aarch64 with OOM: Java heap space

Rui Li duke at openjdk.org
Thu Nov 6 00:29:26 UTC 2025


Sporadic failures were observed for TestLargeObjectAlignment.java#generational. The current theory is that jtreg deafult heap size on the reporter's machines is too small, and the randomness in test just sometimes created a huge heap larger than what the test had. 

Did a calculation for the worst case (see the code snippet at the end - it removes the Random in the original test and always allocates the array to full) and the test needs at least 2g. Initiating 3g heap for safety to reduce the noise.

Also use the test to compare between Shenandoah vs GenShen: on my laptop (Mac M3), Shen failed at 2150m Xmx, GenShen could pass Xmx2150m and failed at Xmx2050m, so GenShen isn't worse. The reported GenShen failure observation probably came from the Random.



public class TestLargeObjectAlignmentDeterministic {

    static final int SLABS_COUNT = Integer.getInteger("slabs", 10000);
    static final int NODE_COUNT = Integer.getInteger("nodes", 10000);
    static final long TIME_NS = 1000L * 1000L * Integer.getInteger("timeMs", 5000);

    static Object[] objects;

    public static void main(String[] args) throws Exception {
        objects = new Object[SLABS_COUNT];


            for (int i = 0; i < SLABS_COUNT; i++) {
                objects[i] = createSome();
            }
    }

    public static Object createSome() {
        List<Integer> result = new ArrayList<Integer>();
        for (int c = 0; c < NODE_COUNT; c++) {
            result.add(new Integer(c));
        }
        return result;
    }

}

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

Commit messages:
 - 8361339: Test gc/shenandoah/TestLargeObjectAlignment.java#generational fails on macOS aarch64 with OOM: Java heap space

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

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


More information about the hotspot-gc-dev mailing list