sentinel-apache-dubbo-adapter 在异步模式下永远取不到异常
- Dominant language
- Java
- Stars
- 23.1k
- Forks
- 8.1k
- PR merge metrics
- No merged PRs in 30d
Description
代码:
https://github.com/alibaba/Sentinel/blob/4498de480f368d6bf63afbfda42797172c89573b/sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java#L73
在 dubbo 2.7.5 后,所有`Filter`均支持异步操作,返回的 `Result` 对象通常是 `AsyncRpcResult`,对 `AsyncRpcResult` 调用`hasException()` 时如果异步任务未完成,则使用默认的返回值,永远不包含异常。
https://github.com/apache/dubbo/blob/9c49efeacfd87d2d4409fb000cebd58e1114ec8a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/AsyncRpcResult.java#L143-L155
Contributor guide
Research direction
Start at sentinel-adapter/sentinel-dubbo-adapter/src/main/java/com/alibaba/csp/sentinel/adapter/dubbo/SentinelDubboProviderFilter.java#L73 and compare its result handling with the linked Apache Dubbo AsyncRpcResult implementation. Trace how asynchronous completion affects exception detection; the work is done when exceptions from asynchronous results are reliably observed instead of being missed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100