alibaba / alibaba/Sentinel

sentinel-apache-dubbo-adapter 在异步模式下永远取不到异常

Open
#2,322 2 comments 0 reactions 0 assignees View on GitHub
area/integrations good first issue
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.