Hi all,
I just added Java 13 EA to the build matrix on travis-ci and noticed,
that they are failing with OOM.
On investigation in a docker image, I could reproduce those (or similar)
OOM errors:
Exception: java.lang.OutOfMemoryError thrown from the
UncaughtExceptionHandler in thread "process reaper"
[javac]
[javac]
[javac] The system is out of resources.
[javac] Consult the following stack trace for details.
[javac] java.lang.OutOfMemoryError: Java heap space: failed
reallocation of scalar replaced objects
BUILD FAILED
/root/jmeter/build.xml:960: Compile failed; see the compiler error
output for details.
at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1425)
at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:1133)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at
org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
at org.apache.tools.ant.Task.perform(Task.java:350)
at org.apache.tools.ant.Target.execute(Target.java:449)
at org.apache.tools.ant.Target.performTasks(Target.java:470)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1388)
at org.apache.tools.ant.Project.executeTarget(Project.java:1361)
at
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.Main.runBuild(Main.java:834)
at org.apache.tools.ant.Main.startAnt(Main.java:223)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)
Sometimes the ant run produces
compile-jorphan:
[javac] Compiling 62 source files to /root/jmeter/build/jorphan
Exception: java.lang.OutOfMemoryError thrown from the
UncaughtExceptionHandler in thread "process reaper"
[javac]
[javac]
[javac] The system is out of resources.
[javac] Consult the following stack trace for details.
[javac] java.lang.OutOfMemoryError: Java heap space
[javac] at java.base/java.util.Arrays.copyOf(Arrays.java:3690)
[javac] at java.base/java.util.ArrayList.grow(ArrayList.java:237)
[javac] at java.base/java.util.ArrayList.grow(ArrayList.java:242)
[javac] at java.base/java.util.ArrayList.add(ArrayList.java:485)
[javac] at java.base/java.util.ArrayList.add(ArrayList.java:498)
[javac] at
jdk.zipfs/jdk.nio.zipfs.ZipFileSystem.iteratorOf(ZipFileSystem.java:436)
[javac] at
jdk.zipfs/jdk.nio.zipfs.ZipDirectoryStream.iterator(ZipDirectoryStream.java:69)
[javac] at
java.base/java.nio.file.FileTreeWalker$DirectoryNode.<init>(FileTreeWalker.java:78)
[javac] at
java.base/java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:310)
[javac] at
java.base/java.nio.file.FileTreeWalker.next(FileTreeWalker.java:373)
[javac] at
java.base/java.nio.file.Files.walkFileTree(Files.java:2838)
[javac] at
jdk.compiler/com.sun.tools.javac.file.JavacFileManager$ArchiveContainer.<init>(JavacFileManager.java:523)
[javac] at
jdk.compiler/com.sun.tools.javac.file.JavacFileManager.getContainer(JavacFileManager.java:316)
[javac] at
jdk.compiler/com.sun.tools.javac.file.JavacFileManager.list(JavacFileManager.java:714)
[javac] at
jdk.compiler/com.sun.tools.javac.code.ClassFinder.list(ClassFinder.java:737)
[javac] at
jdk.compiler/com.sun.tools.javac.code.ClassFinder.scanUserPaths(ClassFinder.java:681)
[javac] at
jdk.compiler/com.sun.tools.javac.code.ClassFinder.fillIn(ClassFinder.java:554)
[javac] at
jdk.compiler/com.sun.tools.javac.code.ClassFinder.complete(ClassFinder.java:299)
[javac] at
jdk.compiler/com.sun.tools.javac.code.ClassFinder$$Lambda$232/0x0000000801348840.complete(Unknown
Source)
[javac] at
jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:642)
[javac] at
jdk.compiler/com.sun.tools.javac.code.Symbol$PackageSymbol.members(Symbol.java:1131)
[javac] at
jdk.compiler/com.sun.tools.javac.code.Symtab.listPackageModules(Symtab.java:834)
[javac] at
jdk.compiler/com.sun.tools.javac.comp.Enter.visitTopLevel(Enter.java:345)
[javac] at
jdk.compiler/com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:535)
[javac] at
jdk.compiler/com.sun.tools.javac.comp.Enter.classEnter(Enter.java:286)
[javac] at
jdk.compiler/com.sun.tools.javac.comp.Enter.classEnter(Enter.java:301)
[javac] at
jdk.compiler/com.sun.tools.javac.comp.Enter.complete(Enter.java:577)
[javac] at
jdk.compiler/com.sun.tools.javac.comp.Enter.main(Enter.java:561)
[javac] at
jdk.compiler/com.sun.tools.javac.main.JavaCompiler.enterTrees(JavaCompiler.java:1066)
[javac] at
jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:937)
[javac] at
jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:318)
[javac] at
jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:176)
These were produced by running "ant clean install"
The docker file I used was as follows:
FROM openjdk:13
RUN yum install -y \
git \
wget \
bzip2 \
hostname \
\
&& \
rm -rf /var/cache/yum
WORKDIR /root
ENV ANT_VERSION 1.10.5
RUN wget
https://www-us.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.bz2
&& \
tar xf apache-ant-${ANT_VERSION}-bin.tar.bz2 && \
rm apache-ant-${ANT_VERSION}-bin.tar.bz2
ENV ANT_HOME /root/apache-ant-${ANT_VERSION}
ENV PATH $PATH:$ANT_HOME/bin
RUN git clone https://github.com/apache/jmeter.git
WORKDIR jmeter
Has anyone an idea, what could cause this OOM on compilation?
Regards,
Felix