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

Enumerate the possible featureCompatibilityVersion states in one atomic variable

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.6.0-rc1
    • Component/s: Storage
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Sprint:
      Storage 2017-10-23

      Description

      There are two separate atomic variables for the version and targetVersion fields in serverGlobalParams. There is a potential for a races when reading the actual state through isFullyUpgradedTo36() and similar accessors, which must read both variables separately.

      The ServerGlobalParams::FeatureCompatiblity::Version enum should enumerate the following states in one atomic variable. Getters and setters should be appropriately modified.

      FeatureCompatibility::Version fCV version fCV targetVersion notes
      kUnset (unset) (unset) a safe getter should return "3.4"
      k34 3.4 (unset)
      kUpgradingTo36 3.4 3.6
      k36 3.6 (unset)
      kDowngradingTo34 3.4 3.4

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: