CreateCollectionCoordinator should check if a request has been already served without acquiring the CriticalSection over the collection (for both current and legacy request versions).

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 6.2.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • ALL
    • Sharding EMEA 2022-10-31
    • 127
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      It has been observed a failure on autosplit_setFCV_downgrade_from_60.js.

      Looking at the logs, the following sequence may have triggered this invariant:

      1. j0:s0:prim succesfully completes the shardCollection() of test10_fsmdb0.autosplit_setFCV_downgrade_from_60_1
      2. j0:s0:prim gets downgraded to 6.0 (from now on, any new shardCollection() request will be served applying the V2 of the DDL coordinator.
      3. j0:s0:prim starts donating a chunk of test10_fsmdb0.autosplit_setFCV_downgrade_from_60_1 and acquires the critical section for the collection
      4. j0:s0:prim receives a second shardCollection() request for test10_fsmdb0.autosplit_setFCV_downgrade_from_60_1, which should be treated as a no-op;
        • being run as a V2 DDL, it needs to acquire the critical section before verifying that the command is equivalent to what has been performed on step 1
        • nevertheless, such acquisition is illegal due to step 3 - and leads to the invariant

            Assignee:
            Paolo Polato
            Reporter:
            Paolo Polato
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: