summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLingzhi Deng <lingzhi.deng@mongodb.com>2020-07-01 00:14:47 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-07-09 16:26:41 +0000
commit98cf395c1e85d015032a4ef542fb491c47d726c3 (patch)
treecfb5b52286f86006751a7a1a5f143d1cba907c04
parentc8e9a31cd3c21b7b40864e39323fbf0823f79f61 (diff)
downloadmongo-98cf395c1e85d015032a4ef542fb491c47d726c3.tar.gz
SERVER-49063: Update FCV 4.6 constants to 4.5.1
-rw-r--r--buildscripts/resmokelib/multiversionconstants.py2
-rw-r--r--jstests/multiVersion/genericSetFCVUsage/major_version_upgrade.js2
-rw-r--r--src/mongo/db/commands/feature_compatibility_version.cpp22
-rw-r--r--src/mongo/db/commands/feature_compatibility_version.h12
-rw-r--r--src/mongo/db/commands/feature_compatibility_version_command_parser.cpp4
-rw-r--r--src/mongo/db/commands/feature_compatibility_version_parser.cpp22
-rw-r--r--src/mongo/db/commands/feature_compatibility_version_parser.h18
-rw-r--r--src/mongo/db/commands/set_feature_compatibility_version_command.cpp30
-rw-r--r--src/mongo/db/index/index_descriptor.cpp2
-rw-r--r--src/mongo/db/mongod_main.cpp2
-rw-r--r--src/mongo/db/repair_database_and_check_version.cpp10
-rw-r--r--src/mongo/db/repl/initial_syncer_test.cpp2
-rw-r--r--src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp3
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl.cpp2
-rw-r--r--src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp2
-rw-r--r--src/mongo/db/s/config/sharding_catalog_manager_shard_operations.cpp4
-rw-r--r--src/mongo/db/server_options.h26
-rw-r--r--src/mongo/db/storage/storage_engine_impl.cpp2
-rw-r--r--src/mongo/db/vector_clock.cpp3
-rw-r--r--src/mongo/db/wire_version.h6
-rw-r--r--src/mongo/s/commands/cluster_set_feature_compatibility_version_cmd.cpp9
-rw-r--r--src/mongo/s/mongos_main.cpp2
-rw-r--r--src/mongo/shell/feature_compatibility_version.js2
23 files changed, 95 insertions, 94 deletions
diff --git a/buildscripts/resmokelib/multiversionconstants.py b/buildscripts/resmokelib/multiversionconstants.py
index 3d0bf83debc..4a524c5f0b4 100644
--- a/buildscripts/resmokelib/multiversionconstants.py
+++ b/buildscripts/resmokelib/multiversionconstants.py
@@ -2,7 +2,7 @@
LAST_STABLE_BIN_VERSION = "4.4"
LAST_STABLE_FCV = "4.4"
-LATEST_FCV = "4.6"
+LATEST_FCV = "4.5.1"
LAST_STABLE_MONGO_BINARY = "mongo-" + LAST_STABLE_BIN_VERSION
LAST_STABLE_MONGOD_BINARY = "mongod-" + LAST_STABLE_BIN_VERSION
diff --git a/jstests/multiVersion/genericSetFCVUsage/major_version_upgrade.js b/jstests/multiVersion/genericSetFCVUsage/major_version_upgrade.js
index b98384287d6..2975a91f58e 100644
--- a/jstests/multiVersion/genericSetFCVUsage/major_version_upgrade.js
+++ b/jstests/multiVersion/genericSetFCVUsage/major_version_upgrade.js
@@ -38,7 +38,7 @@ const versions = [
{binVersion: '4.2', featureCompatibilityVersion: '4.2', testCollection: 'four_two'},
{binVersion: '4.4', featureCompatibilityVersion: '4.4', testCollection: 'four_four'},
{binVersion: 'last-stable', testCollection: 'last_stable'},
- {binVersion: 'latest', featureCompatibilityVersion: '4.6', testCollection: 'latest'},
+ {binVersion: 'latest', featureCompatibilityVersion: '4.5.1', testCollection: 'latest'},
];
// These key patterns are considered valid for existing v:0 and v:1 indexes, but are considered
diff --git a/src/mongo/db/commands/feature_compatibility_version.cpp b/src/mongo/db/commands/feature_compatibility_version.cpp
index 9401cc7f0f1..5c96789c300 100644
--- a/src/mongo/db/commands/feature_compatibility_version.cpp
+++ b/src/mongo/db/commands/feature_compatibility_version.cpp
@@ -72,7 +72,7 @@ void FeatureCompatibilityVersion::setTargetUpgrade(OperationContext* opCtx) {
updateMods.append(FeatureCompatibilityVersionParser::kVersionField,
FeatureCompatibilityVersionParser::kVersion44);
updateMods.append(FeatureCompatibilityVersionParser::kTargetVersionField,
- FeatureCompatibilityVersionParser::kVersion46);
+ FeatureCompatibilityVersionParser::kVersion451);
});
}
@@ -125,7 +125,7 @@ void FeatureCompatibilityVersion::setIfCleanStartup(OperationContext* opCtx,
repl::TimestampedBSONObj{
BSON("_id" << FeatureCompatibilityVersionParser::kParameterName
<< FeatureCompatibilityVersionParser::kVersionField
- << (storeUpgradeVersion ? FeatureCompatibilityVersionParser::kVersion46
+ << (storeUpgradeVersion ? FeatureCompatibilityVersionParser::kVersion451
: FeatureCompatibilityVersionParser::kVersion44)),
Timestamp()},
repl::OpTime::kUninitializedTerm)); // No timestamp or term because this write is not
@@ -176,8 +176,8 @@ void FeatureCompatibilityVersion::updateMinWireVersion() {
switch (serverGlobalParams.featureCompatibility.getVersion()) {
case ServerGlobalParams::FeatureCompatibility::kLatest:
- case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingTo46:
- case ServerGlobalParams::FeatureCompatibility::Version::kDowngradingTo44:
+ case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451:
+ case ServerGlobalParams::FeatureCompatibility::Version::kDowngradingFrom451To44:
spec.incomingInternalClient.minWireVersion = LATEST_WIRE_VERSION;
spec.outgoing.minWireVersion = LATEST_WIRE_VERSION;
return;
@@ -229,7 +229,7 @@ void FeatureCompatibilityVersion::_setVersion(
// 2. Setting featureCompatibilityVersion from fullyDowngraded to upgrading.
const auto shouldIncrementTopologyVersion =
newVersion == ServerGlobalParams::FeatureCompatibility::kLastLTS ||
- newVersion == ServerGlobalParams::FeatureCompatibility::Version::kUpgradingTo46;
+ newVersion == ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451;
if (isReplSet && shouldIncrementTopologyVersion) {
replCoordinator->incrementTopologyVersion();
}
@@ -257,10 +257,10 @@ void FeatureCompatibilityVersion::onReplicationRollback(OperationContext* opCtx)
void FeatureCompatibilityVersion::_validateVersion(StringData version) {
uassert(40284,
str::stream() << "featureCompatibilityVersion must be '"
- << FeatureCompatibilityVersionParser::kVersion46 << "' or '"
+ << FeatureCompatibilityVersionParser::kVersion451 << "' or '"
<< FeatureCompatibilityVersionParser::kVersion44 << "'. See "
<< feature_compatibility_version_documentation::kCompatibilityLink << ".",
- version == FeatureCompatibilityVersionParser::kVersion46 ||
+ version == FeatureCompatibilityVersionParser::kVersion451 ||
version == FeatureCompatibilityVersionParser::kVersion44);
}
@@ -320,17 +320,17 @@ void FeatureCompatibilityVersionParameter::append(OperationContext* opCtx,
case ServerGlobalParams::FeatureCompatibility::kLatest:
featureCompatibilityVersionBuilder.append(
FeatureCompatibilityVersionParser::kVersionField,
- FeatureCompatibilityVersionParser::kVersion46);
+ FeatureCompatibilityVersionParser::kVersion451);
return;
- case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingTo46:
+ case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451:
featureCompatibilityVersionBuilder.append(
FeatureCompatibilityVersionParser::kVersionField,
FeatureCompatibilityVersionParser::kVersion44);
featureCompatibilityVersionBuilder.append(
FeatureCompatibilityVersionParser::kTargetVersionField,
- FeatureCompatibilityVersionParser::kVersion46);
+ FeatureCompatibilityVersionParser::kVersion451);
return;
- case ServerGlobalParams::FeatureCompatibility::Version::kDowngradingTo44:
+ case ServerGlobalParams::FeatureCompatibility::Version::kDowngradingFrom451To44:
featureCompatibilityVersionBuilder.append(
FeatureCompatibilityVersionParser::kVersionField,
FeatureCompatibilityVersionParser::kVersion44);
diff --git a/src/mongo/db/commands/feature_compatibility_version.h b/src/mongo/db/commands/feature_compatibility_version.h
index d1058ae57e9..f4d0263f029 100644
--- a/src/mongo/db/commands/feature_compatibility_version.h
+++ b/src/mongo/db/commands/feature_compatibility_version.h
@@ -52,23 +52,23 @@ public:
static Lock::ResourceMutex fcvLock;
/**
- * Records intent to perform a 4.4 -> 4.6 upgrade by updating the on-disk feature
- * compatibility version document to have 'version'=4.4, 'targetVersion'=4.6.
+ * Records intent to perform a 4.4 -> 4.5.1 upgrade by updating the on-disk feature
+ * compatibility version document to have 'version'=4.4, 'targetVersion'=4.5.1.
* Should be called before schemas are modified.
*/
static void setTargetUpgrade(OperationContext* opCtx);
/**
- * Records intent to perform a 4.6 -> 4.4 downgrade by updating the on-disk feature
+ * Records intent to perform a 4.5.1 -> 4.4 downgrade by updating the on-disk feature
* compatibility version document to have 'version'=4.4, 'targetVersion'=4.4.
* Should be called before schemas are modified.
*/
static void setTargetDowngrade(OperationContext* opCtx);
/**
- * Records the completion of a 4.4 <-> 4.6 upgrade or downgrade by updating the on-disk feature
- * compatibility version document to have 'version'=version and unsetting the 'targetVersion'
- * field. Should be called after schemas are modified.
+ * Records the completion of a 4.4 <-> 4.5.1 upgrade or downgrade by updating the on-disk
+ * feature compatibility version document to have 'version'=version and unsetting the
+ * 'targetVersion' field. Should be called after schemas are modified.
*/
static void unsetTargetUpgradeOrDowngrade(OperationContext* opCtx, StringData version);
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 021fdf03d07..27b35a3513b 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::kVersion46 &&
+ if (version != FeatureCompatibilityVersionParser::kVersion451 &&
version != FeatureCompatibilityVersionParser::kVersion44) {
return {ErrorCodes::BadValue,
str::stream() << "Invalid command argument. Expected '"
- << FeatureCompatibilityVersionParser::kVersion46 << "' or '"
+ << FeatureCompatibilityVersionParser::kVersion451 << "' or '"
<< FeatureCompatibilityVersionParser::kVersion44 << "', found "
<< version << " in: " << cmdObj << ". See "
<< feature_compatibility_version_documentation::kCompatibilityLink
diff --git a/src/mongo/db/commands/feature_compatibility_version_parser.cpp b/src/mongo/db/commands/feature_compatibility_version_parser.cpp
index a0a2ead7bea..97fc21eb67e 100644
--- a/src/mongo/db/commands/feature_compatibility_version_parser.cpp
+++ b/src/mongo/db/commands/feature_compatibility_version_parser.cpp
@@ -39,9 +39,9 @@
namespace mongo {
constexpr StringData FeatureCompatibilityVersionParser::kVersion44;
-constexpr StringData FeatureCompatibilityVersionParser::kVersion46;
-constexpr StringData FeatureCompatibilityVersionParser::kVersionDowngradingTo44;
-constexpr StringData FeatureCompatibilityVersionParser::kVersionUpgradingTo46;
+constexpr StringData FeatureCompatibilityVersionParser::kVersion451;
+constexpr StringData FeatureCompatibilityVersionParser::kVersionDowngradingFrom451To44;
+constexpr StringData FeatureCompatibilityVersionParser::kVersionUpgradingFrom44To451;
constexpr StringData FeatureCompatibilityVersionParser::kVersionUnset;
constexpr StringData FeatureCompatibilityVersionParser::kParameterName;
@@ -72,11 +72,11 @@ FeatureCompatibilityVersionParser::parse(const BSONObj& featureCompatibilityVers
<< ".");
}
- if (elem.String() != kVersion46 && elem.String() != kVersion44) {
+ if (elem.String() != kVersion451 && elem.String() != kVersion44) {
return Status(ErrorCodes::BadValue,
str::stream()
<< "Invalid value for " << fieldName << ", found "
- << elem.String() << ", expected '" << kVersion46 << "' or '"
+ << elem.String() << ", expected '" << kVersion451 << "' or '"
<< kVersion44 << "'. Contents of " << kParameterName
<< " document in "
<< NamespaceString::kServerConfigurationNamespace.toString()
@@ -103,15 +103,15 @@ FeatureCompatibilityVersionParser::parse(const BSONObj& featureCompatibilityVers
}
if (versionString == kVersion44) {
- if (targetVersionString == kVersion46) {
- version = ServerGlobalParams::FeatureCompatibility::Version::kUpgradingTo46;
+ if (targetVersionString == kVersion451) {
+ version = ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451;
} else if (targetVersionString == kVersion44) {
- version = ServerGlobalParams::FeatureCompatibility::Version::kDowngradingTo44;
+ version = ServerGlobalParams::FeatureCompatibility::Version::kDowngradingFrom451To44;
} else {
version = ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo44;
}
- } else if (versionString == kVersion46) {
- if (targetVersionString == kVersion46 || targetVersionString == kVersion44) {
+ } else if (versionString == kVersion451) {
+ if (targetVersionString == kVersion451 || targetVersionString == kVersion44) {
return Status(ErrorCodes::BadValue,
str::stream()
<< "Invalid state for " << kParameterName << " document in "
@@ -120,7 +120,7 @@ FeatureCompatibilityVersionParser::parse(const BSONObj& featureCompatibilityVers
<< feature_compatibility_version_documentation::kCompatibilityLink
<< ".");
} else {
- version = ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46;
+ version = ServerGlobalParams::FeatureCompatibility::Version::kVersion451;
}
} else {
return Status(ErrorCodes::BadValue,
diff --git a/src/mongo/db/commands/feature_compatibility_version_parser.h b/src/mongo/db/commands/feature_compatibility_version_parser.h
index e52e73e4477..01f25fe6f5d 100644
--- a/src/mongo/db/commands/feature_compatibility_version_parser.h
+++ b/src/mongo/db/commands/feature_compatibility_version_parser.h
@@ -41,9 +41,9 @@ namespace mongo {
class FeatureCompatibilityVersionParser {
public:
static constexpr StringData kVersion44 = "4.4"_sd;
- static constexpr StringData kVersion46 = "4.6"_sd;
- static constexpr StringData kVersionDowngradingTo44 = "downgrading to 4.4"_sd;
- static constexpr StringData kVersionUpgradingTo46 = "upgrading to 4.6"_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 kVersionUnset = "Unset"_sd;
static constexpr StringData kParameterName = "featureCompatibilityVersion"_sd;
@@ -67,12 +67,12 @@ public:
return kVersionUnset;
case ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo44:
return kVersion44;
- case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingTo46:
- return kVersionUpgradingTo46;
- case ServerGlobalParams::FeatureCompatibility::Version::kDowngradingTo44:
- return kVersionDowngradingTo44;
- case ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46:
- return kVersion46;
+ case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451:
+ return kVersionUpgradingFrom44To451;
+ case ServerGlobalParams::FeatureCompatibility::Version::kDowngradingFrom451To44:
+ return kVersionDowngradingFrom451To44;
+ case ServerGlobalParams::FeatureCompatibility::Version::kVersion451:
+ return kVersion451;
default:
MONGO_UNREACHABLE;
}
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 7f5e2a6400e..f34a64d157c 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,8 @@ void deletePersistedDefaultRWConcernDocument(OperationContext* opCtx) {
}
/**
- * Sets the minimum allowed version for the cluster. If it is 4.4, then the node should not use 4.6
- * features.
+ * Sets the minimum allowed version for the cluster. If it is 4.4, then the node should not
+ * use 4.5.1 features.
*
* Format:
* {
@@ -121,11 +121,12 @@ public:
std::string help() const override {
using FCVP = FeatureCompatibilityVersionParser;
std::stringstream h;
- h << "Set the API version exposed by this node. If set to '" << FCVP::kVersion44
- << "', then " << FCVP::kVersion46 << " features are disabled. If set to '"
- << FCVP::kVersion46 << "', then " << FCVP::kVersion46
+ 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
<< " features are enabled, and all nodes in the cluster must be binary version "
- << FCVP::kVersion46 << ". See "
+ << FCVP::kVersion451 << ". See "
<< feature_compatibility_version_documentation::kCompatibilityLink << ".";
return h.str();
}
@@ -183,16 +184,15 @@ public:
ServerGlobalParams::FeatureCompatibility::Version actualVersion =
serverGlobalParams.featureCompatibility.getVersion();
- if (requestedVersion == FeatureCompatibilityVersionParser::kVersion46) {
+ if (requestedVersion == FeatureCompatibilityVersionParser::kVersion451) {
uassert(ErrorCodes::IllegalOperation,
- "cannot initiate featureCompatibilityVersion upgrade to 4.6 while a previous "
+ "cannot initiate featureCompatibilityVersion upgrade to 4.5.1 while a previous "
"featureCompatibilityVersion downgrade to 4.4 has not completed. Finish "
- "downgrade to 4.4, then upgrade to 4.6.",
+ "downgrade to 4.4, then upgrade to 4.5.1.",
actualVersion !=
- ServerGlobalParams::FeatureCompatibility::Version::kDowngradingTo44);
+ ServerGlobalParams::FeatureCompatibility::Version::kDowngradingFrom451To44);
- if (actualVersion ==
- ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46) {
+ if (actualVersion == ServerGlobalParams::FeatureCompatibility::Version::kVersion451) {
// Set the client's last opTime to the system last opTime so no-ops wait for
// writeConcern.
repl::ReplClientInfo::forClient(opCtx->getClient())
@@ -206,7 +206,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.6 FCV and act accordingly.
+ // upgrading to 4.5.1 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.
@@ -241,9 +241,9 @@ public:
} else if (requestedVersion == FeatureCompatibilityVersionParser::kVersion44) {
uassert(ErrorCodes::IllegalOperation,
"cannot initiate setting featureCompatibilityVersion to 4.4 while a previous "
- "featureCompatibilityVersion upgrade to 4.6 has not completed.",
+ "featureCompatibilityVersion upgrade to 4.5.1 has not completed.",
actualVersion !=
- ServerGlobalParams::FeatureCompatibility::Version::kUpgradingTo46);
+ ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451);
if (actualVersion ==
ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo44) {
diff --git a/src/mongo/db/index/index_descriptor.cpp b/src/mongo/db/index/index_descriptor.cpp
index 7c16ae58040..55e8ec0eb8c 100644
--- a/src/mongo/db/index/index_descriptor.cpp
+++ b/src/mongo/db/index/index_descriptor.cpp
@@ -180,7 +180,7 @@ IndexDescriptor::Comparison IndexDescriptor::compareIndexOptions(
// The partialFilterExpression is only part of the index signature if FCV has been set to 4.6.
// TODO SERVER-47766: remove these FCV checks after we branch for 4.7.
auto isFCV46 = serverGlobalParams.featureCompatibility.isVersion(
- ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46);
+ ServerGlobalParams::FeatureCompatibility::Version::kVersion451);
// If we have a partial filter expression and the other index doesn't, or vice-versa, then the
// two indexes are not equivalent. We therefore return Comparison::kDifferent immediately.
diff --git a/src/mongo/db/mongod_main.cpp b/src/mongo/db/mongod_main.cpp
index fe91a5478fc..368c7605491 100644
--- a/src/mongo/db/mongod_main.cpp
+++ b/src/mongo/db/mongod_main.cpp
@@ -1084,7 +1084,7 @@ void shutdownTask(const ShutdownTaskArgs& shutdownArgs) {
// TODO SERVER-49138: Remove this FCV check once we branch for 4.8.
if (serverGlobalParams.featureCompatibility.isVersion(
- ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46)) {
+ ServerGlobalParams::FeatureCompatibility::Version::kVersion451)) {
if (auto replCoord = repl::ReplicationCoordinator::get(serviceContext);
replCoord && replCoord->enterQuiesceModeIfSecondary(shutdownTimeout)) {
ServiceContext::UniqueOperationContext uniqueOpCtx;
diff --git a/src/mongo/db/repair_database_and_check_version.cpp b/src/mongo/db/repair_database_and_check_version.cpp
index 8d959ee2bd1..b7a56e42764 100644
--- a/src/mongo/db/repair_database_and_check_version.cpp
+++ b/src/mongo/db/repair_database_and_check_version.cpp
@@ -77,7 +77,7 @@ namespace {
const std::string mustDowngradeErrorMsg = str::stream()
<< "UPGRADE PROBLEM: The data files need to be fully upgraded to version 4.4 before attempting "
- "an upgrade to 4.6; see "
+ "an upgrade to 4.5.1; see "
<< feature_compatibility_version_documentation::kUpgradeLink << " for more details.";
Status restoreMissingFeatureCompatibilityVersionDocument(OperationContext* opCtx,
@@ -584,22 +584,22 @@ bool repairDatabasesAndCheckVersion(OperationContext* opCtx) {
// On startup, if the version is in an upgrading or downgrading state, print a
// warning.
if (version ==
- ServerGlobalParams::FeatureCompatibility::Version::kUpgradingTo46) {
+ ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451) {
LOGV2_WARNING_OPTIONS(
21011,
{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.6.",
+ "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.6",
+ "setFeatureCompatibilityVersion command to resume upgrade to 4.5.1",
"currentfeatureCompatibilityVersion"_attr =
FeatureCompatibilityVersionParser::toString(version));
} else if (version ==
ServerGlobalParams::FeatureCompatibility::Version::
- kDowngradingTo44) {
+ kDowngradingFrom451To44) {
LOGV2_WARNING_OPTIONS(
21014,
{logv2::LogTag::kStartupWarnings},
diff --git a/src/mongo/db/repl/initial_syncer_test.cpp b/src/mongo/db/repl/initial_syncer_test.cpp
index 6b7138aaa8e..9ea641dfc5a 100644
--- a/src/mongo/db/repl/initial_syncer_test.cpp
+++ b/src/mongo/db/repl/initial_syncer_test.cpp
@@ -1905,7 +1905,7 @@ TEST_F(InitialSyncerTest,
InitialSyncerReturnsIncompatibleServerVersionWhenFCVFetcherReturnsUpgradeTargetVersion) {
auto docs = {BSON("_id" << FeatureCompatibilityVersionParser::kParameterName << "version"
<< FeatureCompatibilityVersionParser::kVersion44 << "targetVersion"
- << FeatureCompatibilityVersionParser::kVersion46)};
+ << FeatureCompatibilityVersionParser::kVersion451)};
runInitialSyncWithBadFCVResponse(docs, ErrorCodes::IncompatibleServerVersion);
}
diff --git a/src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp b/src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp
index 92d0dd799c6..c1bc9b7ac83 100644
--- a/src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp
+++ b/src/mongo/db/repl/repl_set_heartbeat_args_v1.cpp
@@ -178,8 +178,9 @@ void ReplSetHeartbeatArgsV1::addToBSON(BSONObjBuilder* builder) const {
builder->appendIntOrLL(kSenderIdFieldName, _senderId);
builder->appendIntOrLL(kTermFieldName, _term);
+ // TODO SERVER-49382: Remove this FCV check after we branch for 4.7.
if (serverGlobalParams.featureCompatibility.isVersion(
- ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46)) {
+ ServerGlobalParams::FeatureCompatibility::Version::kVersion451)) {
builder->append(kPrimaryIdFieldName, _primaryId);
}
}
diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp
index 7299ba08b03..c058325362e 100644
--- a/src/mongo/db/repl/replication_coordinator_impl.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl.cpp
@@ -3198,7 +3198,7 @@ bool ReplicationCoordinatorImpl::_supportsAutomaticReconfig() const {
}
if (serverGlobalParams.featureCompatibility.getVersion() !=
- ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46) {
+ ServerGlobalParams::FeatureCompatibility::Version::kVersion451) {
return false;
}
diff --git a/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp b/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp
index 3b6a9b7da00..29e0011b2c1 100644
--- a/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp
+++ b/src/mongo/db/s/config/sharding_catalog_manager_add_shard_test.cpp
@@ -139,7 +139,7 @@ protected:
ASSERT_EQ(request.dbname, "admin");
ASSERT_BSONOBJ_EQ(request.cmdObj,
BSON("setFeatureCompatibilityVersion"
- << "4.6"
+ << "4.5.1"
<< "writeConcern" << writeConcern));
return response;
diff --git a/src/mongo/db/s/config/sharding_catalog_manager_shard_operations.cpp b/src/mongo/db/s/config/sharding_catalog_manager_shard_operations.cpp
index 15792b5239e..5978639a12b 100644
--- a/src/mongo/db/s/config/sharding_catalog_manager_shard_operations.cpp
+++ b/src/mongo/db/s/config/sharding_catalog_manager_shard_operations.cpp
@@ -653,9 +653,9 @@ StatusWith<std::string> ShardingCatalogManager::addShard(
BSONObj setFCVCmd;
switch (serverGlobalParams.featureCompatibility.getVersion()) {
case ServerGlobalParams::FeatureCompatibility::kLatest:
- case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingTo46:
+ case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingFrom44To451:
setFCVCmd = BSON(FeatureCompatibilityVersionCommandParser::kCommandName
- << FeatureCompatibilityVersionParser::kVersion46
+ << FeatureCompatibilityVersionParser::kVersion451
<< WriteConcernOptions::kWriteConcernField
<< opCtx->getWriteConcern().toBSON());
break;
diff --git a/src/mongo/db/server_options.h b/src/mongo/db/server_options.h
index fb241af8e0a..3be5400522a 100644
--- a/src/mongo/db/server_options.h
+++ b/src/mongo/db/server_options.h
@@ -166,19 +166,19 @@ struct ServerGlobalParams {
* (4.4, Unset): Only 4.4 features are available, and new and existing storage
* engine entries use the 4.4 format
*
- * kUpgradingTo46
- * (4.4, 4.6): Only 4.4 features are available, but new storage engine entries
- * use the 4.6 format, and existing entries may have either the
- * 4.4 or 4.6 format
+ * kUpgradingFrom44To451
+ * (4.4, 4.5.1): Only 4.4 features are available, but new storage engine entries
+ * use the 4.5.1 format, and existing entries may have either the
+ * 4.4 or 4.5.1 format
*
- * kFullyUpgradedTo46
- * (4.6, Unset): 4.6 features are available, and new and existing storage
- * engine entries use the 4.6 format
+ * kVersion451
+ * (4.5.1, Unset): 4.5.1 features are available, and new and existing storage
+ * engine entries use the 4.5.1 format
*
- * kDowngradingTo44
+ * kDowngradingFrom451To44
* (4.4, 4.4): Only 4.4 features are available and new storage engine
* entries use the 4.4 format, but existing entries may have
- * either the 4.4 or 4.6 format
+ * either the 4.4 or 4.5.1 format
*
* kUnsetDefault44Behavior
* (Unset, Unset): This is the case on startup before the fCV document is
@@ -193,12 +193,12 @@ struct ServerGlobalParams {
// lower than some maximum, respectively.
kUnsetDefault44Behavior = 0,
kFullyDowngradedTo44 = 1,
- kDowngradingTo44 = 2,
- kUpgradingTo46 = 3,
- kFullyUpgradedTo46 = 4,
+ kDowngradingFrom451To44 = 2,
+ kUpgradingFrom44To451 = 3,
+ kVersion451 = 4,
};
- static constexpr Version kLatest = Version::kFullyUpgradedTo46;
+ static constexpr Version kLatest = Version::kVersion451;
static constexpr Version kLastContinuous = Version::kFullyDowngradedTo44;
static constexpr Version kLastLTS = Version::kFullyDowngradedTo44;
diff --git a/src/mongo/db/storage/storage_engine_impl.cpp b/src/mongo/db/storage/storage_engine_impl.cpp
index ce7b5c711c3..bcded20bb6d 100644
--- a/src/mongo/db/storage/storage_engine_impl.cpp
+++ b/src/mongo/db/storage/storage_engine_impl.cpp
@@ -860,7 +860,7 @@ bool StorageEngineImpl::supportsResumableIndexBuilds() const {
return enableResumableIndexBuilds && supportsReadConcernMajority() && !isEphemeral() &&
serverGlobalParams.featureCompatibility.isVersionInitialized() &&
serverGlobalParams.featureCompatibility.getVersion() ==
- ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46 &&
+ ServerGlobalParams::FeatureCompatibility::Version::kVersion451 &&
!repl::ReplSettings::shouldRecoverFromOplogAsStandalone();
}
diff --git a/src/mongo/db/vector_clock.cpp b/src/mongo/db/vector_clock.cpp
index 5991ba97671..5ea6b280bed 100644
--- a/src/mongo/db/vector_clock.cpp
+++ b/src/mongo/db/vector_clock.cpp
@@ -159,8 +159,7 @@ public:
Component component) const override {
const auto& fcv = serverGlobalParams.featureCompatibility;
if (fcv.isVersionInitialized() &&
- fcv.getVersion() ==
- ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46) {
+ fcv.getVersion() == ServerGlobalParams::FeatureCompatibility::Version::kVersion451) {
return ActualFormat::out(service, opCtx, permitRefresh, out, time, component);
}
return false;
diff --git a/src/mongo/db/wire_version.h b/src/mongo/db/wire_version.h
index 35244b7ddda..6e9403cf714 100644
--- a/src/mongo/db/wire_version.h
+++ b/src/mongo/db/wire_version.h
@@ -79,12 +79,12 @@ enum WireVersion {
// Supports resumable initial sync (4.4+).
RESUMABLE_INITIAL_SYNC = 9,
- // Supports features available from 4.6 and onwards.
- WIRE_VERSION_46 = 10,
+ // Supports features available from 4.5.1 and onwards.
+ WIRE_VERSION_451 = 10,
// Set this to the highest value in this enum - it will be the default maxWireVersion for
// the WireSpec values.
- LATEST_WIRE_VERSION = WIRE_VERSION_46,
+ LATEST_WIRE_VERSION = WIRE_VERSION_451,
};
/**
diff --git a/src/mongo/s/commands/cluster_set_feature_compatibility_version_cmd.cpp b/src/mongo/s/commands/cluster_set_feature_compatibility_version_cmd.cpp
index 51823aec2be..ab77d891cd8 100644
--- a/src/mongo/s/commands/cluster_set_feature_compatibility_version_cmd.cpp
+++ b/src/mongo/s/commands/cluster_set_feature_compatibility_version_cmd.cpp
@@ -72,11 +72,12 @@ public:
std::string help() const override {
using FCVP = FeatureCompatibilityVersionParser;
return str::stream()
- << "Set the API version used by this cluster. If set to '" << FCVP::kVersion44
- << "', then " << FCVP::kVersion46 << " features are disabled. If set to '"
- << FCVP::kVersion46 << "', then " << FCVP::kVersion46
+ << "Set the featureCompatibilityVersion used by this cluster. If set to '"
+ << FCVP::kVersion44 << "', then " << FCVP::kVersion451
+ << " features are disabled. If set to '" << FCVP::kVersion451 << "', then "
+ << FCVP::kVersion451
<< " features are enabled, and all nodes in the cluster must be binary version "
- << FCVP::kVersion46 << ". See "
+ << FCVP::kVersion451 << ". See "
<< feature_compatibility_version_documentation::kCompatibilityLink << ".";
}
diff --git a/src/mongo/s/mongos_main.cpp b/src/mongo/s/mongos_main.cpp
index e6a91259662..e60aaf53fdb 100644
--- a/src/mongo/s/mongos_main.cpp
+++ b/src/mongo/s/mongos_main.cpp
@@ -290,7 +290,7 @@ void cleanupTask(const ShutdownTaskArgs& shutdownArgs) {
//
// TODO SERVER-49138: Remove this FCV check once we branch for 4.8.
if (serverGlobalParams.featureCompatibility.isVersion(
- ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo46);
+ ServerGlobalParams::FeatureCompatibility::Version::kVersion451);
auto mongosTopCoord = MongosTopologyCoordinator::get(opCtx)) {
mongosTopCoord->enterQuiesceModeAndWait(opCtx, quiesceTime);
}
diff --git a/src/mongo/shell/feature_compatibility_version.js b/src/mongo/shell/feature_compatibility_version.js
index d5deffaf170..b014a3b90d5 100644
--- a/src/mongo/shell/feature_compatibility_version.js
+++ b/src/mongo/shell/feature_compatibility_version.js
@@ -10,7 +10,7 @@
* multiple times.
*/
-var latestFCV = "4.6";
+var latestFCV = "4.5.1";
var lastStableFCV = "4.4";
/**