Ren Koike created HDDS-16265:
--------------------------------

             Summary: Bound the executePutBlockClose retry in 
BlockDataStreamOutput
                 Key: HDDS-16265
                 URL: https://issues.apache.org/jira/browse/HDDS-16265
             Project: Apache Ozone
          Issue Type: Improvement
          Components: Ozone Client
            Reporter: Ren Koike
            Assignee: Ren Koike


BlockDataStreamOutput.executePutBlock() has an unbounded recursive retry in the 
close path: if executePutBlockClose fails, the whenComplete callback calls 
executePutBlock(true, false) recursively with no limit. On persistent failure 
this can stack overflow or loop indefinitely.

Fix: replace unbounded recursion with a bounded retry or fail-fast. The 
executePutBlockClose is a compatibility mechanism (HDDS-12007 made datanodes 
ignore this putBlock), so failure is non-critical — the regular putBlockAsync 
handles the actual commit.

Verification: existing unit tests pass, plus a new test for the 
close-retry-exhaustion scenario.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to