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

Send all phases of setFCV command to replica set being added during addShard

    • Type: Icon: Task Task
    • Resolution: Gone away
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • None
    • 0
    • None
    • None
    • None
    • None
    • None
    • None

      Currently, addShard only sends one setFCV command to the replica set being added. However, this node already has been restarted with --shardsvr and wrote the shard identity document which means it believes its role to be ClusterRole::ShardServer. This leaves us with an unexpected execution path for setFCV - we will run all phases at once since the phase is not included in the command, but we will pass the checks for being a shard server. Additionally, not including the phase means we are skipping the shard server phase 1 tasks entirely (we run this only if the phase is start or if we are a config server) and we will skip the timestamping which gives us replay protection.

      It seems that most of the work done in shard server phase 1 tasks is draining of coordinators so we likely don't need to fix this on old versions, but in the new coordinator we should change the FCV in the correct way for a shard server and we should add an assertion that for shard servers, the phase is always specified.

            Assignee:
            Unassigned Unassigned
            Reporter:
            allison.easton@mongodb.com Allison Easton
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: