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

   ## What changes were proposed in this pull request?
   
   `SnapshotCache.get` let only `FILE_NOT_FOUND` escape the `dbMap.compute` 
lambda and rewrapped every other `OMException` from the loader in an 
`IllegalStateException`. The loader raises `TIMEOUT` when a snapshot's create 
transaction has not been flushed yet, the retriable condition the HDDS-13633 
poll exists for.
   
   `handleReadRequest` maps only `IOException` to a response status, so that 
`IllegalStateException` left the OM through Hadoop IPC and the client got an 
unstructured `RemoteException` instead of status `TIMEOUT` and its retry hint.
   
   - Rethrow an `OMException` from the loader with its result code intact 
instead of wrapping it in `IllegalStateException`.
   - Add a regression test for a loader that throws `TIMEOUT`.
   
   The `IOException` and generic `Exception` branches stay wrapped since they 
carry no result code to preserve. The fix is the patch the reporter attached to 
the JIRA, adjusted to the conventions of the surrounding code in a second 
commit.
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-16691
   
   ## How was this patch tested?
   
   `TestSnapshotCache` passes with the fix. With `SnapshotCache.java` reverted 
to master and the new test kept, only `testGetPropagatesLoadTimeout` fails, 
with `expected: <OMException> but was: <IllegalStateException>`. Checkstyle on 
`ozone-manager` is clean.
   
   Generated-by: Specula (Claude Opus 5) for the JIRA patch; Claude Code (Fable 
5.1) for the review adjustments and this description
   


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