You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[redis:18302] classlist: 16,318.17 ms
[redis:18302] (cap): 3,743.43 ms
[redis:18302] setup: 7,493.43 ms
Warning: class initialization of class io.micronaut.configuration.lettuce.session.$RedisHttpSessionConfigurationDefinition failed with exception java.lang.NoClassDefFoundError: io/micronaut/session/SessionConfiguration. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.micronaut.configuration.lettuce.session.$RedisHttpSessionConfigurationDefinition to explicitly request delayed initialization of this class.
Warning: class initialization of class io.micronaut.jackson.modules.AfterburnerModuleFactory failed with exception java.lang.NoClassDefFoundError: com/fasterxml/jackson/module/afterburner/AfterburnerModule. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.micronaut.jackson.modules.AfterburnerModuleFactory to explicitly request delayed initialization of this class.
Warning: class initialization of class io.micronaut.jackson.modules.KotlinModuleFactory failed with exception java.lang.NoClassDefFoundError: com/fasterxml/jackson/module/kotlin/KotlinModule. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.micronaut.jackson.modules.KotlinModuleFactory to explicitly request delayed initialization of this class.
Warning: class initialization of class io.netty.handler.ssl.util.BouncyCastleSelfSignedCertGenerator failed with exception java.lang.NoClassDefFoundError: org/bouncycastle/cert/X509v3CertificateBuilder. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.netty.handler.ssl.util.BouncyCastleSelfSignedCertGenerator to explicitly request delayed initialization of this class.
Warning: class initialization of class io.netty.handler.ssl.ReferenceCountedOpenSslClientContext failed with exception java.lang.NoClassDefFoundError: io/netty/internal/tcnative/CertificateRequestedCallback. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.netty.handler.ssl.ReferenceCountedOpenSslClientContext to explicitly request delayed initialization of this class.
Warning: class initialization of class io.netty.handler.ssl.ReferenceCountedOpenSslServerContext failed with exception java.lang.NoClassDefFoundError: io/netty/internal/tcnative/CertificateVerifier. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.netty.handler.ssl.ReferenceCountedOpenSslServerContext to explicitly request delayed initialization of this class.
Warning: class initialization of class io.netty.handler.ssl.JdkNpnApplicationProtocolNegotiator failed with exception java.lang.NoClassDefFoundError: org/eclipse/jetty/npn/NextProtoNego$Provider. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.netty.handler.ssl.JdkNpnApplicationProtocolNegotiator to explicitly request delayed initialization of this class.
12:26:13.689 [ForkJoinPool-2-worker-0] INFO io.lettuce.core.KqueueProvider - Starting without optional kqueue library
12:26:13.697 [ForkJoinPool-2-worker-0] INFO io.lettuce.core.EpollProvider - Starting without optional epoll library
Warning: class initialization of class io.netty.handler.ssl.ReferenceCountedOpenSslEngine failed with exception java.lang.NoClassDefFoundError: io/netty/internal/tcnative/SSL. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.netty.handler.ssl.ReferenceCountedOpenSslEngine to explicitly request delayed initialization of this class.
Warning: class initialization of class io.netty.handler.ssl.ConscryptAlpnSslEngine failed with exception java.lang.NoClassDefFoundError: org/conscrypt/BufferAllocator. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.netty.handler.ssl.ConscryptAlpnSslEngine to explicitly request delayed initialization of this class.
Warning: class initialization of class io.lettuce.core.metrics.DefaultCommandLatencyCollector$DefaultPauseDetectorWrapper failed with exception java.lang.NoClassDefFoundError: org/LatencyUtils/PauseDetector. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.lettuce.core.metrics.DefaultCommandLatencyCollector$DefaultPauseDetectorWrapper to explicitly request delayed initialization of this class.
Warning: RecomputeFieldValue.ArrayIndexScale automatic substitution failed. The automatic substitution registration was attempted because a call to sun.misc.Unsafe.arrayIndexScale(Class) was detected in the static initializer of reactor.core.publisher.RingBufferFields. Detailed failure reason(s): Could not determine the field where the value produced by the call to sun.misc.Unsafe.arrayIndexScale(Class) for the array index scale computation is stored. The call is not directly followed by a field store or by a sign extend node followed directly by a field store.
Warning: RecomputeFieldValue.ArrayBaseOffset automatic substitution failed. The automatic substitution registration was attempted because a call to sun.misc.Unsafe.arrayBaseOffset(Class) was detected in the static initializer of reactor.core.publisher.RingBufferFields. Detailed failure reason(s): Could not determine the field where the value produced by the call to sun.misc.Unsafe.arrayBaseOffset(Class) for the array base offset computation is stored. The call is not directly followed by a field store or by a sign extend node followed directly by a field store.
Warning: class initialization of class io.netty.handler.ssl.JettyNpnSslEngine failed with exception java.lang.NoClassDefFoundError: org/eclipse/jetty/npn/NextProtoNego$Provider. This class will be initialized at run time because either option --report-unsupported-elements-at-runtime or option --allow-incomplete-classpath is used for image building. Use the option --delay-class-initialization-to-runtime=io.netty.handler.ssl.JettyNpnSslEngine to explicitly request delayed initialization of this class.
[redis:18302] analysis: 141,420.74 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 io.lettuce.core.cluster.ClusterFutureSyncInvocationHandler.handleInvocation(ClusterFutureSyncInvocationHandler.java:86)
at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
at com.sun.proxy.$Proxy187.hashCode(Unknown Source)
at java.util.HashMap.hash(HashMap.java:339)
at java.util.HashMap.get(HashMap.java:557)
at com.oracle.svm.jni.access.JNIReflectionDictionary.getFieldNameByID(JNIReflectionDictionary.java:260)
at com.oracle.svm.jni.functions.JNIFunctions.ToReflectedField(JNIFunctions.java:842)
at com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_ToReflectedField_80d8233579d5215df0227b770e5c01228a0de9b9(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:500)
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 io.lettuce.core.cluster.ClusterFutureSyncInvocationHandler.handleInvocation(ClusterFutureSyncInvocationHandler.java:86)
at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
at com.sun.proxy.$Proxy187.hashCode(Unknown Source)
at java.util.HashMap.hash(HashMap.java:339)
at java.util.HashMap.get(HashMap.java:557)
at com.oracle.svm.jni.access.JNIReflectionDictionary.getFieldNameByID(JNIReflectionDictionary.java:260)
at com.oracle.svm.jni.functions.JNIFunctions.ToReflectedField(JNIFunctions.java:842)
at com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_ToReflectedField_80d8233579d5215df0227b770e5c01228a0de9b9(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 io.lettuce.core.cluster.ClusterFutureSyncInvocationHandler.handleInvocation(ClusterFutureSyncInvocationHandler.java:86)
at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
at com.sun.proxy.$Proxy187.hashCode(Unknown Source)
at java.util.HashMap.hash(HashMap.java:339)
at java.util.HashMap.get(HashMap.java:557)
at com.oracle.svm.jni.access.JNIReflectionDictionary.getFieldNameByID(JNIReflectionDictionary.java:260)
at com.oracle.svm.jni.functions.JNIFunctions.ToReflectedField(JNIFunctions.java:842)
at com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_ToReflectedField_80d8233579d5215df0227b770e5c01228a0de9b9(generated:0)
Error: type is not available in this platform: org.graalvm.nativeimage.impl.ImageSingletonsSupport
Error: type is not available in this platform: org.graalvm.nativeimage.impl.ImageSingletonsSupport
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$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.genericMethodType(MethodType.java:338)
at java.lang.invoke.MethodType.genericMethodType(MethodType.java:356)
at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:626)
at io.lettuce.core.cluster.ClusterFutureSyncInvocationHandler.handleInvocation(ClusterFutureSyncInvocationHandler.java:86)
at io.lettuce.core.internal.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:80)
at com.sun.proxy.$Proxy187.hashCode(Unknown Source)
at java.util.HashMap.hash(HashMap.java:339)
at java.util.HashMap.get(HashMap.java:557)
at com.oracle.svm.jni.access.JNIReflectionDictionary.getFieldNameByID(JNIReflectionDictionary.java:260)
at com.oracle.svm.jni.functions.JNIFunctions.ToReflectedField(JNIFunctions.java:842)
at com.oracle.svm.core.code.IsolateEnterStub.JNIFunctions_ToReflectedField_80d8233579d5215df0227b770e5c01228a0de9b9(generated:0)
Error: Use -H:+ReportExceptionStackTraces to print stacktrace of underlying exception
Error: Image building with exit status 1
The text was updated successfully, but these errors were encountered:
@ilopmar from the image build failure I see that you get Invoke with MethodHandle argument could not be reduced to at most a single call errors. The native-image MethodHandle support is limited to cases where the MethodHandle object is a compile time constant. In that case we can constant fold and recursively inline until we get to a concrete method invocation. There is more work to be done to gracefully recover when we find a non-constant MethodHandle argument during image build time and report the problem at runtime instead.
To reproduce the issue:
git clone https://github.com/micronaut-graal-tests/micronaut-redis-graal
cd micronaut-redis-graal
./build-native-image.sh
The image generation fails with:
The text was updated successfully, but these errors were encountered: