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

Don't create range deletion documents upon v4.2-v4.4 upgrade in case of collection uuid mismatch

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.4.19
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Fully Compatible
    • ALL
    • Sharding EMEA 2022-10-17, Sharding EMEA 2022-10-31, Sharding EMEA 2022-11-14
    • 7.5

      The upgrade procedure creates range deletion task documents in the following way: for each local collection, refresh the routing table and - if sharded - create range deletion task documents for all non-owned ranges.

      This procedure does not take into account that no range deletion must happen if the local collection uuid is not matching with the uuid tracked by the config server. This may happen, for example, when a shard holds a stale incarnation of a collection due to SERVER-17397.

      Detailed flow

      Since v4.2 is not tracking orphans on disk, submitOrphanRangesForCleanup is invoked by every shard in order to create range deletion tasks in the following way:

      The problem lies in how a range deletion task document is created: the uuid from the local catalog is persisted rather than the one known by the config server.

            allison.easton@mongodb.com Allison Easton
            pierlauro.sciarelli@mongodb.com Pierlauro Sciarelli
            0 Vote for this issue
            6 Start watching this issue