-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
Fully Compatible
-
ALL
-
v4.4
-
Repl 2020-05-18
-
28
Cancelling vote requester as part of election cancellation assumes the election will not continue. However if the vote requester has already collected sufficient votes by the time cancel() is called, cancel() will be a no-op since the finish event has been signaled. As a result, the election will continue because nothing prevents the finish event to trigger the scheduled next step.
We need to coordinate cancelling and winning election under the replication mutex so that the cancelled election cannot continue.