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

   ## What changes were proposed in this pull request?
   HDDS-16207. Streaming read hangs until read timeout on out-of-range 
ReadBlock offsets
   
   Please describe your PR in detail:
   When a streaming read (StreamBlockInputStream / ReadBlock) requests an 
offset at or past the end of the block, the client does not get an error or an 
EOF — it blocks until the stream read timeout (default PT10S) expires. 
   The fix includes:
   1. clamp readLength in readBlock() so requestedLength never exceeds 
blockLength
   2. have the datanode reject a ReadBlock whose raw offset is >= block size 
with gRPC OUT_OF_RANGE via streamObserver.onError (not a thrown exception, so 
the client fault is not converted to CONTAINER_INTERNAL_ERROR or treated as 
container corruption by the dispatcher)
   3. make StreamingReader fail the stream immediately on non-SUCCESS response 
protos and on non-CANCELLED gRPC errors.
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-16207
   
   ## How was this patch tested?
   1. UT coverage
   2. HBase cluster with root dir pointed to Ozone FS under YCSB workloads. 


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