-
Notifications
You must be signed in to change notification settings - Fork 4.1k
[Benchmarking][Java] new java.lang.OutOfMemoryError in Java benchmarks after local build cache change #40775
Description
Describe the bug, including details regarding any error messages, version, and platform.
As part of the Arrow benchmarking suite, we have been running the Java microbenchmarks with Archery on every Arrow commit. They are run on a bare-metal machine with the characteristics listed in the "hardware" section of this Conbench page.
Note that the benchmarks run this Arrow CI script to build Java Arrow, with the environment variables in this file used for building and running benchmarks.
Starting with this PR's commit:
the Java benchmarks have started to time out after the default timeout of 6 hours. They used to take less than an hour. Before timing out, the following traceback is printed:
Exception in thread "CommonsExecStreamPumper-pool-9-thread-2" java.lang.OutOfMemoryError: Java heap space
at java.lang.StringCoding.decode(StringCoding.java:215)
at java.lang.String.<init>(String.java:463)
at java.lang.String.<init>(String.java:515)
at com.gradle.d.a.a.a(SourceFile:83)
at com.gradle.d.a.a.flush(SourceFile:78)
at com.gradle.d.a.a.write(SourceFile:72)
at java.io.PrintStream.write(PrintStream.java:480)
at com.gradle.d.a.b.write(SourceFile:203)
at org.apache.commons.exec.StreamPumper.run(StreamPumper.java:112)
at java.lang.Thread.run(Thread.java:750)
I assume that the Java memory configs need to be changed, but I don't have any experience with Java. This could be an easy fix by changing the environment variable file linked above, and using @ursabot please benchmark lang=Java to see if the change fixed anything.
Note that the microbenchmark results will not be tracked until this is fixed.
Component(s)
Benchmarking, Java