ss77892 commented on PR #11080: URL: https://github.com/apache/ozone/pull/11080#issuecomment-5958552170
> Thanks for putting this together! @ss77892 I was able to reproduce the failure end to end by shortening `ozone.client.read.timeout`, and the new tests are indeed red without the production changes. > > Since this PR fixes multiple reproducible issues, would it be worth considering separate Jira/PRs?I think that could make each behavior change easier to understand and review. I’ve also left two inline questions for your consideration. Thanks! @chihsuan Thanks for the review and for reproducing it. Agreed, I split it. The PR now does only the minimum needed to fix HDDS-16241: - XceiverClientGrpc.initStreamRead no longer sets a gRPC deadline on the streaming call. Each request is still bounded by streamReadTimeout in streamRead() and StreamingReader.poll(). - StreamBlockInputStream treats DEADLINE_EXCEEDED as a connectivity issue and fails over to another datanode, the same way it handles UNAVAILABLE. Classic BlockInputStream is unchanged. - The datanode closes the block file of an idle streaming read (see the inline thread). The other fixes (stream poisoning, retry classification, half-closed failed calls, stale prefetch offset after unbuffer, request-permit exhaustion) will come in separate Jiras/PRs, each with its own reproducing test. -- 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]
