Skip to content

By @LoisSotoLopez: reconcile quorum queue member list after queue deletion and (re)declaration#15615

Merged
michaelklishin merged 24 commits into
mainfrom
rabbitmq-server-14241
Mar 2, 2026
Merged

By @LoisSotoLopez: reconcile quorum queue member list after queue deletion and (re)declaration#15615
michaelklishin merged 24 commits into
mainfrom
rabbitmq-server-14241

Conversation

@michaelklishin

@michaelklishin michaelklishin commented Mar 2, 2026

Copy link
Copy Markdown
Collaborator

This is #14241 by @LoisSotoLopez re-submitted by me with a few tweaks before merging:

  1. The key concern on the core team was the mixed version safety. The best way to get there is to limit this feature to 4.3.0 by making the new feature flag depend on rabbitmq_4.3.0
  2. The first change above eliminates most issues around mixed version testing
  3. There was one case of innocent but annoying Erlang binding shadowing
  4. One of the case clauses in question has lost a catch-all change which means that an error returned by ra:start_server/2 would result in a function_clause failure
  5. One function was extracted for testability (specifically coverage with property-based tests)

The key ideas in the original PR are still intact.

LoisSotoLopez and others added 19 commits March 2, 2026 13:30
Co-authored-by: Péter Gömöri <gomoripeti@users.noreply.github.com>
I thought that asserting the right membership status on all nodes would
guarantee that the other status fields would be the expected ones but it
seems like that assumption was wrong.
- Only query node uids via RPC for missing members
- Update nodes in state to map if FF is enabled
- Properly return whether queue repaired or not

Co-authored-by: Péter Gömöri <gomoripeti@users.noreply.github.com>
- data dir should only be deleted if RaUid is not undefined
  (and it does not match the UID in metadata store)
- does not need to log separately if RaUid is undefined as that is
  already logged when restart_server returns with name_not_registered
  error
This migration is very subtle. Let's make it 4.3.0-only.
@michaelklishin michaelklishin added this to the 4.3.0 milestone Mar 2, 2026
@mergify mergify Bot added the make label Mar 2, 2026
@michaelklishin
michaelklishin merged commit 0ce8cb5 into main Mar 2, 2026
353 of 354 checks passed
@michaelklishin
michaelklishin deleted the rabbitmq-server-14241 branch March 2, 2026 23:10
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.

3 participants