summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands
diff options
context:
space:
mode:
authorLingzhi Deng <lingzhi.deng@mongodb.com>2020-07-27 16:47:57 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-08-02 05:39:29 +0000
commit475078ffd9b65803238a1df57e4e28f8b1bdf5ca (patch)
treeabb2b05d0427d36351aeebf9b4a4bfb3f285573f /src/mongo/db/commands
parentde36e2cbc7e7f38a4d2b1d017666277478ba1c7b (diff)
downloadmongo-475078ffd9b65803238a1df57e4e28f8b1bdf5ca.tar.gz
SERVER-49783: Update latest FCV to 4.7
Diffstat (limited to 'src/mongo/db/commands')
-rw-r--r--src/mongo/db/commands/conn_pool_stats.cpp2
-rw-r--r--src/mongo/db/commands/feature_compatibility_version.cpp25
-rw-r--r--src/mongo/db/commands/feature_compatibility_version_command_parser.cpp4
-rw-r--r--src/mongo/db/commands/feature_compatibility_version_parser.h20
-rw-r--r--src/mongo/db/commands/run_aggregate.cpp2
-rw-r--r--src/mongo/db/commands/set_feature_compatibility_version_command.cpp29
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) {