Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
nicokosi opened this issue May 14, 2018 · 12 comments
Assignees

Comments

@nicokosi
Copy link

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:

$> 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 #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       
@cstancu cstancu self-assigned this May 14, 2018
@nicokosi nicokosi changed the title native-image from a Clojure JAR fails with a NPE in ObjectScanner.scanField [native-image] Cannot generate a native image from a Clojure JAR: NPE in ObjectScanner.scanField May 15, 2018
@cstancu
Copy link
Member

cstancu commented May 16, 2018

@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 #411 (comment).

@nicokosi
Copy link
Author

nicokosi commented May 16, 2018

Thanks for your response. 👍

When running from source (commit 5dc95ab) 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

@Jotschi
Copy link

Jotschi commented May 31, 2018

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.

@cstancu
Copy link
Member

cstancu commented May 31, 2018

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

@Jotschi
Copy link

Jotschi commented May 31, 2018

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

@concavelenz
Copy link

Any reason not to close this?

@cstancu
Copy link
Member

cstancu commented Jun 4, 2018

@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).

@nicokosi
Copy link
Author

nicokosi commented Jul 3, 2018

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).

@nicokosi nicokosi changed the title [native-image] Cannot generate a native image from a Clojure JAR: NPE in ObjectScanner.scanField [native-image] Cannot generate a native image from a Clojure JAR: command does not end Jul 3, 2018
@cstancu
Copy link
Member

cstancu commented Mar 14, 2019

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.

@nicokosi
Copy link
Author

nicokosi commented Mar 17, 2019

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. ❓ 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.

@cstancu
Copy link
Member

cstancu commented Mar 18, 2019

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.

@nicokosi
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants