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

            Assignee:
            backlog-server-execution Backlog - Execution Team
            Reporter:
            louis.williams Louis Williams
            Participants:
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: