apache / apache/dubbo

Serialize response failed

Open
#12,160 1 comment 0 reactions 0 assignees View on GitHub
type/bug
Dominant language
Java
Stars
41.6k
Forks
26.4k
Avg merge
15h 13m
Merged PRs (30d)
4

Description

在压力测试下会出现这个序列化错误,这个属于dubbo内部错误,不知道怎么解决,难道其他人没有这个问题吗?

org.apache.dubbo.rpc.StatusRpcException: INTERNAL : Serialize response failed
java.lang.RuntimeException: Serialized class org.apache.dubbo.rpc.TriRpcStatus must implement java.io.Serializable
Java field: private final org.apache.dubbo.rpc.TriRpcStatus org.apache.dubbo.rpc.StatusRpcException.status
at com.alibaba.com.caucho.hessian.io.JavaSerializer$FieldSerializer.serialize(JavaSerializer.java:304)
at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeInstance(JavaSerializer.java:284)
at com.alibaba.com.caucho.hessian.io.JavaSerializer.writeObject(JavaSerializer.java:251)
at com.alibaba.com.caucho.hessian.io.ThrowableSerializer.writeObject(ThrowableSerializer.java:68)

at org.apache.dubbo.rpc.TriRpcStatus.asException(TriRpcStatus.java:214) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at org.apache.dubbo.rpc.protocol.tri.call.UnaryClientCallListener.onClose(UnaryClientCallListener.java:51) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at org.apache.dubbo.rpc.protocol.tri.call.TripleClientCall.onComplete(TripleClientCall.java:127) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at org.apache.dubbo.rpc.protocol.tri.stream.TripleClientStream$ClientTransportListener.finishProcess(TripleClientStream.java:241) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at org.apache.dubbo.rpc.protocol.tri.stream.TripleClientStream$ClientTransportListener$1.close(TripleClientStream.java:323) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at org.apache.dubbo.rpc.protocol.tri.frame.TriDecoder.deliver(TriDecoder.java:102) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at org.apache.dubbo.rpc.protocol.tri.frame.TriDecoder.close(TriDecoder.java:68) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at org.apache.dubbo.rpc.protocol.tri.stream.TripleClientStream$ClientTransportListener.onTrailersReceived(TripleClientStream.java:343) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at org.apache.dubbo.rpc.protocol.tri.stream.TripleClientStream$ClientTransportListener.lambda$onHeader$1(TripleClientStream.java:388) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at org.apache.dubbo.common.threadpool.serial.SerializingExecutor.run(SerializingExecutor.java:102) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_201]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_201]
at org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:41) ~[dubbo-3.2.0-beta.3.jar:3.2.0-beta.3]
at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_201]

Contributor guide

Open the contributing guide

Research direction

Start with org.apache.dubbo.rpc.TriRpcStatus.asException and follow the serialization stack through UnaryClientCallListener and Hessian's JavaSerializer. Reproduce the failure under the reported stress-test conditions and inspect how StatusRpcException.status is serialized. Done means the response no longer fails with the reported Serialize response failed error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
distributed-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.