You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fury.apache.org by "deadpoolssr (via GitHub)" <gi...@apache.org> on 2024/09/12 02:32:37 UTC

[I] [Question] 线上反序列化报错 [fury]

deadpoolssr opened a new issue, #1838:
URL: https://github.com/apache/fury/issues/1838

   ### Question
   
   线上代码
   
   
    ThreadSafeFury fury = Fury.builder().withLanguage(Language.JAVA)
                   .requireClassRegistration(false)
                   .withCompatibleMode(CompatibleMode.COMPATIBLE)
                   .withClassLoader(classLoader)
                   .buildThreadSafeFury();
   
   fury.setClassLoader(classLoader, LoaderBinding.StagingType.SOFT_STAGING);
   return fury.deserialize(bytes);
   
   报错堆栈
   java.lang.IllegalAccessException: no such constructor: com.alibaba.alsc.chameleon.api.model.region.ChameleonCardFuryCompatibleCodec_1_1116884706_299406744.<init>(Fury,Class)void/invokeSpecial
     at java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:959)
     at java.base/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1101)
     at java.base/java.lang.invoke.MethodHandles$Lookup.resolveOrFail(MethodHandles.java:2030)
     at java.base/java.lang.invoke.MethodHandles$Lookup.findConstructor(MethodHandles.java:1264)
     at org.apache.fury.serializer.Serializers.createSerializer(Serializers.java:126)
     at org.apache.fury.serializer.Serializers.newSerializer(Serializers.java:103)
     at org.apache.fury.resolver.ClassResolver.createSerializer(ClassResolver.java:1179)
     at org.apache.fury.resolver.ClassResolver.getClassInfo(ClassResolver.java:1072)
     at org.apache.fury.resolver.ClassResolver.readClassInfoFromBytes(ClassResolver.java:1634)
     at org.apache.fury.resolver.ClassResolver.readClassInfoFromBytes(ClassResolver.java:1607)
     at org.apache.fury.resolver.ClassResolver.readClassInfo(ClassResolver.java:1588)
     at org.apache.fury.serializer.collection.AbstractCollectionSerializer.generalJavaRead(AbstractCollectionSerializer.java:617)
     at org.apache.fury.serializer.collection.AbstractCollectionSerializer.readElements(AbstractCollectionSerializer.java:545)
     at org.apache.fury.serializer.collection.CollectionSerializer.read(CollectionSerializer.java:53)
     at org.apache.fury.serializer.collection.CollectionSerializer.read(CollectionSerializer.java:27)
     at org.apache.fury.Fury.readDataInternal(Fury.java:923)
     at org.apache.fury.Fury.readRef(Fury.java:838)
     at org.apache.fury.serializer.collection.AbstractMapSerializer.generalJavaRead(AbstractMapSerializer.java:569)
     at org.apache.fury.serializer.collection.AbstractMapSerializer.genericJavaRead(AbstractMapSerializer.java:443)
     at org.apache.fury.serializer.collection.AbstractMapSerializer.readElements(AbstractMapSerializer.java:435)
     at org.apache.fury.serializer.collection.MapSerializer.read(MapSerializer.java:46)
     at org.apache.fury.serializer.collection.MapSerializer.read(MapSerializer.java:27)
     at org.apache.fury.Fury.readDataInternal(Fury.java:923)
     at org.apache.fury.Fury.readRef(Fury.java:825)
     at org.apache.fury.Fury.deserialize(Fury.java:760)
     at org.apache.fury.Fury.deserialize(Fury.java:682)
     at org.apache.fury.ThreadLocalFury.deserialize(ThreadLocalFury.java:130)
     at com.alibaba.kondyle.service.contrib.solution.impl.protocol.FuryProtocol.deserializeResponseInner(FuryProtocol.java:40)
     at com.alibaba.kondyle.service.contrib.solution.impl.protocol.AbstractProtocol$DeserializeFunction.apply(AbstractProtocol.java:42)
     at com.alibaba.kondyle.service.contrib.solution.impl.protocol.AbstractProtocol$DeserializeFunction.apply(AbstractProtocol.java:34)
     at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642)
     at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
     at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
     at com.alibaba.kondyle.concurrent.future.MonitorCompletableFuture.complete(MonitorCompletableFuture.java:105)
     at com.alibaba.glaucus.concurrent.SolutionInvokerGrpcImpl$RpcFinishCallback.accept(SolutionInvokerGrpcImpl.java:865)
     at com.alibaba.glaucus.concurrent.SolutionInvokerGrpcImpl$RpcFinishCallback.accept(SolutionInvokerGrpcImpl.java:828)
     at com.alibaba.glaucus.concurrent.SolutionInvokerGrpcImpl.lambda$invokeAsyncInnerSpan$43(SolutionInvokerGrpcImpl.java:395)
     at java.base/java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:930)
     at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:907)
     at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
     at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
     at com.alibaba.glaucus.concurrent.SolutionInvokeGrpcCallback.onResponse(SolutionInvokeGrpcCallback.java:42)
     at com.alibaba.kondyle.mesh.grpc.GrpcConsumer$2.handleNormal(GrpcConsumer.java:262)
     at com.alibaba.kondyle.mesh.grpc.client.ResultConsumer.accept(ResultConsumer.java:27)
     at com.alibaba.kondyle.mesh.grpc.processor.client.RevealProcessor$RevealProcessorListener.handleNormal(RevealProcessor.java:85)
     at com.alibaba.kondyle.mesh.grpc.client.ResultConsumer.accept(ResultConsumer.java:27)
     at com.alibaba.kondyle.mesh.grpc.processor.client.MulticastProcessor$MultiCastListener.handleNormal(MulticastProcessor.java:124)
     at com.alibaba.kondyle.mesh.grpc.client.ResultConsumer.accept(ResultConsumer.java:27)
     at com.alibaba.kondyle.mesh.grpc.processor.client.TailOutboundProcessor$1.onCompleted(TailOutboundProcessor.java:87)
     at com.alibaba.kondyle.mesh.grpc.processor.client.TailOutboundProcessor$1.onCompleted(TailOutboundProcessor.java:54)
     at com.alibaba.glaucus.rpc.RpcClientServiceImpl$GlaucusStreamObserver.onResponseInner(RpcClientServiceImpl.java:394)
     at com.alibaba.glaucus.rpc.RpcClientServiceImpl$GlaucusStreamObserver.onNext(RpcClientServiceImpl.java:359)
     at com.alibaba.glaucus.rpc.RpcClientServiceImpl$GlaucusStreamObserver.onNext(RpcClientServiceImpl.java:330)
     at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onMessage(ClientCalls.java:440)
     at io.grpc.ForwardingClientCallListener.onMessage(ForwardingClientCallListener.java:33)
     at com.alibaba.tpp.rpc.client.MeshClientInterceptor$1$1.onMessage(MeshClientInterceptor.java:168)
     at io.grpc.ForwardingClientCallListener.onMessage(ForwardingClientCallListener.java:33)
     at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInternal(ClientCallImpl.java:658)
     at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1MessagesAvailable.runInContext(ClientCallImpl.java:643)
     at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
     at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
     at java.base/java.lang.Thread.run(Thread.java:991)
     at java.base/com.alibaba.wisp.engine.WispTask.runOutsideWisp(WispTask.java:308)
     at java.base/com.alibaba.wisp.engine.WispTask.runCommand(WispTask.java:297)
     at java.base/com.alibaba.wisp.engine.WispTask$CacheableCoroutine.run(WispTask.java:269)
     at java.base/java.dyn.CoroutineBase.startInternal(CoroutineBase.java:74)
   Caused by: java.lang.LinkageError: bad method type alias: (Fury,Class)void not visible from class com.alibaba.alsc.chameleon.api.model.region.ChameleonCardFuryCompatibleCodec_1_1116884706_299406744
     at java.base/java.lang.invoke.MemberName.checkForTypeAlias(MemberName.java:872)
     at java.base/java.lang.invoke.MemberName$Factory.resolve(MemberName.java:1074)
     at java.base/java.lang.invoke.MemberName$Factory.resolveOrFail(MemberName.java:1098)
     ... 66 more
   
   
   但把这个byte[]复制到本地之后,反序列化是可以成功的,可能是什么原因?
   
   
   


-- 
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: commits-unsubscribe@fury.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fury.apache.org
For additional commands, e-mail: commits-help@fury.apache.org


Re: [I] [Question] 线上反序列化报错 [fury]

Posted by "chaokunyang (via GitHub)" <gi...@apache.org>.
chaokunyang commented on issue #1838:
URL: https://github.com/apache/fury/issues/1838#issuecomment-2348144309

   If not, please provide reproduction code in this issue, we can't trouble shooting without reproduction code


-- 
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: commits-unsubscribe@fury.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fury.apache.org
For additional commands, e-mail: commits-help@fury.apache.org


Re: [I] [Question] 线上反序列化报错 [fury]

Posted by "chaokunyang (via GitHub)" <gi...@apache.org>.
chaokunyang commented on issue #1838:
URL: https://github.com/apache/fury/issues/1838#issuecomment-2348141307

   Seems it's a classloader issue in your project instead of Fury issue. Maybe you included two Fury jars in different classloaders, so it throws ` java.lang.LinkageError: bad method type alias: (Fury,Class)void not visible from class`


-- 
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: commits-unsubscribe@fury.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@fury.apache.org
For additional commands, e-mail: commits-help@fury.apache.org