[SERVER-28751] Allow stepDown command to work against primary in catchup mode Created: 12/Apr/17 Updated: 12/Oct/17 Resolved: 03/May/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 3.4.6, 3.5.7 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Siyuan Zhou | Assignee: | Siyuan Zhou |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Backport Requested: |
v3.4
|
||||||||||||||||
| Sprint: | Repl 2017-05-08 | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
Stepdown command ensures a majority of caught up nodes. It does so by waiting for the _lastCommittedOpTime to reach the last applied optime. However, during catchup, the primary cannot advance its _lastCommittedOpTime until it commits an operation in its term. Thus stepdown command will fail due to timeout if the _lastCommittedOpTime isn't updated before the election. We could fix this by using the same logic that awaitReplication() uses for determining whether a majority of nodes are at the given time, rather than using _lastCommittedOpTime directly. |
| Comments |
| Comment by Githook User [ 16/Jun/17 ] |
|
Author: {u'username': u'visualzhou', u'name': u'Siyuan Zhou', u'email': u'siyuan.zhou@mongodb.com'}Message: (cherry picked from commit 52bb9f8492852f825de50467f66dd6e3e6b1b6a9) |
| Comment by Githook User [ 03/May/17 ] |
|
Author: {u'username': u'visualzhou', u'name': u'Siyuan Zhou', u'email': u'siyuan.zhou@mongodb.com'}Message:
|