ss77892 commented on code in PR #9016:
URL: https://github.com/apache/ozone/pull/9016#discussion_r2334740265
##########
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java:
##########
@@ -537,7 +537,11 @@ public OMResponse checkRetryCache() throws
ServiceException {
}
//cache hit
try {
- return getOMResponse(cacheEntry.getReplyFuture().get());
+ RaftClientReply reply = cacheEntry.getReplyFuture().get();
+ if(!reply.isSuccess()) {
+ return null;
+ }
Review Comment:
The actual question is whether a failed OM request should be considered
idempotent. We have a case where the request failed due to the absence of a
leader. The request may have reached the RetryCache but not the Ratis log. The
client will automatically retry the operation without involving the app. If we
treat a failed request as idempotent, we’re effectively saying this operation
will never succeed, so those retries are pointless. In the HDDS-11558 scenario,
the issue happens when the operation did succeed on the OM side (it landed in
the Ratis log), but the app got an exception. In that case, the app isn’t
involved, the client retries because it assumes the failure was temporary and
will resolve automatically. Anything I missed?
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]