smengcl opened a new pull request, #11698:
URL: https://github.com/apache/ozone/pull/11698

   Generated-by: Claude Code (Opus 5.5)
   
   ## What changes were proposed in this pull request?
   
   SCM converts errors that should be retried on the same SCM (Ratis 
`LeaderNotReadyException`, `ReconfigurationInProgressException`, 
`ReconfigurationTimeoutException`, `ResourceUnavailableException`, and some 
certificate failures) to `RetriableWithNoFailoverException`. The SCM client 
checks for it in `SCMHAUtils.checkRetriableWithNoFailoverException`, using the 
exception unwrapped from `RemoteException`. But 
`RetriableWithNoFailoverException` has no `String` constructor, so 
`RemoteException.unwrapRemoteException()` cannot create it and returns the 
`RemoteException` itself. The check never matches, and the client fails over to 
another SCM instead of retrying the same one.
   
   This change also matches the class name of the `RemoteException`, so the 
client retries the same SCM (up to the configured retry count) as intended.
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-17320
   
   ## How was this patch tested?
   
   Added `TestSCMHAUtils#retriesSameScmOnRetriableWithNoFailoverException`, 
which fails without the fix. Existing `TestSCMFailoverProxyProvider*` tests 
pass.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
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]

Reply via email to