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