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

config.transactions collection may end up not having the "parentLsid" partial index if the primary steps down or shuts down while setting up the collection

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 6.0.0-rc11, 6.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • ALL
    • v6.0
    • Sharding NYC 2022-06-13, Sharding 2022-06-27
    • 12

      Here is the scenario:

      • node0 steps up and creates the config.transactions collection but steps down before creating the partial index
      • node0 or some other node steps up and sees that the collection has already exists so it skips creating the partial index.
      • the replica set ends up without the partial index forever. 

      The issue is that we create the collection and the partial index in two separate oplog entries, and failover/restart can occur between those two writes. This can be solved by also creating the index if the collection exists but is empty and doesn't already have the index since the two writes are split, the collection should remain empty upon recovery.

            Assignee:
            jason.zhang@mongodb.com Jason Zhang
            Reporter:
            cheahuychou.mao@mongodb.com Cheahuychou Mao
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: