Skip to content

Add validation and warning for force-leave command#807

Open
kimjune01 wants to merge 4 commits into
hashicorp:masterfrom
kimjune01:fix/500-force-leave-validation
Open

Add validation and warning for force-leave command#807
kimjune01 wants to merge 4 commits into
hashicorp:masterfrom
kimjune01:fix/500-force-leave-validation

Conversation

@kimjune01
Copy link
Copy Markdown

The force-leave command did not validate whether the specified node exists in the cluster, giving no visual indication when operating on a non-member. This made it difficult for operators to distinguish between successful operations and no-ops.

What Changed

Query the member list before broadcasting force-leave. If the node is not found, emit a warning. If the member query fails, emit a warning about the failure but continue with force-leave (maintaining idempotent behavior with exit code 0).

This provides better observability in normal operations while remaining robust during degraded network conditions.

Adds test coverage for the nonexistent node scenario.

Fixes #500

kimjune01 added 3 commits May 9, 2026 15:56
The force-leave command now validates that the specified node exists in the cluster before attempting to remove it. This prevents silent failures when users provide nonexistent node names due to typos or misunderstandings.

Fixes hashicorp#500
force-leave is an idempotent gossip broadcast that needs to work on
nodes not visible locally (ghost cleanup, split-brain recovery).
Print a warning but proceed with the broadcast.
Previously, if client.Members() returned an error, it was silently
ignored and force-leave would proceed without any user feedback.

Now we warn the user that member validation failed, consistent with
the warning when a node is not found in the member list.

This provides better observability when force-leave runs in degraded
network conditions.
@kimjune01 kimjune01 requested review from a team as code owners May 12, 2026 01:36
@hashicorp-cla-app
Copy link
Copy Markdown

CLA assistant check

Thank you for your submission! We require that all contributors sign our Contributor License Agreement ("CLA") before we can accept the contribution. Read and sign the agreement

Learn more about why HashiCorp requires a CLA and what the CLA includes

Have you signed the CLA already but the status is still pending? Recheck it.

1 similar comment
@hashicorp-cla-app
Copy link
Copy Markdown

CLA assistant check

Thank you for your submission! We require that all contributors sign our Contributor License Agreement ("CLA") before we can accept the contribution. Read and sign the agreement

Learn more about why HashiCorp requires a CLA and what the CLA includes

Have you signed the CLA already but the status is still pending? Recheck it.

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.

force-leave is not validating input

1 participant