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

Build failure: unsupported features; unbalanced monitors #15

Closed
aviflax opened this issue Oct 17, 2019 · 14 comments
Closed

Build failure: unsupported features; unbalanced monitors #15

aviflax opened this issue Oct 17, 2019 · 14 comments
Assignees
Labels
question Further information is requested

Comments

@aviflax
Copy link

aviflax commented Oct 17, 2019

👋 hi @taylorwood, I hope you don’t mind me dropping another general “I have no idea what I’m doing” issue on you. Given that it’s been almost exactly a year since my last attempt (#2) I wanted to try again to create a native image of my project. I didn’t get very far and I don’t really understand the error output, so I’m hoping you might have a few minutes to point me in the right direction.

I’m running MacOS 10.14.5 and I’m using GraalVM CE 19.2.1 and native-image 19.2.1.

Here’s the profile I added to my deps.edn:

:native-image {:extra-deps {taylorwood/clj.native-image {:git/url "https://github.com/taylorwood/clj.native-image"
                                                         :sha "b3823a48be75122b9671c86ce5353a85589ef15f"}}
               :jvm-opts ["-Dclojure.compiler.direct-linking=true"]
               :main-opts ["-m clj.native-image fc4.io.cli.main"
                           "--initialize-at-build-time"
                           "--no-fallback"
                           "--allow-incomplete-classpath"
                           "--report-unsupported-elements-at-runtime"
                           "-H:Name=target/fc4"]}

and here’s the output when I run clojure -A:native-image:

output
~/dev/fc4-framework/tool $ clojure -A:native-image
Compiling fc4.io.cli.main
Reflection warning, clj_chrome_devtools/automation.clj:61:5 - reference to field close on java.lang.Object can't be resolved.
Compiling fc4.files
Compiling fc4.image-utils
Compiling fc4.integrations.structurizr.express.chromium-renderer
Compiling fc4.integrations.structurizr.express.export
Compiling fc4.integrations.structurizr.express.format
Compiling fc4.integrations.structurizr.express.snap
Compiling fc4.integrations.structurizr.express.spec
Compiling fc4.integrations.structurizr.express.yaml
Compiling fc4.io.cli.main
Compiling fc4.io.cli.util
Compiling fc4.io.dsl
Compiling fc4.io.render
Compiling fc4.io.util
Compiling fc4.io.watch
Compiling fc4.io.yaml
Compiling fc4.model
Compiling fc4.rendering
Compiling fc4.spec
Compiling fc4.styles
Compiling fc4.util
Compiling fc4.view
Compiling fc4.yaml
[target/fc4:64156]    classlist:  10,049.22 ms
[target/fc4:64156]        (cap):   1,399.70 ms
[target/fc4:64156]        setup:   2,605.29 ms
[target/fc4:64156]     analysis: 105,538.54 ms
Error: Unsupported features in 8 methods
Detailed message:
Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call: java.lang.invoke.MethodHandle.bindTo(Object)
Trace: 
	at parsing java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor(MethodHandleImpl.java:221)
Call path from entry point to java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor(MethodHandle, MethodType, boolean, boolean): 
	at java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor(MethodHandleImpl.java:207)
	at java.lang.invoke.MethodHandleImpl.makePairwiseConvert(MethodHandleImpl.java:194)
	at java.lang.invoke.MethodHandleImpl.makePairwiseConvert(MethodHandleImpl.java:380)
	at java.lang.invoke.MethodHandle.asTypeUncached(MethodHandle.java:776)
	at java.lang.invoke.MethodHandle.asType(MethodHandle.java:761)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at com.oracle.svm.reflect.MethodHandle_invokeWithArguments_9dda848d0201e4e26c7b3711f56411a6605b9b6f_29.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call: java.lang.invoke.MethodHandleImpl$BindCaller.prepareForInvoker(MethodHandle)
Trace: 
	at parsing java.lang.invoke.MethodHandleImpl$BindCaller.makeInjectedInvoker(MethodHandleImpl.java:1166)
Call path from entry point to java.lang.invoke.MethodHandleImpl$BindCaller.makeInjectedInvoker(Class): 
	at java.lang.invoke.MethodHandleImpl$BindCaller.makeInjectedInvoker(MethodHandleImpl.java:1141)
	at java.lang.invoke.MethodHandleImpl$BindCaller.access$300(MethodHandleImpl.java:1122)
	at java.lang.invoke.MethodHandleImpl$BindCaller$1.computeValue(MethodHandleImpl.java:1175)
	at java.lang.invoke.MethodHandleImpl$BindCaller$1.computeValue(MethodHandleImpl.java:1173)
	at com.oracle.svm.core.jdk.Target_java_lang_ClassValue.get(JavaLangSubstitutions.java:514)
	at java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor(MethodHandleImpl.java:76)
	at java.lang.invoke.MethodHandles.arrayElementGetter(MethodHandles.java:1825)
	at java.lang.invoke.LambdaFormEditor.spreadArgumentsForm(LambdaFormEditor.java:550)
	at java.lang.invoke.MethodHandle.asSpreader(MethodHandle.java:874)
	at java.lang.invoke.Invokers.spreadInvoker(Invokers.java:158)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at com.oracle.svm.reflect.MethodHandle_invokeWithArguments_9dda848d0201e4e26c7b3711f56411a6605b9b6f_29.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call: java.lang.invoke.MethodHandleImpl.buildVarargsArray(MethodHandle, MethodHandle, int)
Trace: 
	at parsing java.lang.invoke.MethodHandleImpl.varargsArray(MethodHandleImpl.java:1634)
Call path from entry point to java.lang.invoke.MethodHandleImpl.varargsArray(Class, int): 
	at java.lang.invoke.MethodHandleImpl.varargsArray(MethodHandleImpl.java:1611)
	at java.lang.invoke.MethodHandleImpl$IntrinsicMethodHandle.asCollector(MethodHandleImpl.java:1363)
	at java.lang.invoke.MethodHandleImpl$AsVarargsCollector.asTypeUncached(MethodHandleImpl.java:502)
	at java.lang.invoke.MethodHandle.asType(MethodHandle.java:761)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at com.oracle.svm.reflect.MethodHandle_invokeWithArguments_9dda848d0201e4e26c7b3711f56411a6605b9b6f_29.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: No instances of javax.net.ssl.SSLContext are allowed in the image heap as this class should be initialized at image runtime. To see how this object got instantiated use -H:+TraceClassInitialization.
Trace: 
	at parsing org.httpkit.client.HttpClient.exec(HttpClient.java:347)
Call path from entry point to org.httpkit.client.HttpClient.exec(String, RequestConfig, SSLEngine, IRespListener): 
	at org.httpkit.client.HttpClient.exec(HttpClient.java:269)
	at org.httpkit.client$request.invokeStatic(client.clj:258)
	at org.httpkit.client$request.doInvoke(client.clj:152)
	at clojure.lang.RestFn.applyTo(RestFn.java:139)
	at fc4.io.cli.main.main(Unknown Source)
	at com.oracle.svm.core.JavaMainWrapper.runCore(JavaMainWrapper.java:151)
	at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:186)
	at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0)
Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: No instances of javax.net.ssl.SSLContext are allowed in the image heap as this class should be initialized at image runtime. To see how this object got instantiated use -H:+TraceClassInitialization.
Trace: 
	at parsing org.httpkit.client.SslContextFactory.trustAnybody(SslContextFactory.java:36)
Call path from entry point to org.httpkit.client.SslContextFactory.trustAnybody(): 
	at org.httpkit.client.SslContextFactory.trustAnybody(SslContextFactory.java:36)
	at org.httpkit.client$coerce_req.invokeStatic(client.clj:68)
	at org.httpkit.client$coerce_req.invoke(client.clj:59)
	at instaparse.auto_flatten_seq.FlattenOnDemandVector.applyTo(auto_flatten_seq.clj:270)
	at fc4.io.cli.main.main(Unknown Source)
	at com.oracle.svm.core.JavaMainWrapper.runCore(JavaMainWrapper.java:151)
	at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:186)
	at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0)
Error: type is not available in this platform: com.oracle.svm.hosted.NativeImageGenerator
Trace: 	object java.lang.Class[]
	object java.lang.invoke.MethodType
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry
	object java.util.concurrent.ConcurrentHashMap$Node
	object java.util.concurrent.ConcurrentHashMap$Node[]
	object java.util.concurrent.ConcurrentHashMap
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet
	method java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean)
Call path from entry point to java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean): 
	at java.lang.invoke.MethodType.makeImpl(MethodType.java:301)
	at java.lang.invoke.MethodType.methodType(MethodType.java:206)
	at com.oracle.svm.reflect.MethodType_methodType_9d13644056a712f9cdb73fb2ef8b26f65294abe9_35.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: type is not available in this platform: com.oracle.svm.hosted.lambda.LambdaSubstitutionType
Trace: 	object java.lang.invoke.MethodType
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry
	object java.util.concurrent.ConcurrentHashMap$Node
	object java.util.concurrent.ConcurrentHashMap$Node[]
	object java.util.concurrent.ConcurrentHashMap
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet
	method java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean)
Call path from entry point to java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean): 
	at java.lang.invoke.MethodType.makeImpl(MethodType.java:301)
	at java.lang.invoke.MethodType.methodType(MethodType.java:206)
	at com.oracle.svm.reflect.MethodType_methodType_9d13644056a712f9cdb73fb2ef8b26f65294abe9_35.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: 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:460)
	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:3761)
	at org.graalvm.compiler.java.BytecodeParser.genMonitorExit(BytecodeParser.java:2703)
	at org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5136)
	at org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3267)
	at org.graalvm.compiler.java.BytecodeParser.processBlock(BytecodeParser.java:3074)
	at org.graalvm.compiler.java.BytecodeParser.build(BytecodeParser.java:976)
	at org.graalvm.compiler.java.BytecodeParser.buildRootMethod(BytecodeParser.java:870)
	at org.graalvm.compiler.java.GraphBuilderPhase$Instance.run(GraphBuilderPhase.java:84)
	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:221)
	at com.oracle.graal.pointsto.flow.MethodTypeFlowBuilder.apply(MethodTypeFlowBuilder.java:340)
	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:343)
	at com.oracle.graal.pointsto.flow.TypeFlow.update(TypeFlow.java:385)
	at com.oracle.graal.pointsto.flow.SourceTypeFlowBase.update(SourceTypeFlowBase.java:121)
	at com.oracle.graal.pointsto.BigBang$2.run(BigBang.java:510)
	at com.oracle.graal.pointsto.util.CompletionExecutor.lambda$execute$0(CompletionExecutor.java:171)
	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 build request failed with exit status 1

My guess is that you could walk me through fixing the “unsupported features” but that last error, the “unbalanced monitors” error — that looks familiar, IIRC that’s related to some incompatibility between GraalVM/native-image and certain code paths in the Clojure runtime… which might be non-work-around-able? If that’s the case, if we’re stuck, then there’s no need to resolve the other errors… but I’d appreciate whatever pointers you’d care to share!

If it helps, feel free to take a look at my branch of my project with that profile added.

(Also, if you’ll be at the Conj next month in Raleigh, I’ll be there too and I’d love to catch up!)

@taylorwood
Copy link
Owner

Hey @aviflax thanks for dropping by!

The unbalanced monitor issue is due to locking macro. There's an open Clojure JIRA for this: https://dev.clojure.org/jira/browse/CLJ-1472 and there is a hacky workaround: taylorwood/clojurl@12b96b5

I should have some time soon to check out your project and see if I can get it building. Looks like maybe some stuff related to reflection?

I can't make Clojure Conj this year but hope to soon!

@taylorwood taylorwood added the question Further information is requested label Oct 17, 2019
@taylorwood taylorwood self-assigned this Oct 17, 2019
@aviflax
Copy link
Author

aviflax commented Oct 18, 2019

Wow thanks @taylorwood for the super-rapid and super-helpful response! That hacky workaround looks pretty good actually! I’m a little more intimidated by the situation with libsunec.dylib that I learned of from the excellent Clojurl README — that looks dicey. 😅

Thank you!

@aviflax
Copy link
Author

aviflax commented Oct 25, 2019

Update:

I’ve implemented the hacky workaround from Clojurl to work around the issue with the locking macro, and that seems to have worked — thanks!

Now I’m getting Error: Unsupported features in 7 methods so that’s progress!

Verbose Output
~/dev/fc4-framework/tool $ clojure -A:native-image
Compiling fc4.io.cli.main
Reflection warning, clj_chrome_devtools/automation.clj:61:5 - reference to field close on java.lang.Object can't be resolved.
Compiling fc4.files
Compiling fc4.image-utils
Compiling fc4.integrations.structurizr.express.chromium-renderer
Compiling fc4.integrations.structurizr.express.export
Compiling fc4.integrations.structurizr.express.format
Compiling fc4.integrations.structurizr.express.snap
Compiling fc4.integrations.structurizr.express.spec
Compiling fc4.integrations.structurizr.express.yaml
Compiling fc4.io.cli.main
Compiling fc4.io.cli.util
Compiling fc4.io.dsl
Compiling fc4.io.render
Compiling fc4.io.util
Compiling fc4.io.watch
Compiling fc4.io.yaml
Compiling fc4.model
Compiling fc4.rendering
Compiling fc4.spec
Compiling fc4.styles
Compiling fc4.util
Compiling fc4.view
Compiling fc4.yaml
Warning: Invalid classpath entry: /Users/avi.flax/.m2/repository/net/incongru/watchservice/barbary-watchservice/1.0/jna-3.2.2.jar
Executing [
/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/bin/java \
-XX:+UnlockExperimentalVMOptions \
-XX:+EnableJVMCI \
-Dtruffle.TrustAllTruffleRuntimeProviders=true \
-Dtruffle.TruffleRuntime=com.oracle.truffle.api.impl.DefaultTruffleRuntime \
-Dgraalvm.ForcePolyglotInvalid=true \
-Dgraalvm.locatorDisabled=true \
-d64 \
-XX:-UseJVMCIClassLoader \
-XX:+UseJVMCINativeLibrary \
-Xss10m \
-Xms1g \
-Xmx13743895344 \
-Duser.country=US \
-Duser.language=en \
-Dorg.graalvm.version=19.2.1 \
-Dorg.graalvm.config=CE \
-Dcom.oracle.graalvm.isaot=true \
-Djvmci.class.path.append=/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/graal.jar \
-Xbootclasspath/a:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/boot/graaljs-scriptengine.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/boot/graal-sdk.jar \
-cp \
/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/llvm-wrapper.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/svm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/javacpp.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/objectfile.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/graal-llvm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/svm-llvm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/llvm-platform-specific.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/pointsto.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/graal.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/graal-management.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/jvmci-api.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/jvmci-hotspot.jar \
com.oracle.svm.hosted.NativeImageGeneratorRunner \
-imagecp \
/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/boot/graaljs-scriptengine.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/boot/graal-sdk.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/llvm-wrapper.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/svm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/javacpp.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/objectfile.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/graal-llvm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/svm-llvm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/llvm-platform-specific.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/pointsto.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/graal.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/graal-management.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/jvmci-api.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/jvmci-hotspot.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/library-support.jar:/Users/avi.flax/.m2/repository/net/incongru/watchservice/barbary-watchservice/1.0/jna-3.2.2.jar:/Users/avi.flax/dev/fc4-framework/tool/classes:/Users/avi.flax/dev/fc4-framework/tool/src/main:/Users/avi.flax/dev/fc4-framework/tool/src/java:/Users/avi.flax/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/avi.flax/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar:/Users/avi.flax/.m2/repository/joda-time/joda-time/2.10.3/joda-time-2.10.3.jar:/Users/avi.flax/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.analyzer/0.6.9/tools.analyzer-0.6.9.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/jetty-xml/9.4.19.v20190610/jetty-xml-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar:/Users/avi.flax/.m2/repository/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar:/Users/avi.flax/.m2/repository/org/springframework/build/aws-maven/5.0.0.RELEASE/aws-maven-5.0.0.RELEASE.jar:/Users/avi.flax/.m2/repository/org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44.jar:/Users/avi.flax/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.5.5/jackson-databind-2.5.5.jar:/Users/avi.flax/.gitlibs/libs/expound/expound/297e0812eb77ae3aa8f30e823f8bdbbb4650fa28/src:/Users/avi.flax/.m2/repository/org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.cli/0.4.2/tools.cli-0.4.2.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/jetty-http/9.4.19.v20190610/jetty-http-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/jetty-util/9.4.19.v20190610/jetty-util-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/com/taoensso/encore/2.91.0/encore-2.91.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-wagon/1.1.1/maven-resolver-transport-wagon-1.1.1.jar:/Users/avi.flax/.gitlibs/libs/clj-chrome-devtools/clj-chrome-devtools/a1b1b0903ae5ba56eaada8496ed3785a53d8cc06/src:/Users/avi.flax/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.analyzer.jvm/0.7.2/tools.analyzer.jvm-0.7.2.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.jsch/0.0.9/jsch.agentproxy.jsch-0.0.9.jar:/Users/avi.flax/.m2/repository/net/incongru/watchservice/barbary-watchservice/1.0/barbary-watchservice-1.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/wagon/wagon-provider-api/3.0.0/wagon-provider-api-3.0.0.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.sshagent/0.0.9/jsch.agentproxy.sshagent-0.0.9.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.macro/0.1.1/tools.macro-0.1.1.jar:/Users/avi.flax/.m2/repository/com/cognitect/anomalies/0.1.12/anomalies-0.1.12.jar:/Users/avi.flax/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.9.9/jackson-dataformat-cbor-2.9.9.jar:/Users/avi.flax/.m2/repository/com/gfredericks/test.chuck/0.2.10/test.chuck-0.2.10.jar:/Users/avi.flax/.m2/repository/org/flatland/useful/0.11.6/useful-0.11.6.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.1.1/maven-resolver-transport-http-1.1.1.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-model-builder/3.5.2/maven-model-builder-3.5.2.jar:/Users/avi.flax/.m2/repository/io/aviso/pretty/0.1.33/pretty-0.1.33.jar:/Users/avi.flax/.m2/repository/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.jar:/Users/avi.flax/.m2/repository/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.1.1/maven-resolver-transport-file-1.1.1.jar:/Users/avi.flax/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.plexus/0.3.3/org.eclipse.sisu.plexus-0.3.3.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/websocket/websocket-api/9.4.19.v20190610/websocket-api-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/flatland/ordered/1.5.7/ordered-1.5.7.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.usocket-jna/0.0.9/jsch.agentproxy.usocket-jna-0.0.9.jar:/Users/avi.flax/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-settings-builder/3.5.2/maven-settings-builder-3.5.2.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.namespace/0.3.1/tools.namespace-0.3.1.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/websocket/websocket-client/9.4.19.v20190610/websocket-client-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/eclipse/jgit/org.eclipse.jgit/4.10.0.201712302008-r/org.eclipse.jgit-4.10.0.201712302008-r.jar:/Users/avi.flax/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar:/Users/avi.flax/.m2/repository/clj-time/clj-time/0.10.0/clj-time-0.10.0.jar:/Users/avi.flax/.m2/repository/org/yaml/snakeyaml/1.24/snakeyaml-1.24.jar:/Users/avi.flax/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-settings/3.5.2/maven-settings-3.5.2.jar:/Users/avi.flax/.m2/repository/org/apache/httpcomponents/httpcore/4.4.8/httpcore-4.4.8.jar:/Users/avi.flax/.m2/repository/instaparse/instaparse/1.3.6/instaparse-1.3.6.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-core/3.5.2/maven-core-3.5.2.jar:/Users/avi.flax/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar:/Users/avi.flax/.m2/repository/stylefruits/gniazdo/1.1.2/gniazdo-1.1.2.jar:/Users/avi.flax/.m2/repository/com/taoensso/truss/1.5.0/truss-1.5.0.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.pageant/0.0.9/jsch.agentproxy.pageant-0.0.9.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-api/1.1.1/maven-resolver-api-1.1.1.jar:/Users/avi.flax/.m2/repository/software/amazon/ion/ion-java/1.0.2/ion-java-1.0.2.jar:/Users/avi.flax/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.5.0/jackson-annotations-2.5.0.jar:/Users/avi.flax/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-resolver-provider/3.5.2/maven-resolver-provider-3.5.2.jar:/Users/avi.flax/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar:/Users/avi.flax/.m2/repository/org/clojure/java.classpath/0.3.0/java.classpath-0.3.0.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.deps.alpha/0.7.549/tools.deps.alpha-0.7.549.jar:/Users/avi.flax/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/Users/avi.flax/.m2/repository/com/google/guava/guava/20.0/guava-20.0.jar:/Users/avi.flax/.m2/repository/org/clojure/data.xml/0.2.0-alpha5/data.xml-0.2.0-alpha5.jar:/Users/avi.flax/.m2/repository/com/amazonaws/jmespath-java/1.11.184/jmespath-java-1.11.184.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-spi/1.1.1/maven-resolver-spi-1.1.1.jar:/Users/avi.flax/.m2/repository/com/amazonaws/aws-java-sdk-core/1.11.184/aws-java-sdk-core-1.11.184.jar:/Users/avi.flax/.m2/repository/com/taoensso/timbre/4.10.0/timbre-4.10.0.jar:/Users/avi.flax/.m2/repository/org/codehaus/plexus/plexus-classworlds/2.5.2/plexus-classworlds-2.5.2.jar:/Users/avi.flax/.m2/repository/s3-wagon-private/s3-wagon-private/1.3.1/s3-wagon-private-1.3.1.jar:/Users/avi.flax/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar:/Users/avi.flax/.m2/repository/clj-commons/clj-yaml/0.7.0/clj-yaml-0.7.0.jar:/Users/avi.flax/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.24/plexus-interpolation-1.24.jar:/Users/avi.flax/.m2/repository/org/apache/httpcomponents/httpclient/4.5.4/httpclient-4.5.4.jar:/Users/avi.flax/.m2/repository/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar:/Users/avi.flax/.m2/repository/com/google/inject/guice/4.0/guice-4.0-no_aop.jar:/Users/avi.flax/.m2/repository/cheshire/cheshire/5.9.0/cheshire-5.9.0.jar:/Users/avi.flax/.m2/repository/tigris/tigris/0.1.1/tigris-0.1.1.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.connector-factory/0.0.9/jsch.agentproxy.connector-factory-0.0.9.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/jetty-client/9.4.19.v20190610/jetty-client-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/com/andrewmcveigh/cljs-time/0.5.1/cljs-time-0.5.1.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/jetty-io/9.4.19.v20190610/jetty-io-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.reader/1.3.2/tools.reader-1.3.2.jar:/Users/avi.flax/.m2/repository/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.gitlibs/0.2.64/tools.gitlibs-0.2.64.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.1.1/maven-resolver-connector-basic-1.1.1.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-impl/1.1.1/maven-resolver-impl-1.1.1.jar:/Users/avi.flax/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-model/3.5.2/maven-model-3.5.2.jar:/Users/avi.flax/.m2/repository/org/clojure/test.check/0.10.0-RC1/test.check-0.10.0-RC1.jar:/Users/avi.flax/.gitlibs/libs/taylorwood/clj.native-image/b3823a48be75122b9671c86ce5353a85589ef15f/src:/Users/avi.flax/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.1.1/maven-resolver-util-1.1.1.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/websocket/websocket-common/9.4.19.v20190610/websocket-common-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/clojure/core.memoize/0.5.9/core.memoize-0.5.9.jar:/Users/avi.flax/.m2/repository/hawk/hawk/0.2.11/hawk-0.2.11.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-repository-metadata/3.5.2/maven-repository-metadata-3.5.2.jar:/Users/avi.flax/.m2/repository/org/clojure/data.priority-map/0.0.7/data.priority-map-0.0.7.jar:/Users/avi.flax/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-builder-support/3.5.2/maven-builder-support-3.5.2.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.core/0.0.9/jsch.agentproxy.core-0.0.9.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.usocket-nc/0.0.9/jsch.agentproxy.usocket-nc-0.0.9.jar:/Users/avi.flax/.m2/repository/org/clojure/core.cache/0.6.5/core.cache-0.6.5.jar:/Users/avi.flax/.m2/repository/org/ow2/asm/asm-all/4.2/asm-all-4.2.jar:/Users/avi.flax/.m2/repository/com/amazonaws/aws-java-sdk-kms/1.11.184/aws-java-sdk-kms-1.11.184.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-plugin-api/3.5.2/maven-plugin-api-3.5.2.jar:/Users/avi.flax/.m2/repository/org/clojure/core.async/0.4.500/core.async-0.4.500.jar:/Users/avi.flax/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.9.9/jackson-dataformat-smile-2.9.9.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-artifact/3.5.2/maven-artifact-3.5.2.jar:/Users/avi.flax/.m2/repository/org/clojure/data.codec/0.1.0/data.codec-0.1.0.jar:/Users/avi.flax/.m2/repository/com/amazonaws/aws-java-sdk-s3/1.11.184/aws-java-sdk-s3-1.11.184.jar:/Users/avi.flax/.m2/repository/http-kit/http-kit/2.3.0/http-kit-2.3.0.jar \
-H:Path=/Users/avi.flax/dev/fc4-framework/tool \
-H:EnableURLProtocols=https \
-H:ClassInitialization=:build_time \
-H:FallbackThreshold=0 \
-H:+AllowIncompleteClasspath \
-H:+ReportUnsupportedElementsAtRuntime \
-H:+StaticExecutable \
-H:Name=target/fc4 \
-H:CLibraryPath=/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/clibraries/darwin-amd64 \
-H:Class=fc4.io.cli.main
]
[target/fc4:34859]    classlist:   9,504.47 ms
[target/fc4:34859]        (cap):   2,363.90 ms
[target/fc4:34859]        setup:   3,561.54 ms
[target/fc4:34859]     analysis: 102,535.23 ms
Error: Unsupported features in 7 methods
Detailed message:
Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call: java.lang.invoke.MethodHandle.bindTo(Object)
Trace: 
	at parsing java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor(MethodHandleImpl.java:221)
Call path from entry point to java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor(MethodHandle, MethodType, boolean, boolean): 
	at java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor(MethodHandleImpl.java:207)
	at java.lang.invoke.MethodHandleImpl.makePairwiseConvert(MethodHandleImpl.java:194)
	at java.lang.invoke.MethodHandleImpl.makePairwiseConvert(MethodHandleImpl.java:380)
	at java.lang.invoke.MethodHandle.asTypeUncached(MethodHandle.java:776)
	at java.lang.invoke.MethodHandle.asType(MethodHandle.java:761)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at com.oracle.svm.reflect.MethodHandle_invokeWithArguments_9dda848d0201e4e26c7b3711f56411a6605b9b6f_42.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call: java.lang.invoke.MethodHandleImpl$BindCaller.prepareForInvoker(MethodHandle)
Trace: 
	at parsing java.lang.invoke.MethodHandleImpl$BindCaller.makeInjectedInvoker(MethodHandleImpl.java:1166)
Call path from entry point to java.lang.invoke.MethodHandleImpl$BindCaller.makeInjectedInvoker(Class): 
	at java.lang.invoke.MethodHandleImpl$BindCaller.makeInjectedInvoker(MethodHandleImpl.java:1141)
	at java.lang.invoke.MethodHandleImpl$BindCaller.access$300(MethodHandleImpl.java:1122)
	at java.lang.invoke.MethodHandleImpl$BindCaller$1.computeValue(MethodHandleImpl.java:1175)
	at java.lang.invoke.MethodHandleImpl$BindCaller$1.computeValue(MethodHandleImpl.java:1173)
	at com.oracle.svm.core.jdk.Target_java_lang_ClassValue.get(JavaLangSubstitutions.java:514)
	at java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor(MethodHandleImpl.java:76)
	at java.lang.invoke.MethodHandles.arrayElementGetter(MethodHandles.java:1825)
	at java.lang.invoke.LambdaFormEditor.spreadArgumentsForm(LambdaFormEditor.java:550)
	at java.lang.invoke.MethodHandle.asSpreader(MethodHandle.java:874)
	at java.lang.invoke.Invokers.spreadInvoker(Invokers.java:158)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at com.oracle.svm.reflect.MethodHandle_invokeWithArguments_9dda848d0201e4e26c7b3711f56411a6605b9b6f_42.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call: java.lang.invoke.MethodHandleImpl.buildVarargsArray(MethodHandle, MethodHandle, int)
Trace: 
	at parsing java.lang.invoke.MethodHandleImpl.varargsArray(MethodHandleImpl.java:1634)
Call path from entry point to java.lang.invoke.MethodHandleImpl.varargsArray(Class, int): 
	at java.lang.invoke.MethodHandleImpl.varargsArray(MethodHandleImpl.java:1611)
	at java.lang.invoke.MethodHandle.asCollector(MethodHandle.java:999)
	at java.lang.invoke.MethodHandleImpl$AsVarargsCollector.asTypeUncached(MethodHandleImpl.java:502)
	at java.lang.invoke.MethodHandle.asType(MethodHandle.java:761)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at com.oracle.svm.reflect.MethodHandle_invokeWithArguments_9dda848d0201e4e26c7b3711f56411a6605b9b6f_42.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: No instances of javax.net.ssl.SSLContext are allowed in the image heap as this class should be initialized at image runtime. To see how this object got instantiated use -H:+TraceClassInitialization.
Trace: 
	at parsing org.httpkit.client.HttpClient.exec(HttpClient.java:347)
Call path from entry point to org.httpkit.client.HttpClient.exec(String, RequestConfig, SSLEngine, IRespListener): 
	at org.httpkit.client.HttpClient.exec(HttpClient.java:269)
	at org.httpkit.client$request.invokeStatic(client.clj:258)
	at org.httpkit.client$request.doInvoke(client.clj:152)
	at clojure.lang.RestFn.applyTo(RestFn.java:139)
	at fc4.io.cli.main.main(Unknown Source)
	at com.oracle.svm.core.JavaMainWrapper.runCore(JavaMainWrapper.java:151)
	at com.oracle.svm.core.JavaMainWrapper.run(JavaMainWrapper.java:186)
	at com.oracle.svm.core.code.IsolateEnterStub.JavaMainWrapper_run_5087f5482cc9a6abc971913ece43acb471d2631b(generated:0)
Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: No instances of javax.net.ssl.SSLContext are allowed in the image heap as this class should be initialized at image runtime. To see how this object got instantiated use -H:+TraceClassInitialization.
Trace: 
	at parsing org.httpkit.client.SslContextFactory.trustAnybody(SslContextFactory.java:36)
Call path from entry point to org.httpkit.client.SslContextFactory.trustAnybody(): 
	at org.httpkit.client.SslContextFactory.trustAnybody(SslContextFactory.java:36)
	at org.httpkit.client$coerce_req.invokeStatic(client.clj:68)
	at org.httpkit.client$coerce_req.invoke(client.clj:59)
	at taoensso.encore.proxy$java.util.TimerTask$ff19274a.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:748)
	at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:460)
	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: type is not available in this platform: com.oracle.svm.hosted.code.CFunctionCallStubMethod
Trace: 	object java.lang.invoke.MethodType
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry
	object java.util.concurrent.ConcurrentHashMap$Node
	object java.util.concurrent.ConcurrentHashMap$Node[]
	object java.util.concurrent.ConcurrentHashMap
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet
	method java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean)
Call path from entry point to java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean): 
	at java.lang.invoke.MethodType.makeImpl(MethodType.java:301)
	at java.lang.invoke.MethodType.methodType(MethodType.java:206)
	at com.oracle.svm.reflect.MethodType_methodType_9d13644056a712f9cdb73fb2ef8b26f65294abe9_37.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: type is not available in this platform: org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess
Trace: 	object java.lang.Class[]
	object java.lang.invoke.MethodType
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry
	object java.util.concurrent.ConcurrentHashMap$Node
	object java.util.concurrent.ConcurrentHashMap$Node[]
	object java.util.concurrent.ConcurrentHashMap
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet
	method java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean)
Call path from entry point to java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean): 
	at java.lang.invoke.MethodType.makeImpl(MethodType.java:301)
	at java.lang.invoke.MethodType.methodType(MethodType.java:206)
	at com.oracle.svm.reflect.MethodType_methodType_9d13644056a712f9cdb73fb2ef8b26f65294abe9_37.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
Error: Image build request failed with exit status 1
com.oracle.svm.driver.NativeImage$NativeImageError: Image build request failed with exit status 1
	at com.oracle.svm.driver.NativeImage.showError(NativeImage.java:1447)
	at com.oracle.svm.driver.NativeImage.build(NativeImage.java:1225)
	at com.oracle.svm.driver.NativeImage.performBuild(NativeImage.java:1187)
	at com.oracle.svm.driver.NativeImage.main(NativeImage.java:1146)

This is from https://github.com/FundingCircle/fc4-framework/commit/f76b856314d480cf68692f61a08e8934fee663c3 which is currently HEAD of native-image.

@aviflax
Copy link
Author

aviflax commented Oct 29, 2019

Update:

I perused oracle/graal#1074 and then added --initialize-at-run-time=org.httpkit.client to my :main-opts — this eliminated the two error messages related to javax.net.ssl.SSLContext.

Now I’m getting Error: Unsupported features in 5 methods so that’s more progress!

