Siyao Meng created HDDS-15823:
---------------------------------

             Summary: Fix flaky 
TestFailureHandlingByClient#testContainerExclusionWithClosedContainerException
                 Key: HDDS-15823
                 URL: https://issues.apache.org/jira/browse/HDDS-15823
             Project: Apache Ozone
          Issue Type: Bug
          Components: test
            Reporter: Siyao Meng
            Assignee: Siyao Meng


Generated-by: Claude Code (Opus 4.8)

{{TestFailureHandlingByClient#testContainerExclusionWithClosedContainerException}}
 fails intermittently with {{Expecting empty but was: [Pipeline-...]}} on the 
assertion that the client exclude list holds no pipeline IDs (seen in upstream 
CI on 2026-07-06, after HDDS-15605 removed the analogous datanodes assertion).

The test forces a container to close and writes again, expecting a 
{{ClosedContainerException}} that adds only the container to the exclude list. 
Under the default {{ALL_COMMITTED}} watch level, a slow or unavailable follower 
can instead surface a WATCH {{RaftRetryFailureException}}. In 
{{KeyOutputStream.handleException}}, {{checkForRetryFailure}} returns true for 
that exception, so the container exclusion branch is skipped and the else 
branch adds the pipeline to the exclude list. That is intended client behavior, 
so an empty pipeline set is not an invariant for this configuration.

Fix: remove the {{getPipelineIds().isEmpty()}} assertion, consistent with how 
HDDS-15605 handled the datanodes case, and add a comment explaining why the 
pipeline set is not an invariant here. The container ID exclusion assertion, 
which is the actual property under test, is retained. The change is limited to 
the test.

Testing: ran the test 100 times locally with 0 failures, each run confirmed to 
execute the method ({{Tests run: 1, Failures: 0, Errors: 0}}). Ran the full 
{{TestFailureHandlingByClient}} class (6 tests, 0 failures). Checkstyle clean.



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