Graal: [native-image] Cannot generate a native image from a Clojure JAR: command does not end

Created on 14 May 2018  路  12Comments  路  Source: oracle/graal

I cannot generate a native image from a Clojure JAR file, with GraalVM Community Edition 1.0 RC1.
I did:

git clone https://github.com/nicokosi/hubstats
git checkout graalvm
lein uberjar
./experimental-build.sh

And got this error:

Step 4/15 : RUN native-image   -jar hubstats-0.1.0-SNAPSHOT-standalone.jar   -H:+ReportUnsupportedElementsAtRuntime   hubstats.core
 ---> Running in e7f911774bd4
Build on Server(pid: 11, port: 26681)*
   classlist:   3,159.26 ms
       (cap):   1,485.02 ms
       setup:   2,563.80 ms
    analysis:  10,109.06 ms
fatal error: java.lang.NullPointerException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:598)
    at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1005)
    at com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:398)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:240)
    at com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:337)
    at com.oracle.svm.hosted.server.NativeImageBuildServer.executeCompilation(NativeImageBuildServer.java:378)
    at com.oracle.svm.hosted.server.NativeImageBuildServer.lambda$processCommand$8(NativeImageBuildServer.java:315)
    at com.oracle.svm.hosted.server.NativeImageBuildServer.withJVMContext(NativeImageBuildServer.java:396)
    at com.oracle.svm.hosted.server.NativeImageBuildServer.processCommand(NativeImageBuildServer.java:312)
    at com.oracle.svm.hosted.server.NativeImageBuildServer.processRequest(NativeImageBuildServer.java:256)
    at com.oracle.svm.hosted.server.NativeImageBuildServer.lambda$serve$7(NativeImageBuildServer.java:216)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NullPointerException
    at com.oracle.graal.pointsto.ObjectScanner.scanField(ObjectScanner.java:113)
    at com.oracle.graal.pointsto.ObjectScanner.doScan(ObjectScanner.java:263)
    at com.oracle.graal.pointsto.ObjectScanner.finish(ObjectScanner.java:307)
    at com.oracle.graal.pointsto.ObjectScanner.scanBootImageHeapRoots(ObjectScanner.java:78)
    at com.oracle.graal.pointsto.ObjectScanner.scanBootImageHeapRoots(ObjectScanner.java:60)
    at com.oracle.graal.pointsto.BigBang.checkObjectGraph(BigBang.java:581)
    at com.oracle.graal.pointsto.BigBang.finish(BigBang.java:552)
    at com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:653)
    at com.oracle.svm.hosted.NativeImageGenerator.lambda$run$0(NativeImageGenerator.java:381)
    at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1386)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Error: Processing image build request failed

My setup:

  • macOS
  • Leiningen is installed (https://leiningen.org/#install) with a Hotspot JVM:
$> lein -version
Leiningen 2.8.1 on Java 1.8.0_172 Java HotSpot(TM) 64-Bit Server VM

Since this issue seems similar to https://github.com/oracle/graal/issues/385, I also tried to build from source. I cloned https://github.com/oracle/graal (commit 5dc95abd42795d871c937d5be205ef01ae7300ff) then:

cd substratevm
JAVA_HOME=~/Downloads/labsjdk1.8.0_161-jvmci-0.42/Contents/Home ../../mx/mx build
cd work/hubstats
JAVA_HOME=~/Downloads/labsjdk1.8.0_161-jvmci-0.42/Contents/Home ../graal/substratevm/native-image -jar target/hubstats-0.1.0-SNAPSHOT-standalone.jar hubstats.core

But native-image now hangs:

Build on Server(pid: 18933, port: 55103)*
   classlist:   2,744.32 ms
       (cap):   1,531.16 ms
       setup:   2,401.40 ms       
native-image

All 12 comments

@nicokosi this seems to be the same issue as reported in #411 and trying to replicate it I get the same behavior as detailed in https://github.com/oracle/graal/issues/411#issuecomment-389356526.

Thanks for your response. 馃憤

When running from source (commit 5dc95abd42795d871c937d5be205ef01ae7300ff) on my machine (macOS), native-image visibly takes half of my machine's memory (7Go on 16Go) and all the CPU cores:
screen shot 2018-05-16 at 06 37 16

I see the same issue (NPE) using this example project:
https://github.com/Jotschi/orientdb-graalvm-native-image-test

Is there a way to somehow print the object that is being scanned? I would like to know which class is causing the trouble.

@Jotschi the NPE was fixed. You can build from source or wait for the next GraalVM release.

@cstancu I just tried the master. I can no longer observe the NPE. Thanks

Any reason not to close this?

@concavelenz unfortunately this is not fixed yet; the same fix as for #428 doesn't apply here. Just like with #411 this takes a lot of time and memory, but it eventually finishes compilation (and reports unsupported features).

I just gave another try with the last source code:

$> cd graal/substratevm
$> git show
commit fc92c740a4165c7cb504f2483381d0570d759c1d (HEAD -> master, origin/master, origin/HEAD)
Merge: d49ac3873c1 676869deb62
Author: Yudi Zheng <[email protected]>
Date:   Mon Jul 2 11:47:51 2018 -0700

    [GR-10333] Fix encoding in AMD64Assembler.

    PullRequest: graal/1772
$> JAVA_HOME=~/Downloads/labsjdk1.8.0_161-jvmci-0.42/Contents/Home ../../mx/mx build

native-image still hangs forever:

$> cd work/hubstats
$> JAVA_HOME=~/Downloads/labsjdk1.8.0_172-jvmci-0.44/Contents/Home ../graal/substratevm/native-image -jar target/hubstats-0.1.0-SNAPSHOT-standalone.jar hubstats.core
Build on Server(pid: 3728, port: 50105)*
   classlist:   3,022.43 ms
       (cap):   3,083.75 ms
       setup:   4,321.51 ms

PS: I update issue's title accordingly (stack trace with NullPointerException can no longer be observed).

I cannot replicate the reported issue anymore. Using the following commands

$ lein uberjar
$ native-image --report-unsupported-elements-at-runtime -jar target/hubstats-0.1.0-SNAPSHOT-standalone.jar

the analysis phase ends after ~2 minutes with -Xmx14g. (If you run it in Docker you may need to set its memory limit accordingly). However, the image building process reports unsupported features after that:

Error: unsupported features in 4 methods
Detailed message:
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image run time. The object was probably created by a class initializer and is reachable from a static field. By default, all class initialization is done during native image building.You can manually delay class initialization to image run time by using the option --delay-class-initialization-to-runtime=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace:  object clojure.lang.Var
    object java.lang.Object[]
    object clojure.lang.PersistentHashMap$BitmapIndexedNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object java.util.concurrent.ConcurrentHashMap$Node
    object java.util.concurrent.ConcurrentHashMap$Node
    object java.util.concurrent.ConcurrentHashMap$Node[]
    object java.util.concurrent.ConcurrentHashMap
    method clojure.lang.Namespace.find(Symbol)
Call path from entry point to clojure.lang.Namespace.find(Symbol): 
    at clojure.lang.Namespace.find(Namespace.java:188)
    at clojure.core$find_ns.invokeStatic(core.clj:4096)
    at clojure.core$find_ns.invoke(core.clj:4092)
    at clojure.lang.AFn.applyToHelper(AFn.java:154)
    at clojure.lang.Keyword.applyTo(Keyword.java:254)
    at hubstats.core.main(Unknown Source)
    at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:152)
    at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0)
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image run time. The object was probably created by a class initializer and is reachable from a static field. By default, all class initialization is done during native image building.You can manually delay class initialization to image run time by using the option --delay-class-initialization-to-runtime=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace:  object java.util.concurrent.locks.AbstractQueuedSynchronizer$Node
    object java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
    object java.util.concurrent.DelayQueue
    object clojure.lang.Var
    method clojure.core.async.impl.timers$timeout_worker.invokeStatic()
Call path from entry point to clojure.core.async.impl.timers$timeout_worker.invokeStatic(): 
    at clojure.core.async.impl.timers$timeout_worker.invokeStatic(timers.clj:56)
    at clojure.core.async.impl.timers$timeout_worker.invoke(timers.clj:56)
    at clojure.lang.AFn.run(AFn.java:22)
    at java.lang.Thread.run(Thread.java:748)
    at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:473)
    at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
    at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: No instances are allowed in the image heap for a class that is initialized or reinitialized at image runtime: javax.net.ssl.SSLContext
Trace:  object java.lang.Object[]
    object clojure.lang.PersistentArrayMap
    object clojure.lang.Var
    object java.lang.Object[]
    object clojure.lang.PersistentHashMap$BitmapIndexedNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object java.lang.Object[]
    object clojure.lang.PersistentArrayMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object clojure.lang.Var
    method hubstats.github$github_api_events.invokeStatic(Object, Object, Object, Object)
Call path from entry point to hubstats.github$github_api_events.invokeStatic(Object, Object, Object, Object): 
    at hubstats.github$github_api_events.invokeStatic(github.clj:11)
    at hubstats.github$github_api_events.invoke(github.clj:11)
    at clojure.lang.AFn.applyToHelper(AFn.java:165)
    at clojure.lang.Keyword.applyTo(Keyword.java:254)
    at hubstats.core.main(Unknown Source)
    at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:152)
    at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0)
Error: No instances are allowed in the image heap for a class that is initialized or reinitialized at image runtime: sun.security.provider.NativePRNG
Trace:  object java.security.SecureRandom
    object sun.security.ssl.SSLContextImpl$TLSContext
    object sun.security.ssl.SSLSocketFactoryImpl
    object org.apache.http.conn.ssl.SSLConnectionSocketFactory
    object clojure.lang.Var
    object java.lang.Object[]
    object clojure.lang.PersistentHashMap$BitmapIndexedNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object java.lang.Object[]
    object clojure.lang.PersistentArrayMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object clojure.lang.Var
    method clj_http.client$redirects_response.invokeStatic(Object, Object, Object)
Call path from entry point to clj_http.client$redirects_response.invokeStatic(Object, Object, Object): 
    at clj_http.client$redirects_response.invokeStatic(client.clj:300)
    at clj_http.client$redirects_response.invoke(client.clj:300)
    at clojure.lang.AFn.applyToHelper(AFn.java:160)
    at clojure.lang.Keyword.applyTo(Keyword.java:254)
    at hubstats.core.main(Unknown Source)
    at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:152)
    at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0)

Fixing these issues requires custom configuration. This article should help with understanding the error messages.

Thank you @cstancu!
I don't understand why I don't reproduce the same issue. I gave a try on my macOS laptop:

native-image --version && time native-image -J-Xmx14g --report-unsupported-elements-at-runtime -jar target/hubstats-0.1.0-SNAPSHOT-standalone.jar
GraalVM Version 1.0.0-rc13
Build on Server(pid: 13209, port: 52569)*
[hubstats-0.1.0-SNAPSHOT-standalone:13209]    classlist:   3,640.85 ms
[hubstats-0.1.0-SNAPSHOT-standalone:13209]        (cap):   1,225.80 ms
[hubstats-0.1.0-SNAPSHOT-standalone:13209]        setup:   7,377.68 ms
[hubstats-0.1.0-SNAPSHOT-standalone:13209]     analysis: 1,745,567.13 ms
8 fatal errors detected:
Fatal error: java.lang.OutOfMemoryError: Java heap space
    at com.oracle.graal.pointsto.typestate.TypeState.doUnion2(TypeState.java:868)
    at com.oracle.graal.pointsto.typestate.TypeState.allocationInsensitiveSpeculativeUnion1(TypeState.java:723)

Maybe that my Xmx parameter is incorrect or my machine misses memory. :question: I did not try building graalvm from code.

For information, the native-image process took around 8 Go of memory (on 16 Go), as seen via the htop command:
htop

PS:

  • the pid does not match because I re-run the command
  • I have the same issue on Linux.

That's probably because you don't have enough available memory. On my machine, it tops up at about 12g. If it tops up at 8g that's likely the entire available memory. Another thing that you should be aware off is that the compilation server (which is on by default) uses 80% of the physical memory, and -J-Xmx14g is ignored. You can disable the compilations server with --no-server and you can use --verbose to see the actuall -Xmx value passed to the java command.

Thank you very much @cstancu for your patience and for these information. 馃憤
I am now able to report unsupported features on GraalVM Community Edition 1.0 RC14 via the following command
native-image --no-server --verbose -J-Xmx14g --report-unsupported-elements-at-runtime -jar target/hubstats-0.1.0-SNAPSHOT-standalone.jar which fails after 2 minutes. 馃挜
As a consequence, I close this issue. 馃帀

For information, here is the output:

Error: unsupported features in 5 methods
Detailed message:
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image run time. The object was probably created by a class initializer and is reachable from a static field. By default, all class initialization is done during native image building.You can manually delay class initialization to image run time by using the option --delay-class-initialization-to-runtime=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace:  object clojure.lang.Var
    object java.lang.Object[]
    object clojure.lang.PersistentHashMap$BitmapIndexedNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object java.lang.Object[]
    object clojure.lang.PersistentHashMap$BitmapIndexedNode
    object clojure.lang.PersistentHashMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object clojure.lang.Var
    object java.lang.Object[]
    object clojure.lang.PersistentHashMap$BitmapIndexedNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object clojure.lang.Var
    method hubstats.core$_main$fn__11218$state_machine__8285__auto____11225$fn__11227.invoke()
Call path from entry point to hubstats.core$_main$fn__11218$state_machine__8285__auto____11225$fn__11227.invoke():
    at hubstats.core$_main$fn__11218$state_machine__8285__auto____11225$fn__11227.invoke(core.clj:60)
    at clojure.lang.AFn.run(AFn.java:22)
    at java.lang.Thread.run(Thread.java:748)
    at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:473)
    at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
    at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Error: Detected a started Thread in the image heap. Threads running in the image generator are no longer running at image run time. The object was probably created by a class initializer and is reachable from a static field. By default, all class initialization is done during native image building.You can manually delay class initialization to image run time by using the option --delay-class-initialization-to-runtime=<class-name>. Or you can write your own initialization methods and call them explicitly from your main entry point.
Trace:  object java.util.concurrent.locks.AbstractQueuedSynchronizer$Node
    object java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
    object java.util.concurrent.DelayQueue
    object clojure.lang.Var
    method clojure.core.async.impl.timers$timeout.invokeStatic(long)
Call path from entry point to clojure.core.async.impl.timers$timeout.invokeStatic(long):
    at clojure.core.async.impl.timers$timeout.invokeStatic(timers.clj:43)
    at clojure.core.async.impl.timers$timeout.invoke(timers.clj:43)
    at clojure.tools.reader.default_data_readers$fn__2748$fn__2749.invoke(default_data_readers.clj:110)
    at clj_http.headers.HeaderMap.applyTo(headers.clj:105)
    at hubstats.core.main(Unknown Source)
    at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:152)
    at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0)
Error: No instances are allowed in the image heap for a class that is initialized or reinitialized at image runtime: javax.net.ssl.SSLContext
Trace:  object java.lang.Object[]
    object clojure.lang.PersistentArrayMap
    object clojure.lang.Var
    object java.lang.Object[]
    object clojure.lang.PersistentHashMap$BitmapIndexedNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object java.lang.Object[]
    object clojure.lang.PersistentArrayMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object clojure.lang.Var
    method clj_http.client$fn__3426.invokeStatic(Object)
Call path from entry point to clj_http.client$fn__3426.invokeStatic(Object):
    at clj_http.client$fn__3426.invokeStatic(client.clj:921)
    at clj_http.client$fn__3426.invoke(client.clj:921)
    at clojure.tools.reader.default_data_readers$fn__2748$fn__2749.invoke(default_data_readers.clj:110)
    at clj_http.headers.HeaderMap.applyTo(headers.clj:105)
    at hubstats.core.main(Unknown Source)
    at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:152)
    at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0)
Error: No instances are allowed in the image heap for a class that is initialized or reinitialized at image runtime: sun.security.provider.NativePRNG
Trace:  object java.security.SecureRandom
    object sun.security.ssl.SSLContextImpl$TLSContext
    object sun.security.ssl.SSLSocketFactoryImpl
    object org.apache.http.conn.ssl.SSLConnectionSocketFactory
    object clojure.lang.Var
    object java.lang.Object[]
    object clojure.lang.PersistentHashMap$BitmapIndexedNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap$INode[]
    object clojure.lang.PersistentHashMap$ArrayNode
    object clojure.lang.PersistentHashMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object java.lang.Object[]
    object clojure.lang.PersistentArrayMap
    object java.util.concurrent.atomic.AtomicReference
    object clojure.lang.Namespace
    object clojure.lang.Var
    method clj_http.client$coerce_transit_body.invokeStatic(Object, Object, Object, ISeq)
Call path from entry point to clj_http.client$coerce_transit_body.invokeStatic(Object, Object, Object, ISeq):
    at clj_http.client$coerce_transit_body.invokeStatic(client.clj:464)
    at clj_http.client$coerce_transit_body.doInvoke(client.clj:464)
    at clojure.lang.RestFn.applyTo(RestFn.java:146)
    at hubstats.core.main(Unknown Source)
    at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:152)
    at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0)
Error: unbalanced monitors: mismatch at monitorexit, 96|LoadField#lockee__5436__auto__ != 3|LoadField#lockee__5436__auto__
Call path from entry point to clojure.spec.gen.alpha$dynaload$fn__2628.invoke():
    at clojure.spec.gen.alpha$dynaload$fn__2628.invoke(alpha.clj:21)
    at clojure.lang.AFn.run(AFn.java:22)
    at java.lang.Thread.run(Thread.java:748)
    at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:473)
    at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
    at com.oracle.svm.core.code.IsolateEnterStub.PosixJavaThreads_pthreadStartRoutine_e1f4a8c0039f8337338252cd8734f63a79b5e3df(generated:0)
Original exception that caused the problem: org.graalvm.compiler.code.SourceStackTraceBailoutException$1: unbalanced monitors: mismatch at monitorexit, 96|LoadField#lockee__5436__auto__ != 3|LoadField#lockee__5436__auto__
    at clojure.spec.gen.alpha$dynaload$fn__2628.invoke(alpha.clj:22)
Caused by: org.graalvm.compiler.core.common.PermanentBailoutException: unbalanced monitors: mismatch at monitorexit, 96|LoadField#lockee__5436__auto__ != 3|LoadField#lockee__5436__auto__
    at org.graalvm.compiler.java.BytecodeParser.bailout(BytecodeParser.java:3673)
    at org.graalvm.compiler.java.BytecodeParser.genMonitorExit(BytecodeParser.java:2654)
    at org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5031)
    at org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3184)
    at org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:2993)
    at org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:891)
    at org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:785)
    at org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:95)
    at org.graalvm.compiler.phases.Phase.run(Phase.java:49)
    at org.graalvm.compiler.phases.BasePhase.apply(BasePhase.java:197)
    at org.graalvm.compiler.phases.Phase.apply(Phase.java:42)
    at org.graalvm.compiler.phases.Phase.apply(Phase.java:38)
    at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.parse(MethodTypeFlowBuilder.java:213)
    at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:332)
    at com.oracle.graal.pointsto.flow.MethodTypeFlow.doParse(MethodTypeFlow.java:310)
    at com.oracle.graal.pointsto.flow.MethodTypeFlow.ensureParsed(MethodTypeFlow.java:300)
    at com.oracle.graal.pointsto.flow.MethodTypeFlow.addContext(MethodTypeFlow.java:107)
    at com.oracle.graal.pointsto.flow.SpecialInvokeTypeFlow.onObservedUpdate(InvokeTypeFlow.java:421)
    at com.oracle.graal.pointsto.flow.TypeFlow.notifyObservers(TypeFlow.java:352)
    at com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:394)
    at com.oracle.graal.pointsto.flow.SourceTypeFlowBase.update(SourceTypeFlowBase.java:121)
    at com.oracle.graal.pointsto.BigBang$2.run(BigBang.java:508)
    at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:169)
    at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1402)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)

Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
Error: Image building with exit status 1
Was this page helpful?
0 / 5 - 0 ratings