[SERVER-26360] After node goes into RECOVERING due to being too stale to sync from its source, it will never recover even if there is a valid sync source it could use Created: 27/Sep/16 Updated: 13/May/20 Resolved: 03/Apr/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 3.4.5, 3.5.6 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Spencer Brody (Inactive) | Assignee: | William Schultz (Inactive) |
| Resolution: | Done | Votes: | 1 |
| Labels: | bkp | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||||||||||||||||||||||
| Issue Links: |
|
||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||||||
| Backport Requested: |
v3.4
|
||||||||||||||||||||||||
| Sprint: | Repl 2017-03-06, Repl 2017-03-27, Repl 2017-04-17 | ||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||
| Linked BF Score: | 35 | ||||||||||||||||||||||||
| Description |
|
If a node is syncing from another node and has no common point in its oplog, it will go into RECOVERING state due to being 'too stale'. It will never leave recovering, even if there is another node it could sync from which does have a common point. I have attached a cleaned up and extended version of the toostale.js test that demonstrates this issue. |
| Comments |
| Comment by Githook User [ 20/Apr/17 ] | ||||||||||||||
|
Author: {u'name': u'Ramon Fernandez', u'email': u'ramon@mongodb.com'}Message: This reverts commit 94a762ba470c21db4db14afb692c1b7dc5f4c69b. | ||||||||||||||
| Comment by Githook User [ 20/Apr/17 ] | ||||||||||||||
|
Author: {u'name': u'Ramon Fernandez', u'email': u'ramon@mongodb.com'}Message: Revert " This reverts commit 31a2a5bcec525c9dc62cfdd06d126673f507c8df. | ||||||||||||||
| Comment by Githook User [ 17/Apr/17 ] | ||||||||||||||
|
Author: {u'username': u'will62794', u'name': u'William Schultz', u'email': u'william.schultz@mongodb.com'}Message: (cherry picked from commit 136b728f6b51ce6155335652ea64640a4ae194c6) | ||||||||||||||
| Comment by Githook User [ 03/Apr/17 ] | ||||||||||||||
|
Author: {u'username': u'will62794', u'name': u'William Schultz', u'email': u'william.schultz@mongodb.com'}Message: | ||||||||||||||
| Comment by Spencer Brody (Inactive) [ 27/Sep/16 ] | ||||||||||||||
|
Log output from the attached toostale.js. Node s2 goes into recovering due to being too stale to sync from the primary:
Later, the secondary s1 is restarted, which has a larger oplog and which should be a valid sync source for s2. s2 sets s1 as it's sync source:
but then it errors and never actually syncs from s1:
|