Skip to content

HDDS-15605. Fix flaky testContainerExclusionWithClosedContainerException#10621

Merged
adoroszlai merged 1 commit into
apache:masterfrom
chihsuan:HDDS-15605
Jul 5, 2026
Merged

HDDS-15605. Fix flaky testContainerExclusionWithClosedContainerException#10621
adoroszlai merged 1 commit into
apache:masterfrom
chihsuan:HDDS-15605

Conversation

@chihsuan

@chihsuan chihsuan commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

testContainerExclusionWithClosedContainerException intermittently fails at the datanode assertion (Expecting empty but was: [<uuid>(null/null)]).

The test asserts that after a ClosedContainerException only the closed container is excluded. But under the default ALL_COMMITTED watch level, a momentarily-slow follower whose watch-for-commit times out is recorded in the client exclude list — intended slow-node-avoidance behaviour of the configurable watchType (HDDS-2887). So an empty datanode set is not an invariant under ALL_COMMITTED; the assertion predates the watchType config and never accounted for it.

The test's subject is container exclusion, which is independent of the watch level. This removes the non-invariant getDatanodes().isEmpty() assertion (the container and pipeline assertions stay); watch-level datanode exclusion is already covered by testDatanodeExclusionWithMajorityCommit.

What is the link to the Apache JIRA

https://issues.apache.org/jira/browse/HDDS-15605

How was this patch tested?

intermittent-test-check on the fork, TestFailureHandlingByClient, test-name=ALL, 100 runs each (10 splits x 10 iterations):

  • This branch: the assertion did not recur (0/100). (run)
  • master baseline, same harness: the assertion reproduced in ~5/100 runs (Expecting empty but was: [...]), matching the reported intermittency. (run)
  • Remaining noise, unrelated to this change (present on master too):
    • A TimeoutException in TestHelper.waitForContainerClose (container state transition not completing under the harness's extreme parallel load of 10 concurrent splits); it occurs before the modified assertion and is a pre-existing load-sensitivity of the test.
    • testDatanodeExclusionWithMajorityCommit failures are the known HDDS-13972 (@Flaky).

@adoroszlai
adoroszlai merged commit c7d83a7 into apache:master Jul 5, 2026
32 of 33 checks passed
@adoroszlai

Copy link
Copy Markdown
Contributor

Thanks @chihsuan for the patch.

errose28 added a commit to errose28/ozone that referenced this pull request Jul 7, 2026
* master: (519 commits)
  HDDS-14544. OM DB Insights: Duplicate API calls triggered when changing limit selector (apache#10677).
  HDDS-15587. [Recon] Show 0 for offline DN pending deletion instead of -1 (apache#10585).
  HDDS-15521. StreamBlockInputStream fails with TimeoutIOException without retry or failover. (apache#10479)
  HDDS-15170. Add mock-based unit tests for DataStream write path (apache#10230)
  HDDS-15552. Ratis events should not be published as metrics (apache#10523)
  HDDS-15746. Bump kerby to 2.1.2 (apache#10666)
  HDDS-15579. Replace SimpleSpanProcessor with BatchSpanProcessor (apache#10569)
  HDDS-15747. Address review comments for HDDS-15083 (apache#10669)
  HDDS-15732. Some ozone commands ignore OZONE_MODULE_ACCESS_ARGS (apache#10655)
  HDDS-15605. Fix flaky testContainerExclusionWithClosedContainerException (apache#10621)
  HDDS-11855. Fix flaky TestContainerBalancerDatanodeNodeLimit#checkIterationResultException (apache#10667)
  HDDS-15741. Bump awssdk to 2.46.17 (apache#10661)
  HDDS-10307. Speed up TestOzoneManagerHAWithStoppedNodes (apache#10658)
  HDDS-15651. Test case for DiskBalancer when markContainerForDelete fails (apache#10593)
  HDDS-15742. Bump nimbus-jose-jwt to 10.9.1 (apache#10662)
  HDDS-15719. Add check for allowed action usage in workflows (apache#10641)
  HDDS-15744. Bump javassist to 3.32.0-GA (apache#10665)
  HDDS-15737. Fix intermittent failure in balancerShouldOnlySelectConfiguredIncludeContainers (apache#10660)
  HDDS-15743. Bump gson to 2.14.0 (apache#10664)
  HDDS-11093. Fix intermittent failure in TestContainerBalancerDatanodeNodeLimit#testMetrics (apache#10659)
  ...

Conflicts:
hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/ContainerScanHelper.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants