Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add new QQ members as non-voters #9162

Merged
merged 1 commit into from
Oct 5, 2023
Merged

Conversation

illotum
Copy link

@illotum illotum commented Aug 23, 2023

Proposed Changes

This makes use of rabbitmq/ra#375 to expand rabbitmq-queues check_if_node_is_quorum_critical.

Additionally it takes into account which node the command is being issued to. In the following example rabbit-2 is recently added and still catching up, putting it back down will not impact quorum:

> rabbitmq-queues -n rabbit-0 check_if_node_is_quorum_critical
Checking if node rabbit-0@3c22fb6527ee is critical for quorum of any queues/streams ...
queue 'input' in vhost '/' will become unavailable if node rabbit-0@3c22fb6527ee stops

> rabbitmq-queues -n rabbit-2 check_if_node_is_quorum_critical
Checking if node rabbit-2@3c22fb6527ee is critical for quorum of any queues/streams ...
Node rabbit-2@3c22fb6527ee reported no queues/streams with minimum quorum

Types of Changes

Checklist

  • I have read the CONTRIBUTING.md document
  • I have signed the CA (see https://cla.pivotal.io/sign/rabbitmq)
  • I have added tests that prove my fix is effective or that my feature works
  • All tests pass locally with my changes
  • If relevant, I have added necessary documentation to https://github.com/rabbitmq/rabbitmq-website
  • If relevant, I have added this change to the first version(s) in release-notes that I expect to introduce it

Further Comments

The CLI and HTTP API have been extended to override the default (promotable) voter status.

@mergify mergify bot added the bazel label Aug 23, 2023
@illotum illotum changed the title Add new QQ members as non-voters. Add new QQ members as non-voters Aug 23, 2023
@illotum illotum force-pushed the nonvoters branch 3 times, most recently from b89ff46 to f27d703 Compare October 4, 2023 03:11
Because both `add_member` and `grow` default to Membership status `promotable`,
new members will have to catch up before they are considered cluster members.
This can be overridden with either `voter` or (permanent `non_voter` statuses.
The latter one is useless without additional tooling so kept undocumented.

- non-voters do not affect quorum size for election purposes
- `observer_cli` reports their status with lowercase 'f'
- `rabbitmq-queues check_if_node_is_quorum_critical` takes voter status into
account
@illotum illotum marked this pull request as ready for review October 4, 2023 18:21
@michaelklishin michaelklishin added this to the 3.13.0 milestone Oct 4, 2023
@illotum
Copy link
Author

illotum commented Oct 4, 2023

Un-drafting after a rebase. The currently failing tests pass locally.

@michaelklishin michaelklishin merged commit 4824fea into rabbitmq:main Oct 5, 2023
14 checks passed
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