Verbose Output
$ bin/pkg-native 
Compiling fc4.io.cli.main
Reflection warning, clj_chrome_devtools/automation.clj:61:5 - reference to field close on java.lang.Object can't be resolved.
Compiling fc4.files
Compiling fc4.image-utils
Compiling fc4.integrations.structurizr.express.chromium-renderer
Compiling fc4.integrations.structurizr.express.export
Compiling fc4.integrations.structurizr.express.format
Compiling fc4.integrations.structurizr.express.snap
Compiling fc4.integrations.structurizr.express.spec
Compiling fc4.integrations.structurizr.express.yaml
Compiling fc4.io.cli.main
Compiling fc4.io.cli.util
Compiling fc4.io.dsl
Compiling fc4.io.render
Compiling fc4.io.util
Compiling fc4.io.watch
Compiling fc4.io.yaml
Compiling fc4.model
Compiling fc4.rendering
Compiling fc4.spec
Compiling fc4.styles
Compiling fc4.util
Compiling fc4.view
Compiling fc4.yaml
Warning: Invalid classpath entry: /Users/avi.flax/.m2/repository/net/incongru/watchservice/barbary-watchservice/1.0/jna-3.2.2.jar
Executing [
/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/bin/java \
-XX:+UnlockExperimentalVMOptions \
-XX:+EnableJVMCI \
-Dtruffle.TrustAllTruffleRuntimeProviders=true \
-Dtruffle.TruffleRuntime=com.oracle.truffle.api.impl.DefaultTruffleRuntime \
-Dgraalvm.ForcePolyglotInvalid=true \
-Dgraalvm.locatorDisabled=true \
-d64 \
-XX:-UseJVMCIClassLoader \
-XX:+UseJVMCINativeLibrary \
-Xss10m \
-Xms1g \
-Xmx13743895344 \
-Duser.country=US \
-Duser.language=en \
-Dorg.graalvm.version=19.2.1 \
-Dorg.graalvm.config=CE \
-Dcom.oracle.graalvm.isaot=true \
-Djvmci.class.path.append=/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/graal.jar \
-Xbootclasspath/a:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/boot/graaljs-scriptengine.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/boot/graal-sdk.jar \
-cp \
/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/llvm-wrapper.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/svm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/javacpp.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/objectfile.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/graal-llvm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/svm-llvm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/llvm-platform-specific.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/pointsto.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/graal.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/graal-management.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/jvmci-api.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/jvmci-hotspot.jar \
com.oracle.svm.hosted.NativeImageGeneratorRunner \
-imagecp \
/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/boot/graaljs-scriptengine.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/boot/graal-sdk.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/llvm-wrapper.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/svm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/javacpp.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/objectfile.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/graal-llvm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/svm-llvm.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/llvm-platform-specific.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/builder/pointsto.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/graal.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/graal-management.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/jvmci-api.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/jvmci/jvmci-hotspot.jar:/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/library-support.jar:/Users/avi.flax/.m2/repository/net/incongru/watchservice/barbary-watchservice/1.0/jna-3.2.2.jar:/Users/avi.flax/dev/fc4-framework/tool/classes:/Users/avi.flax/dev/fc4-framework/tool/src/main:/Users/avi.flax/dev/fc4-framework/tool/src/java:/Users/avi.flax/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/avi.flax/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar:/Users/avi.flax/.m2/repository/joda-time/joda-time/2.10.3/joda-time-2.10.3.jar:/Users/avi.flax/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.analyzer/0.6.9/tools.analyzer-0.6.9.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/jetty-xml/9.4.19.v20190610/jetty-xml-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar:/Users/avi.flax/.m2/repository/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar:/Users/avi.flax/.m2/repository/org/springframework/build/aws-maven/5.0.0.RELEASE/aws-maven-5.0.0.RELEASE.jar:/Users/avi.flax/.m2/repository/org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44.jar:/Users/avi.flax/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.5.5/jackson-databind-2.5.5.jar:/Users/avi.flax/.gitlibs/libs/expound/expound/297e0812eb77ae3aa8f30e823f8bdbbb4650fa28/src:/Users/avi.flax/.m2/repository/org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.cli/0.4.2/tools.cli-0.4.2.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/jetty-http/9.4.19.v20190610/jetty-http-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/jetty-util/9.4.19.v20190610/jetty-util-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/com/taoensso/encore/2.91.0/encore-2.91.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-wagon/1.1.1/maven-resolver-transport-wagon-1.1.1.jar:/Users/avi.flax/.gitlibs/libs/clj-chrome-devtools/clj-chrome-devtools/a1b1b0903ae5ba56eaada8496ed3785a53d8cc06/src:/Users/avi.flax/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.analyzer.jvm/0.7.2/tools.analyzer.jvm-0.7.2.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.jsch/0.0.9/jsch.agentproxy.jsch-0.0.9.jar:/Users/avi.flax/.m2/repository/net/incongru/watchservice/barbary-watchservice/1.0/barbary-watchservice-1.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/wagon/wagon-provider-api/3.0.0/wagon-provider-api-3.0.0.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.sshagent/0.0.9/jsch.agentproxy.sshagent-0.0.9.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.macro/0.1.1/tools.macro-0.1.1.jar:/Users/avi.flax/.m2/repository/com/cognitect/anomalies/0.1.12/anomalies-0.1.12.jar:/Users/avi.flax/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.9.9/jackson-dataformat-cbor-2.9.9.jar:/Users/avi.flax/.m2/repository/com/gfredericks/test.chuck/0.2.10/test.chuck-0.2.10.jar:/Users/avi.flax/.m2/repository/org/flatland/useful/0.11.6/useful-0.11.6.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.1.1/maven-resolver-transport-http-1.1.1.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-model-builder/3.5.2/maven-model-builder-3.5.2.jar:/Users/avi.flax/.m2/repository/io/aviso/pretty/0.1.33/pretty-0.1.33.jar:/Users/avi.flax/.m2/repository/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.jar:/Users/avi.flax/.m2/repository/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.1.1/maven-resolver-transport-file-1.1.1.jar:/Users/avi.flax/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.plexus/0.3.3/org.eclipse.sisu.plexus-0.3.3.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/websocket/websocket-api/9.4.19.v20190610/websocket-api-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/flatland/ordered/1.5.7/ordered-1.5.7.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.usocket-jna/0.0.9/jsch.agentproxy.usocket-jna-0.0.9.jar:/Users/avi.flax/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-settings-builder/3.5.2/maven-settings-builder-3.5.2.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.namespace/0.3.1/tools.namespace-0.3.1.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/websocket/websocket-client/9.4.19.v20190610/websocket-client-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/eclipse/jgit/org.eclipse.jgit/4.10.0.201712302008-r/org.eclipse.jgit-4.10.0.201712302008-r.jar:/Users/avi.flax/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar:/Users/avi.flax/.m2/repository/clj-time/clj-time/0.10.0/clj-time-0.10.0.jar:/Users/avi.flax/.m2/repository/org/yaml/snakeyaml/1.24/snakeyaml-1.24.jar:/Users/avi.flax/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-settings/3.5.2/maven-settings-3.5.2.jar:/Users/avi.flax/.m2/repository/org/apache/httpcomponents/httpcore/4.4.8/httpcore-4.4.8.jar:/Users/avi.flax/.m2/repository/instaparse/instaparse/1.3.6/instaparse-1.3.6.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-core/3.5.2/maven-core-3.5.2.jar:/Users/avi.flax/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar:/Users/avi.flax/.m2/repository/stylefruits/gniazdo/1.1.2/gniazdo-1.1.2.jar:/Users/avi.flax/.m2/repository/com/taoensso/truss/1.5.0/truss-1.5.0.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.pageant/0.0.9/jsch.agentproxy.pageant-0.0.9.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-api/1.1.1/maven-resolver-api-1.1.1.jar:/Users/avi.flax/.m2/repository/software/amazon/ion/ion-java/1.0.2/ion-java-1.0.2.jar:/Users/avi.flax/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.5.0/jackson-annotations-2.5.0.jar:/Users/avi.flax/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-resolver-provider/3.5.2/maven-resolver-provider-3.5.2.jar:/Users/avi.flax/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar:/Users/avi.flax/.m2/repository/org/clojure/java.classpath/0.3.0/java.classpath-0.3.0.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.deps.alpha/0.7.549/tools.deps.alpha-0.7.549.jar:/Users/avi.flax/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/Users/avi.flax/.m2/repository/com/google/guava/guava/20.0/guava-20.0.jar:/Users/avi.flax/.m2/repository/org/clojure/data.xml/0.2.0-alpha5/data.xml-0.2.0-alpha5.jar:/Users/avi.flax/.m2/repository/com/amazonaws/jmespath-java/1.11.184/jmespath-java-1.11.184.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-spi/1.1.1/maven-resolver-spi-1.1.1.jar:/Users/avi.flax/.m2/repository/com/amazonaws/aws-java-sdk-core/1.11.184/aws-java-sdk-core-1.11.184.jar:/Users/avi.flax/.m2/repository/com/taoensso/timbre/4.10.0/timbre-4.10.0.jar:/Users/avi.flax/.m2/repository/org/codehaus/plexus/plexus-classworlds/2.5.2/plexus-classworlds-2.5.2.jar:/Users/avi.flax/.m2/repository/s3-wagon-private/s3-wagon-private/1.3.1/s3-wagon-private-1.3.1.jar:/Users/avi.flax/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar:/Users/avi.flax/.m2/repository/clj-commons/clj-yaml/0.7.0/clj-yaml-0.7.0.jar:/Users/avi.flax/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.24/plexus-interpolation-1.24.jar:/Users/avi.flax/.m2/repository/org/apache/httpcomponents/httpclient/4.5.4/httpclient-4.5.4.jar:/Users/avi.flax/.m2/repository/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar:/Users/avi.flax/.m2/repository/com/google/inject/guice/4.0/guice-4.0-no_aop.jar:/Users/avi.flax/.m2/repository/cheshire/cheshire/5.9.0/cheshire-5.9.0.jar:/Users/avi.flax/.m2/repository/tigris/tigris/0.1.1/tigris-0.1.1.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.connector-factory/0.0.9/jsch.agentproxy.connector-factory-0.0.9.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/jetty-client/9.4.19.v20190610/jetty-client-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/com/andrewmcveigh/cljs-time/0.5.1/cljs-time-0.5.1.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/jetty-io/9.4.19.v20190610/jetty-io-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.reader/1.3.2/tools.reader-1.3.2.jar:/Users/avi.flax/.m2/repository/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar:/Users/avi.flax/.m2/repository/org/clojure/tools.gitlibs/0.2.64/tools.gitlibs-0.2.64.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.1.1/maven-resolver-connector-basic-1.1.1.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-impl/1.1.1/maven-resolver-impl-1.1.1.jar:/Users/avi.flax/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-model/3.5.2/maven-model-3.5.2.jar:/Users/avi.flax/.m2/repository/org/clojure/test.check/0.10.0-RC1/test.check-0.10.0-RC1.jar:/Users/avi.flax/.gitlibs/libs/taylorwood/clj.native-image/b3823a48be75122b9671c86ce5353a85589ef15f/src:/Users/avi.flax/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar:/Users/avi.flax/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.1.1/maven-resolver-util-1.1.1.jar:/Users/avi.flax/.m2/repository/org/eclipse/jetty/websocket/websocket-common/9.4.19.v20190610/websocket-common-9.4.19.v20190610.jar:/Users/avi.flax/.m2/repository/org/clojure/core.memoize/0.5.9/core.memoize-0.5.9.jar:/Users/avi.flax/.m2/repository/hawk/hawk/0.2.11/hawk-0.2.11.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-repository-metadata/3.5.2/maven-repository-metadata-3.5.2.jar:/Users/avi.flax/.m2/repository/org/clojure/data.priority-map/0.0.7/data.priority-map-0.0.7.jar:/Users/avi.flax/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-builder-support/3.5.2/maven-builder-support-3.5.2.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.core/0.0.9/jsch.agentproxy.core-0.0.9.jar:/Users/avi.flax/.m2/repository/com/jcraft/jsch.agentproxy.usocket-nc/0.0.9/jsch.agentproxy.usocket-nc-0.0.9.jar:/Users/avi.flax/.m2/repository/org/clojure/core.cache/0.6.5/core.cache-0.6.5.jar:/Users/avi.flax/.m2/repository/org/ow2/asm/asm-all/4.2/asm-all-4.2.jar:/Users/avi.flax/.m2/repository/com/amazonaws/aws-java-sdk-kms/1.11.184/aws-java-sdk-kms-1.11.184.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-plugin-api/3.5.2/maven-plugin-api-3.5.2.jar:/Users/avi.flax/.m2/repository/org/clojure/core.async/0.4.500/core.async-0.4.500.jar:/Users/avi.flax/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.9.9/jackson-dataformat-smile-2.9.9.jar:/Users/avi.flax/.m2/repository/org/apache/maven/maven-artifact/3.5.2/maven-artifact-3.5.2.jar:/Users/avi.flax/.m2/repository/org/clojure/data.codec/0.1.0/data.codec-0.1.0.jar:/Users/avi.flax/.m2/repository/com/amazonaws/aws-java-sdk-s3/1.11.184/aws-java-sdk-s3-1.11.184.jar:/Users/avi.flax/.m2/repository/http-kit/http-kit/2.3.0/http-kit-2.3.0.jar \
-H:Path=/Users/avi.flax/dev/fc4-framework/tool \
-H:EnableURLProtocols=https \
-H:EnableURLProtocols=http,https \
-H:ClassInitialization=:build_time \
-H:ClassInitialization=org.httpkit.client:run_time \
-H:FallbackThreshold=0 \
-H:+AllowIncompleteClasspath \
-H:+ReportUnsupportedElementsAtRuntime \
-H:+StaticExecutable \
-H:Name=target/fc4 \
-H:CLibraryPath=/Library/Java/JavaVirtualMachines/graalvm-ce-19.2.1/Contents/Home/jre/lib/svm/clibraries/darwin-amd64 \
-H:Class=fc4.io.cli.main
]
[target/fc4:38671]    classlist:  10,130.56 ms
[target/fc4:38671]        (cap):   2,358.91 ms
[target/fc4:38671]        setup:   3,665.69 ms
[target/fc4:38671]     analysis:  91,185.10 ms
Error: Unsupported features in 5 methods
Detailed message:
Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call: java.lang.invoke.MethodHandle.bindTo(Object)
Trace: 
	at parsing java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor(MethodHandleImpl.java:221)
Call path from entry point to java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor(MethodHandle, MethodType, boolean, boolean): 
	at java.lang.invoke.MethodHandleImpl.makePairwiseConvertByEditor(MethodHandleImpl.java:207)
	at java.lang.invoke.MethodHandleImpl.makePairwiseConvert(MethodHandleImpl.java:194)
	at java.lang.invoke.MethodHandleImpl.makePairwiseConvert(MethodHandleImpl.java:380)
	at java.lang.invoke.MethodHandle.asTypeUncached(MethodHandle.java:776)
	at java.lang.invoke.MethodHandle.asType(MethodHandle.java:761)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at com.oracle.svm.reflect.MethodHandle_invokeWithArguments_9dda848d0201e4e26c7b3711f56411a6605b9b6f_30.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call: java.lang.invoke.MethodHandleImpl$BindCaller.prepareForInvoker(MethodHandle)
Trace: 
	at parsing java.lang.invoke.MethodHandleImpl$BindCaller.makeInjectedInvoker(MethodHandleImpl.java:1166)
Call path from entry point to java.lang.invoke.MethodHandleImpl$BindCaller.makeInjectedInvoker(Class): 
	at java.lang.invoke.MethodHandleImpl$BindCaller.makeInjectedInvoker(MethodHandleImpl.java:1141)
	at java.lang.invoke.MethodHandleImpl$BindCaller.access$300(MethodHandleImpl.java:1122)
	at java.lang.invoke.MethodHandleImpl$BindCaller$1.computeValue(MethodHandleImpl.java:1175)
	at java.lang.invoke.MethodHandleImpl$BindCaller$1.computeValue(MethodHandleImpl.java:1173)
	at com.oracle.svm.core.jdk.Target_java_lang_ClassValue.get(JavaLangSubstitutions.java:514)
	at java.lang.invoke.MethodHandleImpl.makeArrayElementAccessor(MethodHandleImpl.java:76)
	at java.lang.invoke.MethodHandles.arrayElementGetter(MethodHandles.java:1825)
	at java.lang.invoke.LambdaFormEditor.spreadArgumentsForm(LambdaFormEditor.java:550)
	at java.lang.invoke.MethodHandle.asSpreader(MethodHandle.java:874)
	at java.lang.invoke.Invokers.spreadInvoker(Invokers.java:158)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at com.oracle.svm.reflect.MethodHandle_invokeWithArguments_9dda848d0201e4e26c7b3711f56411a6605b9b6f_30.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call: java.lang.invoke.MethodHandleImpl.buildVarargsArray(MethodHandle, MethodHandle, int)
Trace: 
	at parsing java.lang.invoke.MethodHandleImpl.varargsArray(MethodHandleImpl.java:1634)
Call path from entry point to java.lang.invoke.MethodHandleImpl.varargsArray(Class, int): 
	at java.lang.invoke.MethodHandleImpl.varargsArray(MethodHandleImpl.java:1611)
	at java.lang.invoke.MethodHandle.asCollector(MethodHandle.java:999)
	at java.lang.invoke.MethodHandleImpl$AsVarargsCollector.asTypeUncached(MethodHandleImpl.java:502)
	at java.lang.invoke.MethodHandle.asType(MethodHandle.java:761)
	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
	at com.oracle.svm.reflect.MethodHandle_invokeWithArguments_9dda848d0201e4e26c7b3711f56411a6605b9b6f_30.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: type is not available in this platform: com.oracle.svm.hosted.cenum.CEnumCallWrapperMethod
Trace: 	object java.lang.invoke.MethodType
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry
	object java.util.concurrent.ConcurrentHashMap$Node
	object java.util.concurrent.ConcurrentHashMap$Node[]
	object java.util.concurrent.ConcurrentHashMap
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet
	method java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean)
Call path from entry point to java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean): 
	at java.lang.invoke.MethodType.makeImpl(MethodType.java:301)
	at java.lang.invoke.MethodType.methodType(MethodType.java:206)
	at com.oracle.svm.reflect.MethodType_methodType_9d13644056a712f9cdb73fb2ef8b26f65294abe9_38.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: type is not available in this platform: org.graalvm.nativeimage.hosted.Feature$BeforeAnalysisAccess
Trace: 	object java.lang.Class[]
	object java.lang.invoke.MethodType
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet$WeakEntry
	object java.util.concurrent.ConcurrentHashMap$Node
	object java.util.concurrent.ConcurrentHashMap$Node[]
	object java.util.concurrent.ConcurrentHashMap
	object java.lang.invoke.MethodType$ConcurrentWeakInternSet
	method java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean)
Call path from entry point to java.lang.invoke.MethodType.makeImpl(Class, Class[], boolean): 
	at java.lang.invoke.MethodType.makeImpl(MethodType.java:301)
	at java.lang.invoke.MethodType.methodType(MethodType.java:206)
	at com.oracle.svm.reflect.MethodType_methodType_9d13644056a712f9cdb73fb2ef8b26f65294abe9_38.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at clojure.core$bean$fn__7197$fn__7198.invoke(core_proxy.clj:408)
	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:460)
	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: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
Error: Image build request failed with exit status 1
com.oracle.svm.driver.NativeImage$NativeImageError: Image build request failed with exit status 1
	at com.oracle.svm.driver.NativeImage.showError(NativeImage.java:1447)
	at com.oracle.svm.driver.NativeImage.build(NativeImage.java:1225)
	at com.oracle.svm.driver.NativeImage.performBuild(NativeImage.java:1187)
	at com.oracle.svm.driver.NativeImage.main(NativeImage.java:1146)

commit: https://github.com/FundingCircle/fc4-framework/commit/80248616bc5f4076c4f9dd351b202d7ce5219bb0

@taylorwood
Copy link
Owner

I was able to build your branch with Clojure 1.10.1 on the GraalVM 19.2.1 Docker image:

Compiling fc4.io.cli.main
Reflection warning, clj_chrome_devtools/automation.clj:61:5 - reference to field close on java.lang.Object can't be resolved.
Compiling fc4.files
Compiling fc4.image-utils
Compiling fc4.integrations.structurizr.express.chromium-renderer
Compiling fc4.integrations.structurizr.express.export
Compiling fc4.integrations.structurizr.express.format
Compiling fc4.integrations.structurizr.express.snap
Compiling fc4.integrations.structurizr.express.spec
Compiling fc4.integrations.structurizr.express.yaml
Compiling fc4.io.cli.main
Compiling fc4.io.cli.util
Compiling fc4.io.dsl
Compiling fc4.io.render
Compiling fc4.io.util
Compiling fc4.io.watch
Compiling fc4.io.yaml
Compiling fc4.model
Compiling fc4.rendering
Compiling fc4.spec
Compiling fc4.styles
Compiling fc4.util
Compiling fc4.view
Compiling fc4.yaml
Warning: Invalid classpath entry: /root/.m2/repository/net/incongru/watchservice/barbary-watchservice/1.0/jna-3.2.2.jar
Executing [
/opt/graalvm-ce-19.2.1/jre/bin/java \
-XX:+UnlockExperimentalVMOptions \
-XX:+EnableJVMCI \
-Dtruffle.TrustAllTruffleRuntimeProviders=true \
-Dtruffle.TruffleRuntime=com.oracle.truffle.api.impl.DefaultTruffleRuntime \
-Dgraalvm.ForcePolyglotInvalid=true \
-Dgraalvm.locatorDisabled=true \
-d64 \
-XX:-UseJVMCIClassLoader \
-XX:+UseJVMCINativeLibrary \
-Xss10m \
-Xms1g \
-Xmx4997247792 \
-Duser.country=US \
-Duser.language=en \
-Dorg.graalvm.version=19.2.1 \
-Dorg.graalvm.config=CE \
-Dcom.oracle.graalvm.isaot=true \
-Djvmci.class.path.append=/opt/graalvm-ce-19.2.1/jre/lib/jvmci/graal.jar \
-Xbootclasspath/a:/opt/graalvm-ce-19.2.1/jre/lib/boot/graal-sdk.jar:/opt/graalvm-ce-19.2.1/jre/lib/boot/graaljs-scriptengine.jar \
-cp \
/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/llvm-platform-specific.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/svm.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/llvm-wrapper.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/objectfile.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/graal-llvm.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/javacpp.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/svm-llvm.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/pointsto.jar:/opt/graalvm-ce-19.2.1/jre/lib/jvmci/jvmci-api.jar:/opt/graalvm-ce-19.2.1/jre/lib/jvmci/graal.jar:/opt/graalvm-ce-19.2.1/jre/lib/jvmci/graal-management.jar:/opt/graalvm-ce-19.2.1/jre/lib/jvmci/jvmci-hotspot.jar \
com.oracle.svm.hosted.NativeImageGeneratorRunner \
-watchpid \
153 \
-imagecp \
/opt/graalvm-ce-19.2.1/jre/lib/boot/graal-sdk.jar:/opt/graalvm-ce-19.2.1/jre/lib/boot/graaljs-scriptengine.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/llvm-platform-specific.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/svm.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/llvm-wrapper.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/objectfile.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/graal-llvm.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/javacpp.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/svm-llvm.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/builder/pointsto.jar:/opt/graalvm-ce-19.2.1/jre/lib/jvmci/jvmci-api.jar:/opt/graalvm-ce-19.2.1/jre/lib/jvmci/graal.jar:/opt/graalvm-ce-19.2.1/jre/lib/jvmci/graal-management.jar:/opt/graalvm-ce-19.2.1/jre/lib/jvmci/jvmci-hotspot.jar:/opt/graalvm-ce-19.2.1/jre/lib/svm/library-support.jar:/root/.m2/repository/net/incongru/watchservice/barbary-watchservice/1.0/jna-3.2.2.jar:/code/fc4-framework/tool/classes:/code/fc4-framework/tool/src/main:/code/fc4-framework/tool/src/java:/root/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/root/.m2/repository/org/clojure/clojure/1.10.1/clojure-1.10.1.jar:/root/.m2/repository/joda-time/joda-time/2.10.3/joda-time-2.10.3.jar:/root/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/root/.m2/repository/org/clojure/tools.analyzer/0.6.9/tools.analyzer-0.6.9.jar:/root/.m2/repository/org/eclipse/jetty/jetty-xml/9.4.19.v20190610/jetty-xml-9.4.19.v20190610.jar:/root/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.7.1/plexus-component-annotations-1.7.1.jar:/root/.m2/repository/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar:/root/.m2/repository/org/springframework/build/aws-maven/5.0.0.RELEASE/aws-maven-5.0.0.RELEASE.jar:/root/.m2/repository/org/clojure/core.specs.alpha/0.2.44/core.specs.alpha-0.2.44.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.5.5/jackson-databind-2.5.5.jar:/root/.gitlibs/libs/expound/expound/297e0812eb77ae3aa8f30e823f8bdbbb4650fa28/src:/root/.m2/repository/org/clojure/spec.alpha/0.2.176/spec.alpha-0.2.176.jar:/root/.m2/repository/org/clojure/tools.cli/0.4.2/tools.cli-0.4.2.jar:/root/.m2/repository/org/eclipse/jetty/jetty-http/9.4.19.v20190610/jetty-http-9.4.19.v20190610.jar:/root/.m2/repository/org/eclipse/jetty/jetty-util/9.4.19.v20190610/jetty-util-9.4.19.v20190610.jar:/root/.m2/repository/com/taoensso/encore/2.91.0/encore-2.91.0.jar:/root/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-wagon/1.1.1/maven-resolver-transport-wagon-1.1.1.jar:/root/.gitlibs/libs/clj-chrome-devtools/clj-chrome-devtools/a1b1b0903ae5ba56eaada8496ed3785a53d8cc06/src:/root/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.25/jcl-over-slf4j-1.7.25.jar:/root/.m2/repository/org/clojure/tools.analyzer.jvm/0.7.2/tools.analyzer.jvm-0.7.2.jar:/root/.m2/repository/com/jcraft/jsch.agentproxy.jsch/0.0.9/jsch.agentproxy.jsch-0.0.9.jar:/root/.m2/repository/net/incongru/watchservice/barbary-watchservice/1.0/barbary-watchservice-1.0.jar:/root/.m2/repository/org/apache/maven/wagon/wagon-provider-api/3.0.0/wagon-provider-api-3.0.0.jar:/root/.m2/repository/com/jcraft/jsch.agentproxy.sshagent/0.0.9/jsch.agentproxy.sshagent-0.0.9.jar:/root/.m2/repository/org/clojure/tools.macro/0.1.1/tools.macro-0.1.1.jar:/root/.m2/repository/com/cognitect/anomalies/0.1.12/anomalies-0.1.12.jar:/root/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-cbor/2.9.9/jackson-dataformat-cbor-2.9.9.jar:/root/.m2/repository/com/gfredericks/test.chuck/0.2.10/test.chuck-0.2.10.jar:/root/.m2/repository/org/flatland/useful/0.11.6/useful-0.11.6.jar:/root/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-http/1.1.1/maven-resolver-transport-http-1.1.1.jar:/root/.m2/repository/org/apache/maven/maven-model-builder/3.5.2/maven-model-builder-3.5.2.jar:/root/.m2/repository/io/aviso/pretty/0.1.33/pretty-0.1.33.jar:/root/.m2/repository/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.jar:/root/.m2/repository/org/codehaus/plexus/plexus-utils/3.1.0/plexus-utils-3.1.0.jar:/root/.m2/repository/org/apache/maven/resolver/maven-resolver-transport-file/1.1.1/maven-resolver-transport-file-1.1.1.jar:/root/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.plexus/0.3.3/org.eclipse.sisu.plexus-0.3.3.jar:/root/.m2/repository/org/eclipse/jetty/websocket/websocket-api/9.4.19.v20190610/websocket-api-9.4.19.v20190610.jar:/root/.m2/repository/org/flatland/ordered/1.5.7/ordered-1.5.7.jar:/root/.m2/repository/com/jcraft/jsch.agentproxy.usocket-jna/0.0.9/jsch.agentproxy.usocket-jna-0.0.9.jar:/root/.m2/repository/commons-io/commons-io/2.5/commons-io-2.5.jar:/root/.m2/repository/org/apache/maven/maven-settings-builder/3.5.2/maven-settings-builder-3.5.2.jar:/root/.m2/repository/org/clojure/tools.namespace/0.3.1/tools.namespace-0.3.1.jar:/root/.m2/repository/org/eclipse/jetty/websocket/websocket-client/9.4.19.v20190610/websocket-client-9.4.19.v20190610.jar:/root/.m2/repository/org/eclipse/jgit/org.eclipse.jgit/4.10.0.201712302008-r/org.eclipse.jgit-4.10.0.201712302008-r.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.9.9/jackson-core-2.9.9.jar:/root/.m2/repository/clj-time/clj-time/0.10.0/clj-time-0.10.0.jar:/root/.m2/repository/org/yaml/snakeyaml/1.24/snakeyaml-1.24.jar:/root/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar:/root/.m2/repository/org/apache/maven/maven-settings/3.5.2/maven-settings-3.5.2.jar:/root/.m2/repository/org/apache/httpcomponents/httpcore/4.4.8/httpcore-4.4.8.jar:/root/.m2/repository/instaparse/instaparse/1.3.6/instaparse-1.3.6.jar:/root/.m2/repository/org/apache/maven/maven-core/3.5.2/maven-core-3.5.2.jar:/root/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar:/root/.m2/repository/stylefruits/gniazdo/1.1.2/gniazdo-1.1.2.jar:/root/.m2/repository/com/taoensso/truss/1.5.0/truss-1.5.0.jar:/root/.m2/repository/com/jcraft/jsch.agentproxy.pageant/0.0.9/jsch.agentproxy.pageant-0.0.9.jar:/root/.m2/repository/org/apache/maven/resolver/maven-resolver-api/1.1.1/maven-resolver-api-1.1.1.jar:/root/.m2/repository/software/amazon/ion/ion-java/1.0.2/ion-java-1.0.2.jar:/root/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.5.0/jackson-annotations-2.5.0.jar:/root/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar:/root/.m2/repository/org/apache/maven/maven-resolver-provider/3.5.2/maven-resolver-provider-3.5.2.jar:/root/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.1.0/maven-shared-utils-3.1.0.jar:/root/.m2/repository/org/clojure/java.classpath/0.3.0/java.classpath-0.3.0.jar:/root/.m2/repository/org/clojure/tools.deps.alpha/0.7.549/tools.deps.alpha-0.7.549.jar:/root/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/root/.m2/repository/com/google/guava/guava/20.0/guava-20.0.jar:/root/.m2/repository/org/clojure/data.xml/0.2.0-alpha5/data.xml-0.2.0-alpha5.jar:/root/.m2/repository/com/amazonaws/jmespath-java/1.11.184/jmespath-java-1.11.184.jar:/root/.m2/repository/org/apache/maven/resolver/maven-resolver-spi/1.1.1/maven-resolver-spi-1.1.1.jar:/root/.m2/repository/com/amazonaws/aws-java-sdk-core/1.11.184/aws-java-sdk-core-1.11.184.jar:/root/.m2/repository/com/taoensso/timbre/4.10.0/timbre-4.10.0.jar:/root/.m2/repository/org/codehaus/plexus/plexus-classworlds/2.5.2/plexus-classworlds-2.5.2.jar:/root/.m2/repository/s3-wagon-private/s3-wagon-private/1.3.1/s3-wagon-private-1.3.1.jar:/root/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar:/root/.m2/repository/clj-commons/clj-yaml/0.7.0/clj-yaml-0.7.0.jar:/root/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.24/plexus-interpolation-1.24.jar:/root/.m2/repository/org/apache/httpcomponents/httpclient/4.5.4/httpclient-4.5.4.jar:/root/.m2/repository/net/java/dev/jna/jna/5.4.0/jna-5.4.0.jar:/root/.m2/repository/com/google/inject/guice/4.0/guice-4.0-no_aop.jar:/root/.m2/repository/cheshire/cheshire/5.9.0/cheshire-5.9.0.jar:/root/.m2/repository/tigris/tigris/0.1.1/tigris-0.1.1.jar:/root/.m2/repository/com/jcraft/jsch.agentproxy.connector-factory/0.0.9/jsch.agentproxy.connector-factory-0.0.9.jar:/root/.m2/repository/org/eclipse/jetty/jetty-client/9.4.19.v20190610/jetty-client-9.4.19.v20190610.jar:/root/.m2/repository/com/andrewmcveigh/cljs-time/0.5.1/cljs-time-0.5.1.jar:/root/.m2/repository/org/eclipse/jetty/jetty-io/9.4.19.v20190610/jetty-io-9.4.19.v20190610.jar:/root/.m2/repository/org/clojure/tools.reader/1.3.2/tools.reader-1.3.2.jar:/root/.m2/repository/net/java/dev/jna/jna-platform/5.4.0/jna-platform-5.4.0.jar:/root/.m2/repository/org/clojure/tools.gitlibs/0.2.64/tools.gitlibs-0.2.64.jar:/root/.m2/repository/org/apache/maven/resolver/maven-resolver-connector-basic/1.1.1/maven-resolver-connector-basic-1.1.1.jar:/root/.m2/repository/org/apache/maven/resolver/maven-resolver-impl/1.1.1/maven-resolver-impl-1.1.1.jar:/root/.m2/repository/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar:/root/.m2/repository/org/apache/maven/maven-model/3.5.2/maven-model-3.5.2.jar:/root/.m2/repository/org/clojure/test.check/0.10.0-RC1/test.check-0.10.0-RC1.jar:/root/.gitlibs/libs/taylorwood/clj.native-image/b3823a48be75122b9671c86ce5353a85589ef15f/src:/root/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar:/root/.m2/repository/org/apache/maven/resolver/maven-resolver-util/1.1.1/maven-resolver-util-1.1.1.jar:/root/.m2/repository/org/eclipse/jetty/websocket/websocket-common/9.4.19.v20190610/websocket-common-9.4.19.v20190610.jar:/root/.m2/repository/org/clojure/core.memoize/0.5.9/core.memoize-0.5.9.jar:/root/.m2/repository/hawk/hawk/0.2.11/hawk-0.2.11.jar:/root/.m2/repository/org/apache/maven/maven-repository-metadata/3.5.2/maven-repository-metadata-3.5.2.jar:/root/.m2/repository/org/clojure/data.priority-map/0.0.7/data.priority-map-0.0.7.jar:/root/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/root/.m2/repository/org/apache/maven/maven-builder-support/3.5.2/maven-builder-support-3.5.2.jar:/root/.m2/repository/com/jcraft/jsch/0.1.54/jsch-0.1.54.jar:/root/.m2/repository/com/jcraft/jsch.agentproxy.core/0.0.9/jsch.agentproxy.core-0.0.9.jar:/root/.m2/repository/com/jcraft/jsch.agentproxy.usocket-nc/0.0.9/jsch.agentproxy.usocket-nc-0.0.9.jar:/root/.m2/repository/org/clojure/core.cache/0.6.5/core.cache-0.6.5.jar:/root/.m2/repository/org/ow2/asm/asm-all/4.2/asm-all-4.2.jar:/root/.m2/repository/com/amazonaws/aws-java-sdk-kms/1.11.184/aws-java-sdk-kms-1.11.184.jar:/root/.m2/repository/org/apache/maven/maven-plugin-api/3.5.2/maven-plugin-api-3.5.2.jar:/root/.m2/repository/org/clojure/core.async/0.4.500/core.async-0.4.500.jar:/root/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-smile/2.9.9/jackson-dataformat-smile-2.9.9.jar:/root/.m2/repository/org/apache/maven/maven-artifact/3.5.2/maven-artifact-3.5.2.jar:/root/.m2/repository/org/clojure/data.codec/0.1.0/data.codec-0.1.0.jar:/root/.m2/repository/com/amazonaws/aws-java-sdk-s3/1.11.184/aws-java-sdk-s3-1.11.184.jar:/root/.m2/repository/http-kit/http-kit/2.3.0/http-kit-2.3.0.jar \
-H:Path=/code/fc4-framework/tool \
-H:EnableURLProtocols=https \
-H:ClassInitialization=clojure:build_time \
-H:ClassInitialization=org.httpkit.client:run_time \
-H:FallbackThreshold=0 \
-H:+AllowIncompleteClasspath \
-H:+ReportUnsupportedElementsAtRuntime \
-H:+StaticExecutable \
-H:Name=target/fc4 \
-H:CLibraryPath=/opt/graalvm-ce-19.2.1/jre/lib/svm/clibraries/linux-amd64 \
-H:Class=fc4.io.cli.main
]
[target/fc4:173]    classlist:  45,617.88 ms
[target/fc4:173]        (cap):   1,804.94 ms
[target/fc4:173]        setup:   3,916.12 ms
[target/fc4:173]   (typeflow):  23,709.41 ms
[target/fc4:173]    (objects):  14,596.24 ms
[target/fc4:173]   (features):   2,268.69 ms
[target/fc4:173]     analysis:  41,889.04 ms
[target/fc4:173]     (clinit):     604.56 ms
[target/fc4:173]     universe:   1,657.16 ms
[target/fc4:173]      (parse):   3,147.89 ms
[target/fc4:173]     (inline):   4,109.84 ms
[target/fc4:173]    (compile):  35,942.58 ms
[target/fc4:173]      compile:  45,723.19 ms
[target/fc4:173]        image:   3,067.16 ms
[target/fc4:173]        write:   1,657.88 ms
[target/fc4:173]      [total]: 143,965.37 ms

