Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-45423

Use isRetriableError instead of isNetworkError for transient errors in initial sync

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.3.3
    • Affects Version/s: None
    • Component/s: Replication
    • None
    • Fully Compatible
    • ALL
    • Repl 2020-01-13, Repl 2020-01-27

      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.

            Assignee:
            matthew.russotto@mongodb.com Matthew Russotto
            Reporter:
            matthew.russotto@mongodb.com Matthew Russotto
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: