[SERVER-45423] Use isRetriableError instead of isNetworkError for transient errors in initial sync Created: 08/Jan/20 Updated: 29/Oct/23 Resolved: 23/Jan/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 4.3.3 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Matthew Russotto | Assignee: | Matthew Russotto |
| Resolution: | Fixed | 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 | ||||||||
| Sprint: | Repl 2020-01-13, Repl 2020-01-27 | ||||||||
| Participants: | |||||||||
| Description |
|
During initial sync, we may receive some error codes which are not network errors but should not cause an initial sync to fail permanently. Specifically, ShutdownInProgress (the sync source may restart normally), PrimarySteppedDown, ExceededTimeLimit, InterruptedAtShutdown, InterruptedDueToReplStateChange, and NotMasterOrSecondary. These (plus NotMasterNoSlaveOK and NotMaster, which we should not receive) are covered under the isRetriableError label. The catch is that NotMasterOrSecondary may be a permanent error. It indicates a sync source in startup, recovery, rollback, or removed. If it is REMOVED, the error is permanent and we should not retry. |
| Comments |
| Comment by Githook User [ 22/Jan/20 ] |
|
Author: {'username': 'mtrussotto', 'name': 'Matthew Russotto', 'email': 'matthew.russotto@mongodb.com'}Message: |