Initial sync collection cloner can permanently skip a collection that still exists on the sync source when NamespaceNotFound races with collection creation

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • ALL
    • v9.0
    • 200
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      During logical initial sync, CollectionCloner::CollectionClonerStage::run() treats any NamespaceNotFound error from the sync source as "collection was dropped on source" and skips cloning the collection (log id 21132). This inference is unsafe: the error can also be a false positive that races with the collection's creation.

      If the collection was created just below the node's beginApplyingTimestamp, its create oplog entry is never replayed during oplog application. If the cloner's point-in-time read then returns NamespaceNotFound even though the collection still exists on the source, the syncing node completes initial sync permanently missing a collection that exists on its sync source.

            Assignee:
            Yujin Kang Park
            Reporter:
            Matt Olma
            Votes:
            0 Vote for this issue
            Watchers:
            16 Start watching this issue

              Created:
              Updated: