Serialize response failed
- 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
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