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

disallow initiating cluster FCV downgrade in the middle of upgrade (and vice versa)

    • Type: Icon: Task Task
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 3.5.11
    • Component/s: Sharding
    • None
    • Fully Compatible
    • Sharding 2017-10-02, Sharding 2017-10-23

      we can do this by checking the targetVersion on the config server at the beginning of configsvrSetFCV

      if push comes to shove, you will be able to manually change the version and targetVersion fields in the featureCompatibilityVersion document to allow initiating downgrade in the middle of upgrade (and vice versa)

      ---------

      this is to prevent the following case:

      the config server's configsvrSetFCV sends setFCV to all shards.

      if multiple configsvrSetFCV's were allowed to run concurrently (and were trying to set different versions), their setFCV's to shards could be interleaved, leaving shards with inconsistent FCVs, though both configsvrSetFCV calls return success. to protect against this, we can allow only one configsvrSetFCV to run at a time.

      however, if the config server fails over during a configsvrSetFCV, its setFCV calls to shards may still be in flight. a follow-up configsvrSetFCV's setFCV calls to shards can then still race with the in-flight setFCV calls from the first configsvrSetFCV.

            Assignee:
            esha.maharishi@mongodb.com Esha Maharishi (Inactive)
            Reporter:
            esha.maharishi@mongodb.com Esha Maharishi (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: