diff options
author | Lingzhi Deng <lingzhi.deng@mongodb.com> | 2020-07-27 16:47:57 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-08-02 05:39:29 +0000 |
commit | 475078ffd9b65803238a1df57e4e28f8b1bdf5ca (patch) | |
tree | abb2b05d0427d36351aeebf9b4a4bfb3f285573f /src/mongo/db/commands | |
parent | de36e2cbc7e7f38a4d2b1d017666277478ba1c7b (diff) | |
download | mongo-475078ffd9b65803238a1df57e4e28f8b1bdf5ca.tar.gz |
SERVER-49783: Update latest FCV to 4.7
Diffstat (limited to 'src/mongo/db/commands')
6 files changed, 34 insertions, 48 deletions
diff --git a/src/mongo/db/commands/conn_pool_stats.cpp b/src/mongo/db/commands/conn_pool_stats.cpp index 8f3f68f33e0..218f1c7d90e 100644 --- a/src/mongo/db/commands/conn_pool_stats.cpp +++ b/src/mongo/db/commands/conn_pool_stats.cpp @@ -113,7 +113,7 @@ public: } poolStatsCmd; -// This command currently returns nothing, since the shard connection pool no longer exists (v4.6). +// This command currently returns nothing, since the shard connection pool no longer exists (v4.7+). class ShardedPoolStats final : public BasicCommand { public: ShardedPoolStats() : BasicCommand("shardConnPoolStats") {} diff --git a/src/mongo/db/commands/feature_compatibility_version.cpp b/src/mongo/db/commands/feature_compatibility_version.cpp index 285c3068c48..04df3030c56 100644 --- a/src/mongo/db/commands/feature_compatibility_version.cpp +++ b/src/mongo/db/commands/feature_compatibility_version.cpp @@ -288,27 +288,12 @@ void FeatureCompatibilityVersion::initializeForStartup(OperationContext* opCtx) FeatureCompatibilityVersion::updateMinWireVersion(); // On startup, if the version is in an upgrading or downgrading state, print a warning. - if (version == ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451) { + if (serverGlobalParams.featureCompatibility.isUpgradingOrDowngrading()) { LOGV2_WARNING_OPTIONS( - 21011, + 4978301, {logv2::LogTag::kStartupWarnings}, - "A featureCompatibilityVersion upgrade did not complete. The current " - "featureCompatibilityVersion is {currentfeatureCompatibilityVersion}. To fix this, " - "use the setFeatureCompatibilityVersion command to resume upgrade to 4.5.1", - "A featureCompatibilityVersion upgrade did not complete. To fix this, use the " - "setFeatureCompatibilityVersion command to resume upgrade to 4.5.1", - "currentfeatureCompatibilityVersion"_attr = - FeatureCompatibilityVersionParser::toString(version)); - } else if (version == - ServerGlobalParams::FeatureCompatibility::Version::kDowngradingFrom451To44) { - LOGV2_WARNING_OPTIONS( - 21014, - {logv2::LogTag::kStartupWarnings}, - "A featureCompatibilityVersion downgrade did not complete. The current " - "featureCompatibilityVersion is {currentfeatureCompatibilityVersion}. To fix this, " - "use the setFeatureCompatibilityVersion command to resume downgrade to 4.4.", - "A featureCompatibilityVersion downgrade did not complete. To fix this, use the " - "setFeatureCompatibilityVersion command to resume downgrade to 4.5.1", + "A featureCompatibilityVersion upgrade/downgrade did not complete. To fix this, use " + "the setFeatureCompatibilityVersion command to resume the upgrade/downgrade", "currentfeatureCompatibilityVersion"_attr = FeatureCompatibilityVersionParser::toString(version)); } @@ -394,7 +379,7 @@ void FeatureCompatibilityVersion::_setVersion( // (Generic FCV reference): This FCV check should exist across LTS binary versions. const auto shouldIncrementTopologyVersion = newVersion == ServerGlobalParams::FeatureCompatibility::kLastLTS || - newVersion == ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451; + newVersion == ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To47; if (isReplSet && shouldIncrementTopologyVersion) { replCoordinator->incrementTopologyVersion(); } diff --git a/src/mongo/db/commands/feature_compatibility_version_command_parser.cpp b/src/mongo/db/commands/feature_compatibility_version_command_parser.cpp index 27b35a3513b..1b93733c646 100644 --- a/src/mongo/db/commands/feature_compatibility_version_command_parser.cpp +++ b/src/mongo/db/commands/feature_compatibility_version_command_parser.cpp @@ -77,11 +77,11 @@ StatusWith<std::string> FeatureCompatibilityVersionCommandParser::extractVersion const std::string version = versionElem.String(); - if (version != FeatureCompatibilityVersionParser::kVersion451 && + if (version != FeatureCompatibilityVersionParser::kVersion47 && version != FeatureCompatibilityVersionParser::kVersion44) { return {ErrorCodes::BadValue, str::stream() << "Invalid command argument. Expected '" - << FeatureCompatibilityVersionParser::kVersion451 << "' or '" + << FeatureCompatibilityVersionParser::kVersion47 << "' or '" << FeatureCompatibilityVersionParser::kVersion44 << "', found " << version << " in: " << cmdObj << ". See " << feature_compatibility_version_documentation::kCompatibilityLink diff --git a/src/mongo/db/commands/feature_compatibility_version_parser.h b/src/mongo/db/commands/feature_compatibility_version_parser.h index 2fdaf962c49..6c9f9ab4364 100644 --- a/src/mongo/db/commands/feature_compatibility_version_parser.h +++ b/src/mongo/db/commands/feature_compatibility_version_parser.h @@ -41,16 +41,16 @@ namespace mongo { class FeatureCompatibilityVersionParser { public: static constexpr StringData kVersion44 = "4.4"_sd; - static constexpr StringData kVersion451 = "4.5.1"_sd; - static constexpr StringData kVersionDowngradingFrom451To44 = "downgrading from 4.5.1 to 4.4"_sd; - static constexpr StringData kVersionUpgradingFrom44To451 = "upgrading from 4.4 to 4.5.1"_sd; + static constexpr StringData kVersion47 = "4.7"_sd; + static constexpr StringData kVersionDowngradingFrom47To44 = "downgrading from 4.7 to 4.4"_sd; + static constexpr StringData kVersionUpgradingFrom44To47 = "upgrading from 4.4 to 4.7"_sd; static constexpr StringData kVersionUnset = "Unset"_sd; static constexpr StringData kParameterName = "featureCompatibilityVersion"_sd; static constexpr StringData kLastLTS = kVersion44; static constexpr StringData kLastContinuous = kVersion44; - static constexpr StringData kLatest = kVersion451; + static constexpr StringData kLatest = kVersion47; static ServerGlobalParams::FeatureCompatibility::Version parseVersion(StringData versionString); @@ -76,12 +76,12 @@ public: return kVersionUnset; case ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo44: return kVersion44; - case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451: - return kVersionUpgradingFrom44To451; - case ServerGlobalParams::FeatureCompatibility::Version::kDowngradingFrom451To44: - return kVersionDowngradingFrom451To44; - case ServerGlobalParams::FeatureCompatibility::Version::kVersion451: - return kVersion451; + case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To47: + return kVersionUpgradingFrom44To47; + case ServerGlobalParams::FeatureCompatibility::Version::kDowngradingFrom47To44: + return kVersionDowngradingFrom47To44; + case ServerGlobalParams::FeatureCompatibility::Version::kVersion47: + return kVersion47; default: MONGO_UNREACHABLE; } diff --git a/src/mongo/db/commands/run_aggregate.cpp b/src/mongo/db/commands/run_aggregate.cpp index 855556d154d..5964e931397 100644 --- a/src/mongo/db/commands/run_aggregate.cpp +++ b/src/mongo/db/commands/run_aggregate.cpp @@ -353,7 +353,7 @@ Status collatorCompatibleWithPipeline(OperationContext* opCtx, return Status::OK(); } -// A 4.6 mongoS issues $mergeCursors pipelines with ChunkVersion::IGNORED. On the shard, this will +// A 4.7+ mongoS issues $mergeCursors pipelines with ChunkVersion::IGNORED. On the shard, this will // skip the versioning check but also marks the operation as versioned, so the shard knows that any // sub-operations executed by the merging pipeline should also be versioned. We manually set the // IGNORED version here if we are running a $mergeCursors pipeline and the operation is not already diff --git a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp index 87b0540ebea..224a8a7b934 100644 --- a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp +++ b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp @@ -93,8 +93,9 @@ void deletePersistedDefaultRWConcernDocument(OperationContext* opCtx) { } /** - * Sets the minimum allowed version for the cluster. If it is 4.4, then the node should not - * use 4.5.1 features. + * Sets the minimum allowed feature compatibility version for the cluster. The cluster should not + * use any new features introduced in binary versions that are newer than the feature compatibility + * version set. * * Format: * { @@ -122,11 +123,11 @@ public: using FCVP = FeatureCompatibilityVersionParser; std::stringstream h; h << "Set the featureCompatibilityVersion exposed by this node. If set to '" - << FCVP::kVersion44 << "', then " << FCVP::kVersion451 - << " features are disabled. If set to '" << FCVP::kVersion451 << "', then " - << FCVP::kVersion451 + << FCVP::kVersion44 << "', then " << FCVP::kVersion47 + << " features are disabled. If set to '" << FCVP::kVersion47 << "', then " + << FCVP::kVersion47 << " features are enabled, and all nodes in the cluster must be binary version " - << FCVP::kVersion451 << ". See " + << FCVP::kVersion47 << ". See " << feature_compatibility_version_documentation::kCompatibilityLink << "."; return h.str(); } @@ -184,15 +185,15 @@ public: ServerGlobalParams::FeatureCompatibility::Version actualVersion = serverGlobalParams.featureCompatibility.getVersion(); - if (requestedVersion == FeatureCompatibilityVersionParser::kVersion451) { + if (requestedVersion == FeatureCompatibilityVersionParser::kVersion47) { uassert(ErrorCodes::IllegalOperation, - "cannot initiate featureCompatibilityVersion upgrade to 4.5.1 while a previous " + "cannot initiate featureCompatibilityVersion upgrade to 4.7 while a previous " "featureCompatibilityVersion downgrade to 4.4 has not completed. Finish " - "downgrade to 4.4, then upgrade to 4.5.1.", + "downgrade to 4.4, then upgrade to 4.7.", actualVersion != - ServerGlobalParams::FeatureCompatibility::Version::kDowngradingFrom451To44); + ServerGlobalParams::FeatureCompatibility::Version::kDowngradingFrom47To44); - if (actualVersion == ServerGlobalParams::FeatureCompatibility::Version::kVersion451) { + if (actualVersion == ServerGlobalParams::FeatureCompatibility::Version::kVersion47) { // Set the client's last opTime to the system last opTime so no-ops wait for // writeConcern. repl::ReplClientInfo::forClient(opCtx->getClient()) @@ -207,7 +208,7 @@ public: // Take the global lock in S mode to create a barrier for operations taking the // global IX or X locks. This ensures that either // - The global IX/X locked operation will start after the FCV change, see the - // upgrading to 4.5.1 FCV and act accordingly. + // upgrading to the latest FCV and act accordingly. // - The global IX/X locked operation began prior to the FCV change, is acting on // that assumption and will finish before upgrade procedures begin right after // this. @@ -243,9 +244,9 @@ public: } else if (requestedVersion == FeatureCompatibilityVersionParser::kVersion44) { uassert(ErrorCodes::IllegalOperation, "cannot initiate setting featureCompatibilityVersion to 4.4 while a previous " - "featureCompatibilityVersion upgrade to 4.5.1 has not completed.", + "featureCompatibilityVersion upgrade to 4.7 has not completed.", actualVersion != - ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451); + ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To47); if (actualVersion == ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo44) { |