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

   ## What changes were proposed in this pull request?
   `MiniOzoneClusterProvider` creates clusters on a background thread and 
passes them to consumers through a bounded blocking queue. Previously, an 
`IOException` or `TimeoutException` during cluster creation terminated the 
background thread. The queue was then never refilled, causing every subsequent 
`provide()` call to wait for 100 seconds and fail with the misleading `Failed 
to obtain available cluster in time` message.
   
   This change passes both successful clusters and build failures through the 
existing bounded queue:
   - A failed build is surfaced immediately from the affected `provide()` call, 
with the original exception preserved as its cause.
   - The background create thread continues building clusters after a failure.
   - A partially created cluster is shut down before the failure is published.
   - Subsequent `provide()` calls can receive successfully created clusters.
   - Failed builds do not count toward the configured cluster limit.
   
   The queue capacity remains one and `put()` is blocking, providing natural 
backpressure when builds fail persistently. This prevents the create thread 
from processing failures in an unbounded tight loop without introducing a retry 
limit, backoff duration, or polling interval.
   
   The change limits the blast radius of an individual cluster startup failure. 
It does not attempt to address the underlying cause of slow cluster startup.
   
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/HDDS-16120
   
   ## How was this patch tested?
   
   Local Test
   ```shell
   mvn -pl :ozone-mini-cluster test \
       -Dtest=TestMiniOzoneClusterProvider \
       -DskipShade -DskipRecon -DskipDocs
   ```
   
   GitHub Actions CI: 
https://github.com/echonesis/ozone/actions/runs/31478614848
   
   Generated-by: Codex (GPT-5)


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