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

getMissingDoc in initial sync needs to be resilient to NamespaceNotFound

    XMLWordPrintable

    Details

    • Case:
    • Linked BF Score:
      45

      Description

      When oplog application during initial sync encounters an update to a document it doesn't currently have, it runs getMissingDoc to fetch the document from the sync source. Prior to 3.6, if the getMissingDoc queried a collection that had since been dropped on the sync source, it would return an empty BSONObj, and initial sync would ignore that document, assuming that it had been deleted on the sync source.

      In 3.6+, however, we use findOneByUUID to fetch the missing doc, and if you do a query with a UUID and the recipient doesn't know about the UUID, it returns NamespaceNotFound, instead of returning an empty batch like a regular find on a non-existent namespace would.

      This can cause initial sync to fail spuriously

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              evin.roesle Evin Roesle
              Reporter:
              spencer Spencer Brody
              Participants:
              Votes:
              2 Vote for this issue
              Watchers:
              11 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: