chaokunyang commented on issue #1555:
URL: 
https://github.com/apache/incubator-fury/issues/1555#issuecomment-2072910978

   Hi @alessiodf , thanks for reporting this bug. Fury do not support 
compatible mode on graalvm. I tested it locally, and it throw following 
exception:
   ```java
   Error: Class initialization of org.apache.fury.graalvm.ThreadSafeExample 
failed. Use the option 
   
       '--initialize-at-run-time=org.apache.fury.graalvm.ThreadSafeExample'
   
    to explicitly request initialization of this class at run time.
   com.oracle.svm.core.util.UserError$UserException: Class initialization of 
org.apache.fury.graalvm.ThreadSafeExample failed. Use the option 
   
       '--initialize-at-run-time=org.apache.fury.graalvm.ThreadSafeExample'
   
    to explicitly request initialization of this class at run time.
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.core.util.UserError.abort(UserError.java:85)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.ensureClassInitialized(ClassInitializationSupport.java:195)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ProvenSafeClassInitializationSupport.forceInitializeHosted(ProvenSafeClassInitializationSupport.java:219)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ProvenSafeClassInitializationSupport.initializeAtBuildTime(ProvenSafeClassInitializationSupport.java:195)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.initializeAtBuildTime(ClassInitializationSupport.java:224)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.InitKind.lambda$stringConsumer$2(InitKind.java:87)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.lambda$processClassInitializationOptions$1(ClassInitializationFeature.java:91)
           at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
           at 
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
           at 
java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
           at 
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
           at 
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
           at 
java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
           at 
java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
           at 
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
           at 
java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationFeature.processClassInitializationOptions(ClassInitializationFeature.java:81)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.setupNativeImage(NativeImageGenerator.java:879)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.doRun(NativeImageGenerator.java:590)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGenerator.run(NativeImageGenerator.java:550)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.buildImage(NativeImageGeneratorRunner.java:538)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.build(NativeImageGeneratorRunner.java:720)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.start(NativeImageGeneratorRunner.java:142)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.NativeImageGeneratorRunner.main(NativeImageGeneratorRunner.java:97)
   Caused by: java.lang.ExceptionInInitializerError
           at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native 
Method)
           at 
java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1160)
           at 
org.graalvm.nativeimage.builder/com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.ensureClassInitialized(ClassInitializationSupport.java:177)
           ... 22 more
   Caused by: java.lang.RuntimeException: Create compatible serializer failed, 
   class: class org.apache.fury.graalvm.Foo
           at 
org.apache.fury.serializer.CodegenSerializer.loadCompatibleCodegenSerializer(CodegenSerializer.java:57)
           at 
org.apache.fury.resolver.ClassResolver.lambda$getObjectSerializerClass$4(ClassResolver.java:957)
           at 
org.apache.fury.builder.JITContext.registerSerializerJITCallback(JITContext.java:131)
           at 
org.apache.fury.resolver.ClassResolver.getObjectSerializerClass(ClassResolver.java:952)
           at 
org.apache.fury.resolver.ClassResolver.getSerializerClass(ClassResolver.java:875)
           at 
org.apache.fury.resolver.ClassResolver.getSerializerClass(ClassResolver.java:772)
           at 
org.apache.fury.resolver.ClassResolver.createSerializer(ClassResolver.java:1158)
           at 
org.apache.fury.resolver.ClassResolver.getOrUpdateClassInfo(ClassResolver.java:1097)
           at 
org.apache.fury.resolver.ClassResolver.getSerializer(ClassResolver.java:743)
           at 
org.apache.fury.resolver.ClassResolver.register(ClassResolver.java:403)
           at org.apache.fury.Fury.register(Fury.java:154)
           at 
org.apache.fury.graalvm.ThreadSafeExample.lambda$static$0(ThreadSafeExample.java:45)
           at 
org.apache.fury.util.LoaderBinding.setClassLoader(LoaderBinding.java:127)
           at 
org.apache.fury.util.LoaderBinding.setClassLoader(LoaderBinding.java:95)
           at 
org.apache.fury.ThreadLocalFury.lambda$new$2(ThreadLocalFury.java:59)
           at 
java.base/java.lang.ThreadLocal$SuppliedThreadLocal.initialValue(ThreadLocal.java:357)
           at 
java.base/java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:225)
           at java.base/java.lang.ThreadLocal.get(ThreadLocal.java:194)
           at java.base/java.lang.ThreadLocal.get(ThreadLocal.java:172)
           at org.apache.fury.ThreadLocalFury.<init>(ThreadLocalFury.java:67)
           at 
org.apache.fury.graalvm.ThreadSafeExample.<clinit>(ThreadSafeExample.java:40)
           ... 25 more
   Caused by: java.lang.IllegalStateException: Field offset will change between 
graalvm build time and runtime, should bye accessed by following graalvm auto 
rewrite pattern.
           at 
org.apache.fury.util.ReflectionUtils.getFieldOffset(ReflectionUtils.java:374)
           at 
org.apache.fury.util.FieldAccessor.createAccessor(FieldAccessor.java:118)
           at 
org.apache.fury.resolver.FieldResolver$FieldInfo.<init>(FieldResolver.java:721)
           at 
org.apache.fury.resolver.FieldResolver.<init>(FieldResolver.java:279)
           at org.apache.fury.resolver.FieldResolver.of(FieldResolver.java:206)
           at 
org.apache.fury.builder.CodecUtils.loadOrGenCompatibleCodecClass(CodecUtils.java:56)
           at 
org.apache.fury.serializer.CodegenSerializer.loadCompatibleCodegenSerializer(CodegenSerializer.java:54)
           ... 45 more
   ```
   
   We need to make `FieldResolver` support graalvm


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to