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

Ignore NamespaceNotFound errors during initial sync apply ops, because they are transient

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 3.2.12, 3.3.10
    • Affects Version/s: 3.0.12, 3.2.7, 3.3.9
    • Component/s: Replication
    • None
    • Fully Compatible
    • ALL
    • v3.2
    • Repl 17 (07/15/16)

      During initial sync, there is a race between when we get the first op to apply and when we call list collections and create them all. Consider the following operation order:

      1. Primary creates collection, foo
      2. Primary inserts

      {a: 1}

      into foo
      3. Secondary gets first op to apply as insert

      {a: 1}

      4. Primary drops foo
      5. Secondary lists collections, doesn't see foo, and doesn't create foo
      6. Secondary applies insert


      and gets NamespaceNotFound error.

      During initial sync, we should just ignore NamespaceNotFound errors since that means that a drop collection has occurred later on in the oplog.

            judah.schvimer@mongodb.com Judah Schvimer
            judah.schvimer@mongodb.com Judah Schvimer
            0 Vote for this issue
            7 Start watching this issue