Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8303076

StackOverflowError while running renaissance with C1 only

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P4 P4
    • tbd
    • 18, 19, 20
    • hotspot
    • Reproduces consistently on Linux or Mac using JDK 20.0.1+4

    • generic
    • generic

      All Renaissance benchmarks can run fine on JDK17 with C1 only by passing -XX:TieredStopAtLevel=1.

      On JDK20, this leads to a StackOverflowError on several Spark benchmarks from Renaissance (like als or movie-lens).

      Reproduces consistently on Linux or Mac using JDK 20.0.1+4

      NOTE: JDK21 cannot be used since Apache Spark (used by this benchmark) isn't yet compatible with the latest JDK: https://github.com/renaissance-benchmarks/renaissance/issues/370

      Renaissance benchmark suite: https://renaissance.dev/download

      Command line:

      $JAVA_HOME/bin/java -XX:TieredStopAtLevel=1 -jar renaissance-0.14.1.jar -r 30 als

      Output:

      Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
      NOTE: 'als' benchmark uses Spark local executor with 12 (out of 12) threads.
      ====== als (apache-spark) [default], iteration 0 started ======
      GC before operation: completed in 33.258 ms, heap usage 179.102 MB -> 38.409 MB.
      23/02/22 14:54:31 WARN GarbageCollectionMetrics: To enable non-built-in garbage collector(s) List(G1 Concurrent GC), users should configure it(them) to spark.eventLog.gcMetrics.youngGenerationGarbageCollectors or spark.eventLog.gcMetrics.oldGenerationGarbageCollectors
      23/02/22 14:54:50 ERROR Executor: Exception in task 8.0 in stage 30.0 (TID 247)
      java.lang.StackOverflowError
      at org.apache.spark.util.ByteBufferInputStream.read(ByteBufferInputStream.scala:49)
      at java.base/java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2911)
      at java.base/java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2927)
      at java.base/java.io.ObjectInputStream$BlockDataInputStream.readInt(ObjectInputStream.java:3448)
      at java.base/java.io.ObjectInputStream.readHandle(ObjectInputStream.java:1866)
      at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1927)
      at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2248)
      at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1760)
      at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2614)
      at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2465)
      at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2280)
      at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1760)
      at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:538)
      at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:496)
      at scala.collection.generic.DefaultSerializationProxy.readObject(DefaultSerializationProxy.scala:58)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
      at java.base/java.lang.reflect.Method.invoke(Method.java:578)
      at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1100)
      at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2440)
      at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2280)
      at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1760)
      at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2614)
      at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2465)
      at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2280)
      at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1760)
      at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2614)
      at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2465)
      at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2280)
      at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1760)
      at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:538)
      at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:496)
      at scala.collection.generic.DefaultSerializationProxy.readObject(DefaultSerializationProxy.scala:58)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
      at java.base/java.lang.reflect.Method.invoke(Method.java:578)
      at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1100)
      at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2440)
      at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2280)
      at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1760)
      at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2614)
      at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2465)
      at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2280)
      at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1760)
      at java.base/java.io.ObjectInputStream$FieldValues.<init>(ObjectInputStream.java:2614)
      at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2465)
      at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2280)
      at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1760)
      at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:538)
      at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:496)
      at scala.collection.generic.DefaultSerializationProxy.readObject(DefaultSerializationProxy.scala:58)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
      at java.base/java.lang.reflect.Method.invoke(Method.java:578)
      ...

            thartmann Tobias Hartmann
            ffarquet Francois Farquet
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: