Closed beastqin closed 1 year ago
@EarthChen @icodening PTAL
@beastqin 可以尝试使用3.2.3
,相关PR https://github.com/apache/dubbo/pull/12446
我也遇到这个问题,使用3.2.3也不行,会报超时异常。
2023-07-04 15:13:43.305 WARN 11230 --- [imeout-thread-1] o.a.dubbo.common.timer.HashedWheelTimer : [DUBBO] An exception was thrown by TimerTask., dubbo version: 3.2.3, current host: 192.168.1.24, error code: 0-19. This may be caused by , go to https://dubbo.apache.org/faq/0/19 to find instructions.
java.util.concurrent.RejectedExecutionException: null
at org.apache.dubbo.common.threadpool.ThreadlessExecutor.execute(ThreadlessExecutor.java:101) ~[dubbo-3.2.3.jar:3.2.3]
at org.apache.dubbo.rpc.protocol.tri.DeadlineFuture$TimeoutCheckTask.run(DeadlineFuture.java:153) ~[dubbo-3.2.3.jar:3.2.3]
at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:653) ~[dubbo-3.2.3.jar:3.2.3]
at org.apache.dubbo.common.timer.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:732) ~[dubbo-3.2.3.jar:3.2.3]
at org.apache.dubbo.common.timer.HashedWheelTimer$Worker.run(HashedWheelTimer.java:454) ~[dubbo-3.2.3.jar:3.2.3]
at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
version:dubbo 3.2.2 现象:使用 triple 协议 + IDL(protobuf stub),provider 端抛出
RpcException
后,consumer 端无法捕获具体的code
,统一为Unknown,同理自定义异常也被处理为 Unknow RpcException。Provider 端异常抛出代码:
Consumer 端日志打印:debug get rpc ex: org.apache.dubbo.rpc.StatusRpcException: UNKNOWN : test exception
因为比较疑惑,Dubbo 3.2.0 版本开始 Triple 协议支持回传自定义异常,所以扒了下原因:
看上去 TripleServerStream 在存在 stub 被调用时,会选用默认关闭 Exception Wrapper 的序列化选项的 StubAbstractServerCall。 所以,使用 IDL 调用是无法处理自定义异常吗?以及标准的 RpcException 的处理似乎也有问题。后续会解决这个问题吗?