The only change I had to make was --initialize-at-build-time=clojure in native-image options. Unfortunately the resulting fc4 image throws an exception about not being able to load clojure.core.server.

@aviflax
Copy link
Author

aviflax commented Nov 7, 2019

Taylor, thank you so much! I’ll revisit this and pick it back up from where you left it, hopefully in a few weeks. Thanks! 🤗

@aviflax aviflax closed this as completed Nov 7, 2019
@sogaiu
Copy link
Contributor

sogaiu commented Nov 28, 2019

@aviflax I got similar-looking errors but only after trying commits after (and including) b3823a4 -- I also tried --initialize-at-build-time=clojure but got what taylorwood got:

image throws an exception about not being able to load clojure.core.server.

In my case, builds are successful up through commit 7773c73 -- here I had --initialize-at-build-time (with other options as well).

@sogaiu
Copy link
Contributor

sogaiu commented Nov 28, 2019

I failed to mention that what I tried with was a separate project.

Sorry for any confusion.

@sogaiu
Copy link
Contributor

sogaiu commented Nov 28, 2019

I just tried building FundingCircle/fc4-framework@ 36aad75491a7c08b2b5db932b6749a69baa71e23 (tip of native-image branch) -- but I get:

$ clj -Sforce -A:native-image
Compiling fc4.io.cli.main
Execution error (FileNotFoundException) at fc4.integrations.structurizr.express.chromium-renderer/loading (chromium_renderer.clj:1).
Could not locate clj_chrome_devtools/automation__init.class, clj_chrome_devtools/automation.clj or clj_chrome_devtools/automation.cljc on classpath. Please check that namespaces with dashes use underscores in the Clojure file name.

May be I'm missing some setup step?

@sogaiu
Copy link
Contributor

sogaiu commented Nov 28, 2019

Upgrading my clj / clojure to the latest version (1.10.1.492) seems to have addressed this issue (thanks @seancorfield).

I have a running native image binary of fc4 that doesn't crash on startup now, @aviflax :) -s and -f don't cause crashes -- working on getting -w and -r to work.

Things I did to get this running (a Linux distribution, fwiw):

  • Add "--initialize-at-run-time=com.barbarysoftware.jna.CarbonAPI" to native-image options
  • Create the target directory in the tool directory before starting (building stops, complaining about path issues if it doesn't exist)
  • Reverting org.clojure/tools.namespace's version to 0.2.11 from 0.3.1 in clj.native-image's deps.edn
  • Use 602587d (except with the change in version mentioned above for 1 dependency)

Not quite there yet though, as I get:

$ ./target/fc4 -fsrw doc/examples/docker-install-and-render/
Exception in thread "main" java.lang.IllegalArgumentException: No matching field found: start for class org.eclipse.jetty.websocket.client.WebSocketClient
	at clojure.lang.Reflector.getInstanceField(Reflector.java:397)
	at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:440)
	at clj_chrome_devtools.impl.connection$connect_url.invokeStatic(connection.clj:127)
	at clj_chrome_devtools.impl.connection$connect.invokeStatic(connection.clj:151)
	at fc4.integrations.structurizr.express.chromium_renderer$make_renderer.invokeStatic(chromium_renderer.clj:280)
	at fc4.integrations.structurizr.express.chromium_renderer$make_renderer.invokeStatic(chromium_renderer.clj:274)
	at fc4.io.cli.main$_main.invokeStatic(main.clj:202)
	at fc4.io.cli.main$_main.doInvoke(main.clj:192)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at fc4.io.cli.main.main(Unknown Source)

Adding a reflection.json file with appropriate content (and adding "-H:ReflectionConfigurationFiles=reflection.json" to native image options) seems to make some of these types of errors go away.

@sogaiu
Copy link
Contributor

sogaiu commented Nov 29, 2019

This exception at runtime has me stumped:

Exception in thread "main" java.lang.IllegalArgumentException: Class java.nio.file.StandardWatchEventKinds$StdWatchEventKind[] is instantiated reflectively but was never registered. Register the class by using org.graalvm.nativeimage.hosted.RuntimeReflection
	at com.oracle.svm.core.genscavenge.graal.AllocationSnippets.checkArrayHub(AllocationSnippets.java:172)
	at clojure.lang.RT.seqToTypedArray(RT.java:1753)
	at clojure.lang.RT.seqToTypedArray(RT.java:1749)
	at clojure.core$into_array.invokeStatic(core.clj:3452)
	at clojure.core$into_array.invoke(core.clj:3443)
	at hawk.watcher$recursive_register_BANG_.invokeStatic(watcher.clj:39)
	at hawk.watcher$recursive_register_BANG_.invoke(watcher.clj:38)
	at hawk.watcher$fn__109.invokeStatic(watcher.clj:73)
	at hawk.watcher$fn__109.invoke(watcher.clj:72)
	at hawk.watcher$fn__38$G__29__47.invoke(watcher.clj:24)
	at hawk.core$watch_BANG_.invokeStatic(core.clj:83)
	at hawk.core$watch_BANG_.doInvoke(core.clj:59)
	at clojure.lang.RestFn.invoke(RestFn.java:410)
	at fc4.io.watch$start.invokeStatic(watch.clj:124)
	at fc4.io.cli.main$start.invokeStatic(main.clj:188)
	at fc4.io.cli.main$_main$fn__24295.invoke(main.clj:203)
	at fc4.io.cli.main$_main.invokeStatic(main.clj:203)
	at fc4.io.cli.main$_main.doInvoke(main.clj:192)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at fc4.io.cli.main.main(Unknown Source)

FWIW, the reflection.json file is zipped below:

reflection.json.zip

@teesloane
Copy link

@sogaiu - did you ever find a solution for this ? I'm running into a similar error using graal and a file watcher library. I'm trying to setup my reflection file to include the java.nio.file.StandardWatchEventKinds$StdWatchEventKind[] but haven't had much luck.

@sogaiu
Copy link
Contributor

sogaiu commented May 10, 2020

@teesloane I don't think I did.

My recommendation is to ask on clojurians slack #graalvm channel about your specific situation.

@teesloane
Copy link

teesloane commented May 10, 2020

@sogaiu will do, thanks!

edit: solution was to add this to my reflection file:

[
  {
    "name" : "java.nio.file.StandardWatchEventKinds$StdWatchEventKind[]"
  }
]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants