-
Type: Bug
-
Resolution: Done
-
Priority: Minor - P4
-
Affects Version/s: 2.4.6
-
Component/s: Replication
-
Fully Compatible
-
ALL
ISSUE SUMMARY
Re-election of a primary can be delayed because of a veto from another member of the replica set.
USER IMPACT
This issue can manifest if a replica set election is triggered and a member has not seen that the (old) primary has already stepped down. This will occur most frequently when there is a replica set reconfiguration event combined with either network latency or a node is overloaded. This fix shortens the time it takes to re-elect the primary; it would eventually get elected when the stepdown state is processed and it stops vetoing.
It is present in all versions of MongoDB prior to and including v2.4.6.
SOLUTION
Don't veto former primary from re-electing itself.
WORKAROUNDS
None.
PATCHES
Production release v2.4.7 contains the fix for this issue, and production release v2.6.0 will contain the fix as well.
Original Description
This can happen if the member has a stale view of the world believing that there is a primary.
Example log:
not electing self, bar:27017 would veto with 'foo:27017 is trying to elect itself but foo:27017 is already primary and more up-to-date'