sunchao commented on code in PR #3744:
URL: https://github.com/apache/celeborn/pull/3744#discussion_r3476313093
##########
common/src/main/java/org/apache/celeborn/common/client/MasterClient.java:
##########
@@ -186,13 +189,28 @@ private boolean shouldRetry(@Nullable RpcEndpointRef
oldRef, Throwable e) {
resetRpcEndpointRef(oldRef);
}
return true;
- } else if (e.getCause() instanceof IOException || e instanceof
RpcTimeoutException) {
+ } else if (isRetryableRpcFailure(e)) {
resetRpcEndpointRef(oldRef);
return true;
}
return false;
}
+ private boolean isRetryableRpcFailure(Throwable throwable) {
+ Throwable current = throwable;
+ while (current != null) {
+ if (current instanceof IOException || current instanceof
RpcTimeoutException) {
Review Comment:
Fixed in eedab7ef7. `isRetryableRpcFailure` now preserves the original
`throwable.getCause() instanceof IOException || throwable instanceof
RpcTimeoutException` checks, and only walks the cause chain for
`OutboxStoppedException`. I also added nested IOException/RpcTimeout regression
tests.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]