[SERVER-48450] Fail reconfigs that contain non-voting nodes from another replica set Created: 27/May/20 Updated: 29/Oct/23 Resolved: 05/Oct/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 4.9.0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Judah Schvimer | Assignee: | Xuerui Fa |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Minor Change | ||||||||||||||||
| Sprint: | Repl 2020-07-13, Repl 2020-07-27, Repl 2020-10-05, Repl 2020-10-19 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Linked BF Score: | 0 | ||||||||||||||||
| Description |
|
Currently the quorum check doesn't require checking non-voting nodes, so even though they'll error, that won't prevent the reconfig from succeeding. Currently If a reconfig adds a non-voting node that is already initialized in another RS, that node will go into the "DOWN" state since it will reject every heartbeat made to it. Failing the reconfig would be a better user experience. |
| Comments |
| Comment by Githook User [ 07/Oct/20 ] |
|
Author: {'name': 'XueruiFa', 'email': 'xuerui.fa@mongodb.com', 'username': 'XueruiFa'}Message: |
| Comment by Githook User [ 05/Oct/20 ] |
|
Author: {'name': 'XueruiFa', 'email': 'xuerui.fa@mongodb.com', 'username': 'XueruiFa'}Message: |
| Comment by Judah Schvimer [ 07/Jul/20 ] |
|
In this ticket we should consider undoing the changes to jstests/replsets/disallow_adding_initialized_node1.js made in this commit ( |
| Comment by A. Jesse Jiryu Davis [ 30/Jun/20 ] |
|
Check whether a reconfig succeeds if a minority of voters were initialized in a different RS. |
| Comment by Siyuan Zhou [ 15/Jun/20 ] |
|
Yeah, sounds good to me! |
| Comment by Judah Schvimer [ 10/Jun/20 ] |
|
I'm in favor. |
| Comment by Tess Avitabile (Inactive) [ 10/Jun/20 ] |
|
siyuan.zhou, judah.schvimer, should we schedule this ticket? |
| Comment by Siyuan Zhou [ 27/May/20 ] |
|
Quorum check sends heartbeats to all nodes in the config, but it only waits for a majority of voting nodes to respond. The code is supposed to wait for all responses. |
| Comment by Judah Schvimer [ 27/May/20 ] |
|
This showed up while trying to turn Initial Sync Semantics automatic reconfigs on for this test. |