Add validation and warning for force-leave command#807
Open
kimjune01 wants to merge 4 commits into
Open
Conversation
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.
|
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
|
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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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