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

   ## What changes were proposed in this pull request?
   EC reconstruction reads use asynchronous cell reads to fill stripe buffers. 
When the reader thread is interrupted while waiting for a cell read, the 
current wait loop restores its interrupt status before waiting for the 
remaining reads. Those waits can immediately throw InterruptedException again, 
allowing the reconstruction read to return before all cell reads finish. A 
subsequent `close()` or `unbuffer()` can then return the stripe buffers to the 
pool while outstanding cell reads are still writing into them.
   
   This pull request:
   - Waits for all cell reads to finish before propagating interruption, so 
buffers can be safely reused or returned to the pool.
   - Runs unstarted cell reads in the caller, including tasks dropped or 
rejected after executor shutdown.
   - Preserves the caller's interrupt status while temporarily clearing a 
pre-existing interrupt during cell read execution, including through 
`CallerRunsPolicy`.
   - Adds regression tests for interrupted reads, buffer reuse after `close()` 
and `unbuffer()`, positioned-read cleanup, and executor shutdown, rejection, 
and saturation.
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-17003
   
   ## How was this patch tested?
   
   Local Tests
   ```
   mvn -pl :hdds-client test \
     
-Dtest=TestECBlockInputStream,TestECBlockInputStreamProxy,TestECBlockReconstructedInputStream,TestECBlockReconstructedStripeInputStream
 \
     -Dsurefire.failIfNoSpecifiedTests=true \
     -DskipShade -DskipRecon
   ```
   
   GitHub Actions CI: 
https://github.com/echonesis/ozone/actions/runs/41998472128
   
   Generated-by: Codex (GPT-6)


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