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

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

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 6.2.0-rc0
    • None
    • None
    • None
    • Fully Compatible
    • ALL
    • Sharding EMEA 2022-10-31
    • 127

    Description

      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

      Attachments

        Activity

          People

            paolo.polato@mongodb.com Paolo Polato
            paolo.polato@mongodb.com Paolo Polato
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: