-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
Partially reintroduce locking to mirrored_supervisor #3263
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM otherwise.
@Mergifyio backport v3.9.x v3.8.x |
Command
|
Note: |
Partially reintroduce locking to mirrored_supervisor (cherry picked from commit cf2c609) Adapted for Erlang 24 compatibility of rabbit_log call sites. Conflicts: deps/rabbit_common/src/mirrored_supervisor.erl
Backported to |
Partially reintroduce locking to mirrored_supervisor (cherry picked from commit cf2c609)
Backported to |
Proposed Changes
Unlike the now removed
pg2
module,pg
in Erlang 24 does not acquire locks when groupmembership changes. It is strongly eventually consistent by design.
mirrored_supervisor
implicitly relied on the
pg2
locking behavior and without it, duplicate children canbe started in some scenarios.
This reintroduces some of the locking performed by
pg2
. For the use cases ofmirrored_supervisor
,locking across all connected nodes is acceptable.
Types of Changes
Checklist
CONTRIBUTING.md
documentFurther Comments
Closes #3260. References #3132, #3154.