eclipse-openj9 / openj9

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Other
3.28k stars 721 forks source link

jdk11 AIX build break: Failed to load alias map from resource: /com/ibm/j9ddr/StructureAliases29.dat #12249

Closed andrew-m-leonard closed 3 years ago

andrew-m-leonard commented 3 years ago

https://ci.adoptopenjdk.net/view/Failing%20Builds/job/build-scripts/job/jobs/job/jdk11u/job/jdk11u-aix-ppc64-openj9/948/console

09:19:18  Exception in thread "main" java.lang.RuntimeException: Failed to load alias map from resource: /com/ibm/j9ddr/StructureAliases29.dat - cannot continue
09:19:18    at com.ibm.j9ddr.StructureReader.loadAliasMapData(StructureReader.java:348)
09:19:18    at com.ibm.j9ddr.StructureReader.loadAliasMap(StructureReader.java:305)
09:19:18    at com.ibm.j9ddr.StructureReader.applyAliases(StructureReader.java:221)
09:19:18    at com.ibm.j9ddr.StructureReader.<init>(StructureReader.java:120)
09:19:18    at com.ibm.j9ddr.tools.ClassGenerator.readBlob(ClassGenerator.java:62)
09:19:18    at com.ibm.j9ddr.tools.ClassGenerator.run(ClassGenerator.java:145)
09:19:18    at com.ibm.j9ddr.tools.ClassGenerator.main(ClassGenerator.java:53)
09:19:19  gmake[4]: *** [/home/jenkins/workspace/build-scripts/jobs/jdk11u/jdk11u-aix-ppc64-openj9/workspace/build/src/closed/DDR.gmk:104: /home/jenkins/workspace/build-scripts/jobs/jdk11u/jdk11u-aix-ppc64-openj9/workspace/build/src/build/aix-ppc64-normal-server-release/support/ddr/classes.done] Error 1
09:19:19  gmake[4]: *** Waiting for unfinished jobs....
09:19:21  Unhandled structure type: subrangePointer->su_rsid rsid_t
andrew-m-leonard commented 3 years ago

Suspect this change: https://github.com/ibmruntimes/openj9-openjdk-jdk11/commit/516568effeaf5fcd663c1af720533c46af6e8e08 and the fact Adopt use Hotspot bootjdk on AIX...?

andrew-m-leonard commented 3 years ago

In fact Adopt jdk11 is picking up an openj9 jdk-10.0.2 bootjdk

sxa commented 3 years ago

This looks like it is related to using a JDK10 boot JDK as it does not happen when bootstrapping with JDK11 ... Generally OpenJDK-based builds should be able to be bootstrapped by the previous version - has someting in the above change broken that ability on AIX @keithc-ca?

pshipton commented 3 years ago

Based on reports in Slack yesterday, this problem isn't limited to AIX. It may not be worth the effort to maintain the ability to use JDK10 as the boot JDK, and I don't see why using JDK10 needs to be maintained since JDK11 is available and LTS.

keithc-ca commented 3 years ago

It turns out that retaining the ability to use JDK10 as the bootjdk is straight-forward.

andrew-m-leonard commented 3 years ago

This seems to re re-occuring? https://ci.adoptopenjdk.net/job/build-scripts/job/jobs/job/jdk11u/job/jdk11u-aix-ppc64-openj9/993/console @keithc-ca @pshipton ?

keithc-ca commented 3 years ago

@andrew-m-leonard The link you shared doesn't work for me. The first step would be to verify that the boot jdk is a recent jdk11.

andrew-m-leonard commented 3 years ago

@keithc-ca sorry forgot you won't be able to see that, here's a snippet:

19:10:04  superset file name: superset.dat
19:10:04  Writing generated classes to /home/jenkins/workspace/build-scripts/jobs/jdk11u/jdk11u-aix-ppc64-openj9/workspace/build/src/build/aix-ppc64-normal-server-release/support/gensrc/openj9.dtfj/com/ibm/j9ddr/vm29/pointer/generated
19:10:04  Writing generated classes to /home/jenkins/workspace/build-scripts/jobs/jdk11u/jdk11u-aix-ppc64-openj9/workspace/build/src/build/aix-ppc64-normal-server-release/support/gensrc/openj9.dtfj/com/ibm/j9ddr/vm29/structure
19:10:04  Exception in thread "main" java.lang.RuntimeException: Failed to load alias map from resource: /com/ibm/j9ddr/StructureAliases29.dat - cannot continue
19:10:04    at com.ibm.j9ddr.StructureReader.loadAliasMapData(StructureReader.java:468)
19:10:04    at com.ibm.j9ddr.StructureReader.loadAliasMap(StructureReader.java:306)
19:10:04    at com.ibm.j9ddr.StructureReader.applyAliases(StructureReader.java:222)
19:10:04    at com.ibm.j9ddr.StructureReader.<init>(StructureReader.java:120)
19:10:04    at com.ibm.j9ddr.tools.ClassGenerator.readBlob(ClassGenerator.java:93)
19:10:04    at com.ibm.j9ddr.tools.ClassGenerator.run(ClassGenerator.java:174)
19:10:04    at com.ibm.j9ddr.tools.ClassGenerator.main(ClassGenerator.java:79)
19:10:04  gmake[4]: *** [/home/jenkins/workspace/build-scripts/jobs/jdk11u/jdk11u-aix-ppc64-openj9/workspace/build/src/closed/DDR.gmk:108: /home/jenkins/workspace/build-scripts/jobs/jdk11u/jdk11u-aix-ppc64-openj9/workspace/build/src/build/aix-ppc64-normal-server-release/support/ddr/classes.done] Error 1
19:10:04  gmake[4]: *** Waiting for unfinished jobs....
19:10:04  "./closed/src/java.base/share/native/libjava/Object.c", line 23.4: 1506-356 (W) Compilation unit is empty.
19:10:05  "./closed/src/java.base/share/native/libjava/StackStreamFactory.c", line 23.4: 1506-356 (W) Compilation unit is empty.
19:10:06  "./closed/src/java.base/share/native/libjava/StackTraceElement.c", line 23.4: 1506-356 (W) Compilation unit is empty.
19:10:06  "./closed/src/java.base/share/native/libjava/System.c", line 23.4: 1506-356 (W) Compilation unit is empty.
19:10:06  "./closed/src/java.base/share/native/libjava/Thread.c", line 23.4: 1506-356 (W) Compilation unit is empty.
19:10:06  "./closed/src/java.base/share/native/libjava/Throwable.c", line 23.4: 1506-356 (W) Compilation unit is empty.
19:10:06  Unhandled structure type: subrangePointer->su_rsid rsid_t
19:10:07  "./closed/src/java.base/share/native/libjava/verify_stub.c", line 23.4: 1506-356 (W) Compilation unit is empty.
19:10:08  Structure stub generation complete
19:10:10  Pointer class generation complete
19:10:10  gmake[3]: *** [Gensrc-openj9.dtfj.gmk:25: all] Error 2
19:10:10  gmake[2]: *** [make/Main.gmk:112: openj9.dtfj-gensrc-src] Error 2
19:10:10  gmake[2]: *** Waiting for unfinished jobs....

Bootk JDK will be the issue it is using:

18:42:08  * Boot JDK:       openjdk version "10.0.2" 2018-07-17 OpenJDK Runtime Environment (build 10.0.2+13) Eclipse OpenJ9 VM (build openj9-0.9.0, JRE 10 AIX ppc64-64-Bit Compressed References 20180813_100 (JIT enabled, AOT enabled) OpenJ9   - 24e5363 OMR      - fad6bf6 JCL      - 7db90ed based on jdk-10.0.2+13)  (at /usr/java10_64)
keithc-ca commented 3 years ago

That's not the part I wanted to see. I need to see the boot jdk version (discovered during configuration).

andrew-m-leonard commented 3 years ago

That's not the part I wanted to see. I need to see the boot jdk version (discovered during configuration).

bottom line!

andrew-m-leonard commented 3 years ago

i'm just checking the build scripts as to what it tries to download

keithc-ca commented 3 years ago

Using jdk10 to build jdk11 with openj9 is not supported.

andrew-m-leonard commented 3 years ago

Using jdk10 to build jdk11 with openj9 is not supported.

@keithc-ca is it just jdk11 where n-1 is not supported ?

keithc-ca commented 3 years ago

I don't know of any issues with versions other than jdk11.

The problem appears to be that jdk10 didn't handle classpaths properly and it's unlikely that a fix for jdk10 will be happening; you would still need to update the bootjdk.