Skip to content

HDDS-15657. excludeContainersDueToFailure resets every iteration, repeatedly failing containers keep being retried - #10892

Open
sravani-revuri wants to merge 1 commit into
apache:masterfrom
sravani-revuri:HDDS-15657
Open

HDDS-15657. excludeContainersDueToFailure resets every iteration, repeatedly failing containers keep being retried#10892
sravani-revuri wants to merge 1 commit into
apache:masterfrom
sravani-revuri:HDDS-15657

Conversation

@sravani-revuri

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

selectionCriteria is re-created fresh every iteration.

selectionCriteria = new ContainerBalancerSelectionCriteria(config,cnodeManager, replicationManager, containerManager, findSourceStrategy, containerToSourceMap); 

If container C failed (ContainerNotFoundException or any other error) in iteration 1 and was added to excludeContainersDueToFailure, it will be tried again in iteration 2 with the same result. This wastes time on permanently broken containers.

What is the link to the Apache JIRA

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

How was this patch tested?

Written unit test.

…eatedly failing containers keep being retried
@sravani-revuri
sravani-revuri marked this pull request as ready for review July 29, 2026 07:13

@chihsuan chihsuan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the fix! @sravani-revuri this makes sense for the ContainerNotFoundException cases, which are the permanently broken containers from the Jira but the other two call sites look transient. Could we confirm that every failure stored here is permanent?

selectionCriteria = new ContainerBalancerSelectionCriteria(config,
nodeManager, replicationManager, containerManager, findSourceStrategy,
containerToSourceMap);
containerToSourceMap, excludeContainersDueToFailure);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

REPLICATION_NOT_HEALTHY_AFTER_MOVE may be temporary or target-specific. Would it make sense to persist only the ContainerNotFoundException exclusions across iterations, and keep the transient ones iteration-scoped?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants