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

FCV upgrade to 5.0 can fail in presence of concurrent collection drop

    • Fully Compatible
    • ALL

      With featureFlagShardingFullDDLSupportTimestampedVersion enabled, the FCV upgrade process can fail upon the following sequence of events:
      1. Shards enter phase1 of the FCV update. (Meaning they will still use the legacy DDL paths)
      2. The configsvr reads the current sharded collections, and performs the phase1 of the metadata patchup.
      2. A collection is dropped. The legacy path first deletes the chunks, but it has not yet deleted the config.collections document.
      3. The configsvr, as part of the setFCV procedure, tells shards to refresh that collection. The shards will try to refresh their catalog cache, but it will fail with ConflictingOperationInProgress (because the config.collections document still exists, but no chunk was found).

      This could be solved by either catching the ConflictingOperationInProgress error, or by telling the shards to refresh after they have entered phase2 of the FCV (because on the new DDL path, dropCollection first deletes the config.collections document, and later the chunks.

            Assignee:
            jordi.serra-torrens@mongodb.com Jordi Serra Torrens
            Reporter:
            jordi.serra-torrens@mongodb.com Jordi Serra Torrens
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: