On Fri, 15 Nov 2024 09:18:27 GMT, Matthias Baesken <mbaes...@openjdk.org> wrote:
> On AIX we run into errors below, for example in test > tools/jlink/runtimeImage/AddOptionsTest.java , this happened with fastdebug > binaries, opt worked : > > jlink options: --output java-base-with-opts-jlink-tmp --add-modules > jdk.jlink,java.base --generate-linkable-runtime > --keep-packaged-modules=java-base-with-opts-jlink-tmp/jmods > Error: Java heap space > java.lang.OutOfMemoryError: Java heap space > at java.base/java.io.InputStream.readNBytes(InputStream.java:447) > at java.base/java.io.InputStream.readAllBytes(InputStream.java:348) > at > jdk.jlink/jdk.tools.jlink.plugin.ResourcePoolEntry.contentBytes(ResourcePoolEntry.java:127) > at > jdk.jlink/jdk.tools.jlink.internal.runtimelink.ResourcePoolReader.getResourceBytes(ResourcePoolReader.java:54) > at > jdk.jlink/jdk.tools.jlink.internal.runtimelink.JimageDiffGenerator.generateDiff(JimageDiffGenerator.java:89) > at > jdk.jlink/jdk.tools.jlink.internal.ImageFileCreator.addResourceDiffFiles(ImageFileCreator.java:357) > at > jdk.jlink/jdk.tools.jlink.internal.ImageFileCreator.generateJImage(ImageFileCreator.java:264) > at > jdk.jlink/jdk.tools.jlink.internal.ImageFileCreator.writeImage(ImageFileCreator.java:202) > at > jdk.jlink/jdk.tools.jlink.internal.ImageFileCreator.create(ImageFileCreator.java:131) > at > jdk.jlink/jdk.tools.jlink.internal.JlinkTask$ImageHelper.retrieve(JlinkTask.java:1041) > at > jdk.jlink/jdk.tools.jlink.internal.ImagePluginStack.operate(ImagePluginStack.java:194) > at > jdk.jlink/jdk.tools.jlink.internal.JlinkTask.createImage(JlinkTask.java:501) > at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.run(JlinkTask.java:294) > at jdk.jlink/jdk.tools.jlink.internal.Main.run(Main.java:56) > at jdk.jlink/jdk.tools.jlink.internal.Main$JlinkToolProvider.run(Main.java:73) > at tests.JImageGenerator$JLinkTask.call(JImageGenerator.java:713) > at > AbstractLinkableRuntimeTest.createRuntimeLinkImage(AbstractLinkableRuntimeTest.java:273) > at > AbstractLinkableRuntimeTest.createJavaImageRuntimeLink(AbstractLinkableRuntimeTest.java:126) > at > AbstractLinkableRuntimeTest.createJavaImageRuntimeLink(AbstractLinkableRuntimeTest.java:121) > at AddOptionsTest.runTest(AddOptionsTest.java:64) > at AbstractLinkableRuntimeTest.run(AbstractLinkableRuntimeTest.java:62) > at AddOptionsTest.main(AddOptionsTest.java:49) > at > java.base/java.lang.invoke.LambdaForm$DMH/0x0a0001009070c3e0.invokeStatic(LambdaForm$DMH) > at > java.base/java.lang.invoke.LambdaForm$MH/0x0a00010090710c10.invoke(LambdaForm$MH) > at > java.base/java.lang.invoke.LambdaForm$MH/0x0a00010090711408.invokeExact_MT(LambdaForm$MH) > at ja... It seems a bit excessive to bump to twice the size while we won't need it for any platform other than AIX. Would `-Xmx1500m` work as well? Aside, those tests now potentially run on machines with 2gb of max memory with a 2gb heap setting. Where you able to reproduce outside of testing? at jdk.jlink/jdk.tools.jlink.internal.runtimelink.ResourcePoolReader.getResourceBytes(ResourcePoolReader.java:54) at jdk.jlink/jdk.tools.jlink.internal.runtimelink.JimageDiffGenerator.generateDiff(JimageDiffGenerator.java:89) It would be interesting to know whether or not the resource that is being compared is the same when the error happens for each run. Have you tried investigating? ------------- PR Comment: https://git.openjdk.org/jdk/pull/22140#issuecomment-2478478039