adoroszlai opened a new pull request #1774: URL: https://github.com/apache/ozone/pull/1774
## What changes were proposed in this pull request? HDDS-4320 added the following logic in `BlockInputStream`: https://github.com/apache/ozone/blob/77bf7ad7c1a70e9e1d7aaeb3ec006f19ae8d3089/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/storage/BlockInputStream.java#L287-L292 `handleReadError` tries to refresh the pipeline. If it gets a new one, read is retried on that. Otherwise it re-throws the exception to exit the loop. https://github.com/apache/ozone/blob/77bf7ad7c1a70e9e1d7aaeb3ec006f19ae8d3089/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/storage/BlockInputStream.java#L171-L173 Pipeline equality includes the pipeline ID, but SCM constructs a new on-demand pipeline for reading from a single node. The result is that the client thinks there is a new pipeline and retries. This PR proposes to skip retry if the pipeline has the same set of nodes that failed in the previous iteration. https://issues.apache.org/jira/browse/HDDS-4667 ## How was this patch tested? Added unit test that reproduces the infinite loop without the fix. ---------------------------------------------------------------- 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. For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
