[SERVER-21971] Not possible to elect a primary if non-voting member is ahead (PV0) Created: 21/Dec/15  Updated: 22/Nov/16  Resolved: 22/Dec/15

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: 3.2.0
Fix Version/s: 3.2.1, 3.3.0

Type: Bug Priority: Major - P3
Reporter: Scott Hernandez (Inactive) Assignee: Scott Hernandez (Inactive)
Resolution: Done Votes: 0
Labels: code-and-test
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Documented
is documented by DOCS-8936 Not possible to elect a primary if no... Closed
Duplicate
is duplicated by SERVER-21816 Cannot initial sync from non-voting node Closed
Related
Backwards Compatibility: Minor Change
Operating System: ALL
Backport Completed:
Participants:

 Description   

Due to sync source selection and vetoing, it is possible for a non-votable to block elections due to holding newer data no other voting member will be able to replicate. Since vetoing is only in protocol version 0 (PV0) this only affects replica sets which haven't upgraded.

The obvious workaround to this issue is to update to protocol version 1.



 Comments   
Comment by Githook User [ 22/Dec/15 ]

Author:

{u'username': u'scotthernandez', u'name': u'Scott Hernandez', u'email': u'scotthernandez@gmail.com'}

Message: SERVER-21971: allow hidden/non-voting sync source on second pass

(cherry picked from commit a65ae34c569ce0e5b98a7bf0c3eaee7de637d127)
Branch: v3.2
https://github.com/mongodb/mongo/commit/fc56522f35b6dbfc0c66f06addcb6c2485d2703a

Comment by Githook User [ 22/Dec/15 ]

Author:

{u'username': u'scotthernandez', u'name': u'Scott Hernandez', u'email': u'scotthernandez@gmail.com'}

Message: SERVER-21971: allow hidden/non-voting sync source on second pass
Branch: master
https://github.com/mongodb/mongo/commit/d4c32effc752ec1ace639c94a85a8fcde979a8d7

Comment by Scott Hernandez (Inactive) [ 21/Dec/15 ]

Yep, that was what we were talking about for SERVER-21816 as well.

Comment by Eric Milkie [ 21/Dec/15 ]

I think it's easy to fix this if we make the voter-sync-from-voter condition only apply during the first pass of the loop in chooseNewSyncSource(), similar to how we treat slave-delayed and hidden nodes.

Generated at Thu Feb 08 03:59:01 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.