mon: MMonProbe: direct MMonJoin messages to the leader, instead of th…#40839
Conversation
…e first mon When monitors are joining a cluster, they may send an MMonJoin message to place themselves correctly in the map in either handle_probe_reply() or finish_election(). These messages must be sent to the leader -- monitors do not forward each other's messages. Unfortunately, this scenario was missed when converting the monitors to support connectivity-based elections, and they're sending these messages to quorum.begin(). Fix this by including an explicit leader in MMonProbe (that the new monitor may reference in handle_probe_reply) and using the leader value in both locations. Fixes: https://tracker.ceph.com/issues/50345 Signed-off-by: Greg Farnum <gfarnum@redhat.com>
|
Reproduced the issue locally and will schedule suites as soon as packages are built. |
|
Test results are pretty messy but nothing that looks like this PR. https://pulpito.ceph.com/gregf-2021-04-14_03:14:48-rados-wip-mon-quorum-leader-413-distro-basic-smithi/ 1 dead https://pulpito.ceph.com/gregf-2021-04-14_03:25:22-upgrade:octopus-x-wip-mon-quorum-leader-413-distro-basic-smithi/ |
…e first mon
When monitors are joining a cluster, they may send an MMonJoin message to place
themselves correctly in the map in either handle_probe_reply() or
finish_election(). These messages must be sent to the leader -- monitors do not
forward each other's messages.
Unfortunately, this scenario was missed when converting the monitors to support
connectivity-based elections, and they're sending these messages to
quorum.begin(). Fix this by including an explicit leader in MMonProbe (that the
new monitor may reference in handle_probe_reply) and using the leader
value in both locations.
Fixes: https://tracker.ceph.com/issues/50345
Signed-off-by: Greg Farnum gfarnum@redhat.com
Checklist
Show available Jenkins commands
jenkins retest this pleasejenkins test classic perfjenkins test crimson perfjenkins test signedjenkins test make checkjenkins test make check arm64jenkins test submodulesjenkins test dashboardjenkins test apijenkins test docsjenkins render docsjenkins test ceph-volume alljenkins test ceph-volume tox