[SERVER-25145] During rollback (or w/minvalid invalid) select sync source based on end OpTime Created: 19/Jul/16 Updated: 08/Aug/18 Resolved: 03/Nov/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | 3.2.0, 3.3.0 |
| Fix Version/s: | 3.2.11, 3.4.0-rc3 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Scott Hernandez (Inactive) | Assignee: | Spencer Brody (Inactive) |
| Resolution: | Done | Votes: | 0 |
| Labels: | code-and-test | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Backport Completed: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sprint: | Repl 2016-11-21 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Case: | (copied to CRM) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Linked BF Score: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
If we use the lastFetchedOptime, which is also the common point found during rollback, it is possible that a sync source is selected which will cause the rollback to be attempted again (after the first says it succeeds), but while in an inconsistent state (with minvalid showing an invalid state, needing to apply before being consistent). By using the end of minvalid bounds as a criteria for sync source selection it will not be possible to do another rollback until the first has completed and apply all necessary options to get into a consistent state. |
| Comments |
| Comment by Githook User [ 07/Nov/16 ] |
|
Author: {u'username': u'stbrody', u'name': u'Spencer T Brody', u'email': u'spencer@mongodb.com'}Message: (cherry picked from commit 28b17c04835e4000be52b44e3b96ceaeac95567a) |
| Comment by Githook User [ 07/Nov/16 ] |
|
Author: {u'username': u'stbrody', u'name': u'Spencer T Brody', u'email': u'spencer@mongodb.com'}Message: |
| Comment by Githook User [ 07/Nov/16 ] |
|
Author: {u'username': u'stbrody', u'name': u'Spencer T Brody', u'email': u'spencer@mongodb.com'}Message: (cherry picked from commit 3716f0ab00f8f2f4e5e85a87dc06c125628fe03e) |
| Comment by Githook User [ 07/Nov/16 ] |
|
Author: {u'username': u'stbrody', u'name': u'Spencer T Brody', u'email': u'spencer@mongodb.com'}Message: |
| Comment by Githook User [ 03/Nov/16 ] |
|
Author: {u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}Message: (cherry picked from commit fb1cc32e76910334327c0835e3777ee1ddedf2d8) |
| Comment by Githook User [ 03/Nov/16 ] |
|
Author: {u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}Message: (cherry picked from commit d16d537fe262cc5f2e18b2fbe413ba80515e8c36) |
| Comment by Githook User [ 03/Nov/16 ] |
|
Author: {u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}Message: |
| Comment by Githook User [ 03/Nov/16 ] |
|
Author: {u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}Message: |
| Comment by Githook User [ 02/Nov/16 ] |
|
Author: {u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}Message: |
| Comment by Githook User [ 02/Nov/16 ] |
|
Author: {u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}Message: Revert " This reverts commit cbb4f8ef9028461b682bd4aea5097a95f8cfe631. |
| Comment by Githook User [ 02/Nov/16 ] |
|
Author: {u'username': u'benety', u'name': u'Benety Goh', u'email': u'benety@mongodb.com'}Message: |
| Comment by Eric Milkie [ 19/Oct/16 ] |
|
However, in lieu of the rollback project, this could be an intermediate fix that could avoid the double-rollback trap. |
| Comment by Eric Milkie [ 24/Aug/16 ] |
|
The proposal for fixing rollback will prohibit changing sync sources at the point where the oplog has been truncated to the common point, so I suspect the work described here will no longer make sense. |