[SERVER-27125] Arbiters in pv1 should vote no in elections if they can see a healthy primary of equal or greater priority to the candidate Created: 18/Nov/16  Updated: 27/Sep/17  Resolved: 25/Jan/17

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 3.2.12, 3.4.2, 3.5.2

Type: Bug Priority: Major - P3
Reporter: Spencer Brody (Inactive) Assignee: Jack Mulrow
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Documented
Duplicate
is duplicated by SERVER-26717 PSA flapping during netsplit when usi... Closed
Related
is related to SERVER-27861 Make the failover in drain.js more re... Closed
is related to SERVER-31274 With chaining enabled, a healthy prim... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v3.4, v3.2
Sprint: Repl 2017-01-23, Repl 2017-02-13
Participants:

 Description   

Currently in pv1, the use of arbiters can result in unnecessary flapping during certain kinds of network partitions. Imagine a 3 node replica set with 2 data bearing members and 1 arbiter. If the data bearing members become isolated from each other, but the arbiter can see both, then whichever node is not primary will call for an election and win, the arbiter will transmit the term change to the old primary, which will step down, and then a few seconds later it will call for a new election, which it too shall win, on and on. You wind up with the primary changing every few seconds. Implementing this ticket will prevent that scenario, at the cost of slower failovers for all failovers when using arbiters.



 Comments   
Comment by Githook User [ 25/Jan/17 ]

Author:

{u'username': u'jsmulrow', u'name': u'Jack Mulrow', u'email': u'jack.mulrow@mongodb.com'}

Message: SERVER-27125 Arbiters in PV1 vote no if they can see a healthy primary of equal or greater priority to the candidate

(cherry picked from commit 97718a410d3d40f5c3f01dfae76e7ddd910897af)
Branch: v3.2
https://github.com/mongodb/mongo/commit/ef3e1bc78e997f0d9f22f45aeb1d8e3b6ac14a14

Comment by Githook User [ 25/Jan/17 ]

Author:

{u'username': u'jsmulrow', u'name': u'Jack Mulrow', u'email': u'jack.mulrow@mongodb.com'}

Message: SERVER-27125 Arbiters in PV1 vote no if they can see a healthy primary of equal or greater priority to the candidate

(cherry picked from commit 97718a410d3d40f5c3f01dfae76e7ddd910897af)
Branch: v3.4
https://github.com/mongodb/mongo/commit/dd491eeb54933e88361658ca7d589126397bd289

Comment by Githook User [ 24/Jan/17 ]

Author:

{u'username': u'jsmulrow', u'name': u'Jack Mulrow', u'email': u'jack.mulrow@mongodb.com'}

Message: SERVER-27125 Arbiters in PV1 vote no if they can see a healthy primary of equal or greater priority to the candidate
Branch: master
https://github.com/mongodb/mongo/commit/97718a410d3d40f5c3f01dfae76e7ddd910897af

Comment by Siyuan Zhou [ 24/Jan/17 ]

jack.mulrow, I reverted this commit since it failed on replicasets_legacy test suite.

Comment by Githook User [ 24/Jan/17 ]

Author:

{u'username': u'visualzhou', u'name': u'Siyuan Zhou', u'email': u'siyuan.zhou@mongodb.com'}

Message: Revert "SERVER-27125 Arbiters in PV1 vote no if they can see a healthy primary of equal or greater priority to the candidate"

This reverts commit eef6335bbc0eedeb6f50120164ca0f198fb94303.
Branch: master
https://github.com/mongodb/mongo/commit/c169d7bfd38abb845dfa5369a43781742d957d72

Comment by Githook User [ 23/Jan/17 ]

Author:

{u'username': u'jsmulrow', u'name': u'Jack Mulrow', u'email': u'jack.mulrow@mongodb.com'}

Message: SERVER-27125 Arbiters in PV1 vote no if they can see a healthy primary of equal or greater priority to the candidate
Branch: master
https://github.com/mongodb/mongo/commit/eef6335bbc0eedeb6f50120164ca0f198fb94303

Comment by Eric Milkie [ 22/Nov/16 ]

It should work, but it will increase failover time. That can be solved via documentation, however.

Comment by Spencer Brody (Inactive) [ 22/Nov/16 ]

milkie - I updated the title to account for priorities - does that sound safe to you now?

Comment by Eric Milkie [ 21/Nov/16 ]

I think this will mess up priority takeover in 3 node sets.

Generated at Thu Feb 08 04:14:14 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.