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

New config server primary unlocks all distlocks held by previous config server on stepup

    • Type: Icon: Bug Bug
    • Resolution: Gone away
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Sharding
    • Sharding EMEA
    • ALL
    • Sharding 2019-07-29

      Config servers all have the same process id of "ConfigServer."

      On transition to primary, a config node unlocks all existing distlocks with the process id "ConfigServer."

      This means that DDL operations which serialize on the config server via a distlock but whose business logic is executed by a shard (moveChunk, movePrimary, and shardCollection) are suspect, because the shard can keep executing the business logic outside the distlock. For example, you could drop a database concurrently with sharding a collection and end up with a config.collections entry without a corresponding config.databases entry.

      Note that the track unsharded project will add two more DDL operations with the shardCollection pattern (renameCollection and convertToCapped).

        1. configsvr_failover_repro.js
          2 kB
          Jason Zhang
        2. configsvrStepdownRaceRepro.txt
          575 kB
          Jason Zhang

            Assignee:
            backlog-server-sharding-emea [DO NOT USE] Backlog - Sharding EMEA
            Reporter:
            esha.maharishi@mongodb.com Esha Maharishi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: