summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJudah Schvimer <judah@mongodb.com>2017-10-24 11:01:56 -0400
committerJudah Schvimer <judah@mongodb.com>2017-10-25 11:32:11 -0400
commit4199e981751f660c16e4909deccb9f5c7578754d (patch)
tree63cc0e1d868dc00a002fe2004a02e7172429482f
parent0935d7067068b3cb62a802a8696dd39c8d7e1944 (diff)
downloadmongo-4199e981751f660c16e4909deccb9f5c7578754d.tar.gz
SERVER-31608 future-proof FCV enum
-rw-r--r--src/mongo/db/auth/authorization_session_test.cpp2
-rw-r--r--src/mongo/db/auth/role_graph_test.cpp2
-rw-r--r--src/mongo/db/auth/user_document_parser_test.cpp4
-rw-r--r--src/mongo/db/catalog/index_spec_validate_test.cpp81
-rw-r--r--src/mongo/db/commands/feature_compatibility_version.cpp18
-rw-r--r--src/mongo/db/commands/feature_compatibility_version.h6
-rw-r--r--src/mongo/db/keys_collection_cache_reader_and_updater_test.cpp6
-rw-r--r--src/mongo/db/keys_collection_manager_sharding_test.cpp4
-rw-r--r--src/mongo/db/logical_session_cache_test.cpp2
-rw-r--r--src/mongo/db/logical_session_id_test.cpp2
-rw-r--r--src/mongo/db/logical_time_validator_test.cpp2
-rw-r--r--src/mongo/db/pipeline/document_source_change_stream_test.cpp2
-rw-r--r--src/mongo/db/pipeline/document_source_lookup_test.cpp4
-rw-r--r--src/mongo/db/pipeline/pipeline_test.cpp10
-rw-r--r--src/mongo/db/repl/idempotency_test.cpp4
-rw-r--r--src/mongo/db/repl/oplog_fetcher_test.cpp4
-rw-r--r--src/mongo/db/repl/replication_consistency_markers_impl_test.cpp6
-rw-r--r--src/mongo/db/repl/replication_info.cpp2
-rw-r--r--src/mongo/db/repl/sync_tail_test.cpp2
-rw-r--r--src/mongo/db/repl/sync_tail_test_fixture.cpp2
-rw-r--r--src/mongo/db/s/session_catalog_migration_destination_test.cpp2
-rw-r--r--src/mongo/db/server_options.h57
-rw-r--r--src/mongo/db/views/view_catalog_test.cpp8
-rw-r--r--src/mongo/dbtests/dbtests.cpp2
-rw-r--r--src/mongo/s/server.cpp2
-rw-r--r--src/mongo/shell/dbshell.cpp2
26 files changed, 138 insertions, 100 deletions
diff --git a/src/mongo/db/auth/authorization_session_test.cpp b/src/mongo/db/auth/authorization_session_test.cpp
index 9fb7effb64c..9a77a25de18 100644
--- a/src/mongo/db/auth/authorization_session_test.cpp
+++ b/src/mongo/db/auth/authorization_session_test.cpp
@@ -94,7 +94,7 @@ public:
void setUp() {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
session = transportLayer.createSession();
client = serviceContext.makeClient("testClient", session);
RestrictionEnvironment::set(
diff --git a/src/mongo/db/auth/role_graph_test.cpp b/src/mongo/db/auth/role_graph_test.cpp
index dcbe03002ca..5a8faa3c1b3 100644
--- a/src/mongo/db/auth/role_graph_test.cpp
+++ b/src/mongo/db/auth/role_graph_test.cpp
@@ -775,7 +775,7 @@ TEST(RoleGraphTest, AddRoleFromDocument) {
};
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
RoleGraph graph;
diff --git a/src/mongo/db/auth/user_document_parser_test.cpp b/src/mongo/db/auth/user_document_parser_test.cpp
index 2eed6173e0a..ab410823dea 100644
--- a/src/mongo/db/auth/user_document_parser_test.cpp
+++ b/src/mongo/db/auth/user_document_parser_test.cpp
@@ -232,7 +232,7 @@ public:
void setUp() {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
user.reset(new User(UserName("spencer", "test")));
adminUser.reset(new User(UserName("admin", "admin")));
}
@@ -646,7 +646,7 @@ TEST_F(V2UserDocumentParsing, V2AuthenticationRestrictionsExtraction) {
TEST_F(V2UserDocumentParsing, V2AuthenticationRestrictionsExtractionAndRetreival) {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
enableIPv6(true);
ASSERT_OK(v2parser.initializeAuthenticationRestrictionsFromUserDocument(
BSON("user"
diff --git a/src/mongo/db/catalog/index_spec_validate_test.cpp b/src/mongo/db/catalog/index_spec_validate_test.cpp
index be5c1135818..764990696c6 100644
--- a/src/mongo/db/catalog/index_spec_validate_test.cpp
+++ b/src/mongo/db/catalog/index_spec_validate_test.cpp
@@ -66,7 +66,8 @@ BSONObj sorted(const BSONObj& obj) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfKeyPatternIsNotAnObject) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::TypeMismatch,
validateIndexSpec(kDefaultOpCtx,
@@ -92,7 +93,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfKeyPatternIsNotAnObject) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfFieldRepeatedInKeyPattern) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::BadValue,
validateIndexSpec(kDefaultOpCtx,
@@ -112,7 +114,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfFieldRepeatedInKeyPattern) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfKeyPatternIsNotPresent) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::FailedToParse,
validateIndexSpec(kDefaultOpCtx,
@@ -124,7 +127,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfKeyPatternIsNotPresent) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfNameIsNotAString) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::TypeMismatch,
validateIndexSpec(kDefaultOpCtx,
@@ -135,7 +139,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfNameIsNotAString) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfNameIsNotPresent) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::FailedToParse,
validateIndexSpec(kDefaultOpCtx,
@@ -146,7 +151,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfNameIsNotPresent) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfNamespaceIsNotAString) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::TypeMismatch,
validateIndexSpec(kDefaultOpCtx,
@@ -168,7 +174,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfNamespaceIsNotAString) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfNamespaceIsEmptyString) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::BadValue,
validateIndexSpec(kDefaultOpCtx,
@@ -182,7 +189,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfNamespaceIsEmptyString) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfNamespaceDoesNotMatch) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::BadValue,
validateIndexSpec(kDefaultOpCtx,
@@ -207,7 +215,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfNamespaceDoesNotMatch) {
TEST(IndexSpecValidateTest, ReturnsIndexSpecWithNamespaceFilledInIfItIsNotPresent) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -234,7 +243,8 @@ TEST(IndexSpecValidateTest, ReturnsIndexSpecWithNamespaceFilledInIfItIsNotPresen
TEST(IndexSpecValidateTest, ReturnsIndexSpecUnchangedIfNamespaceAndVersionArePresent) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -259,7 +269,8 @@ TEST(IndexSpecValidateTest, ReturnsIndexSpecUnchangedIfNamespaceAndVersionArePre
TEST(IndexSpecValidateTest, ReturnsAnErrorIfVersionIsNotANumber) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::TypeMismatch,
validateIndexSpec(kDefaultOpCtx,
@@ -281,7 +292,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfVersionIsNotANumber) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfVersionIsNotRepresentableAsInt) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::BadValue,
validateIndexSpec(kDefaultOpCtx,
@@ -319,7 +331,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfVersionIsNotRepresentableAsInt) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfVersionIsV0) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::CannotCreateIndex,
validateIndexSpec(kDefaultOpCtx,
@@ -333,7 +346,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfVersionIsV0) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfVersionIsUnsupported) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::CannotCreateIndex,
validateIndexSpec(kDefaultOpCtx,
@@ -359,7 +373,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfVersionIsUnsupported) {
TEST(IndexSpecValidateTest, AcceptsIndexVersionsThatAreAllowedForCreation) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -400,7 +415,8 @@ TEST(IndexSpecValidateTest, AcceptsIndexVersionsThatAreAllowedForCreation) {
TEST(IndexSpecValidateTest, DefaultIndexVersionIsV2) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -427,7 +443,8 @@ TEST(IndexSpecValidateTest, DefaultIndexVersionIsV2) {
TEST(IndexSpecValidateTest, AcceptsIndexVersionV1) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -450,7 +467,8 @@ TEST(IndexSpecValidateTest, AcceptsIndexVersionV1) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfCollationIsNotAnObject) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::TypeMismatch,
validateIndexSpec(kDefaultOpCtx,
@@ -480,7 +498,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfCollationIsNotAnObject) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfCollationIsEmpty) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::BadValue,
validateIndexSpec(kDefaultOpCtx,
@@ -494,7 +513,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfCollationIsEmpty) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfCollationIsPresentAndVersionIsLessThanV2) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
ASSERT_EQ(ErrorCodes::CannotCreateIndex,
validateIndexSpec(kDefaultOpCtx,
@@ -511,7 +531,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfCollationIsPresentAndVersionIsLessTh
TEST(IndexSpecValidateTest, AcceptsAnyNonEmptyObjectValueForCollation) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -562,7 +583,8 @@ TEST(IndexSpecValidateTest, AcceptsAnyNonEmptyObjectValueForCollation) {
TEST(IndexSpecValidateTest, AcceptsIndexSpecIfCollationIsPresentAndVersionIsEqualToV2) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -591,7 +613,8 @@ TEST(IndexSpecValidateTest, AcceptsIndexSpecIfCollationIsPresentAndVersionIsEqua
TEST(IndexSpecValidateTest, ReturnsAnErrorIfUnknownFieldIsPresentInSpecV2) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -607,7 +630,8 @@ TEST(IndexSpecValidateTest, ReturnsAnErrorIfUnknownFieldIsPresentInSpecV2) {
TEST(IndexSpecValidateTest, ReturnsAnErrorIfUnknownFieldIsPresentInSpecV1) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -844,7 +868,8 @@ TEST(IndexSpecCollationValidateTest, FillsInCollationFieldWithCollectionDefaultI
TEST(IndexSpecPartialFilterTest, FailsIfPartialFilterIsNotAnObject) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -858,7 +883,8 @@ TEST(IndexSpecPartialFilterTest, FailsIfPartialFilterIsNotAnObject) {
TEST(IndexSpecPartialFilterTest, FailsIfPartialFilterContainsBannedFeature) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
@@ -872,7 +898,8 @@ TEST(IndexSpecPartialFilterTest, FailsIfPartialFilterContainsBannedFeature) {
TEST(IndexSpecPartialFilterTest, AcceptsValidPartialFilterExpression) {
ServerGlobalParams::FeatureCompatibility featureCompatibility;
- featureCompatibility.setVersion(ServerGlobalParams::FeatureCompatibility::Version::k36);
+ featureCompatibility.setVersion(
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
auto result = validateIndexSpec(kDefaultOpCtx,
BSON("key" << BSON("field" << 1) << "name"
diff --git a/src/mongo/db/commands/feature_compatibility_version.cpp b/src/mongo/db/commands/feature_compatibility_version.cpp
index 0bfb943fc6b..10444bea57c 100644
--- a/src/mongo/db/commands/feature_compatibility_version.cpp
+++ b/src/mongo/db/commands/feature_compatibility_version.cpp
@@ -62,7 +62,7 @@ Lock::ResourceMutex FeatureCompatibilityVersion::fcvLock("featureCompatibilityVe
StatusWith<ServerGlobalParams::FeatureCompatibility::Version> FeatureCompatibilityVersion::parse(
const BSONObj& featureCompatibilityVersionDoc) {
ServerGlobalParams::FeatureCompatibility::Version version =
- ServerGlobalParams::FeatureCompatibility::Version::kUnset;
+ ServerGlobalParams::FeatureCompatibility::Version::kUnsetDefault34Behavior;
std::string versionString;
std::string targetVersionString;
@@ -133,7 +133,7 @@ StatusWith<ServerGlobalParams::FeatureCompatibility::Version> FeatureCompatibili
} else if (targetVersionString == FeatureCompatibilityVersionCommandParser::kVersion34) {
version = ServerGlobalParams::FeatureCompatibility::Version::kDowngradingTo34;
} else {
- version = ServerGlobalParams::FeatureCompatibility::Version::k34;
+ version = ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo34;
}
} else if (versionString == FeatureCompatibilityVersionCommandParser::kVersion36) {
@@ -150,7 +150,7 @@ StatusWith<ServerGlobalParams::FeatureCompatibility::Version> FeatureCompatibili
<< feature_compatibility_version::kDochubLink
<< ".");
} else {
- version = ServerGlobalParams::FeatureCompatibility::Version::k36;
+ version = ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36;
}
} else {
return Status(ErrorCodes::BadValue,
@@ -297,7 +297,7 @@ void uassertDuringInvalidUpgradeOp(OperationContext* opCtx,
return;
}
- if (version != ServerGlobalParams::FeatureCompatibility::Version::k36) {
+ if (version != ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36) {
// Only check this assertion if we're completing an upgrade to 3.6.
return;
}
@@ -346,7 +346,7 @@ void FeatureCompatibilityVersion::onInsertOrUpdate(OperationContext* opCtx, cons
serverGlobalParams.featureCompatibility.setVersion(newVersion);
// Close all connections from internal clients with binary versions lower than 3.6.
- if (newVersion == ServerGlobalParams::FeatureCompatibility::Version::k36 ||
+ if (newVersion == ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36 ||
newVersion == ServerGlobalParams::FeatureCompatibility::Version::kUpgradingTo36) {
opCtx->getServiceContext()->getServiceEntryPoint()->endAllSessions(
transport::Session::kLatestVersionInternalClientKeepOpen |
@@ -371,7 +371,7 @@ void FeatureCompatibilityVersion::onDelete(OperationContext* opCtx, const BSONOb
<< FeatureCompatibilityVersionCommandParser::kVersion34;
opCtx->recoveryUnit()->onCommit([]() {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k34);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo34);
});
}
@@ -388,7 +388,7 @@ void FeatureCompatibilityVersion::onDropCollection(OperationContext* opCtx) {
<< FeatureCompatibilityVersionCommandParser::kVersion34;
opCtx->recoveryUnit()->onCommit([]() {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k34);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo34);
});
}
@@ -452,11 +452,11 @@ public:
if (serverGlobalParams.featureCompatibility.isFullyUpgradedTo36()) {
b.append(name,
FeatureCompatibilityVersion::toString(
- ServerGlobalParams::FeatureCompatibility::Version::k36));
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36));
} else {
b.append(name,
FeatureCompatibilityVersion::toString(
- ServerGlobalParams::FeatureCompatibility::Version::k34));
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo34));
}
}
diff --git a/src/mongo/db/commands/feature_compatibility_version.h b/src/mongo/db/commands/feature_compatibility_version.h
index dd578f9dd6a..e1598756919 100644
--- a/src/mongo/db/commands/feature_compatibility_version.h
+++ b/src/mongo/db/commands/feature_compatibility_version.h
@@ -70,15 +70,15 @@ public:
static StringData toString(ServerGlobalParams::FeatureCompatibility::Version version) {
switch (version) {
- case ServerGlobalParams::FeatureCompatibility::Version::k36:
+ case ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36:
return FeatureCompatibilityVersionCommandParser::kVersion36;
- case ServerGlobalParams::FeatureCompatibility::Version::k34:
+ case ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo34:
return FeatureCompatibilityVersionCommandParser::kVersion34;
case ServerGlobalParams::FeatureCompatibility::Version::kUpgradingTo36:
return FeatureCompatibilityVersionCommandParser::kVersionUpgradingTo36;
case ServerGlobalParams::FeatureCompatibility::Version::kDowngradingTo34:
return FeatureCompatibilityVersionCommandParser::kVersionDowngradingTo34;
- case ServerGlobalParams::FeatureCompatibility::Version::kUnset:
+ case ServerGlobalParams::FeatureCompatibility::Version::kUnsetDefault34Behavior:
return FeatureCompatibilityVersionCommandParser::kVersionUnset;
default:
MONGO_UNREACHABLE;
diff --git a/src/mongo/db/keys_collection_cache_reader_and_updater_test.cpp b/src/mongo/db/keys_collection_cache_reader_and_updater_test.cpp
index 0dbaacad30a..83ea491a30c 100644
--- a/src/mongo/db/keys_collection_cache_reader_and_updater_test.cpp
+++ b/src/mongo/db/keys_collection_cache_reader_and_updater_test.cpp
@@ -55,7 +55,7 @@ protected:
ConfigServerTestFixture::setUp();
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
serverGlobalParams.validateFeaturesAsMaster.store(true);
auto clockSource = stdx::make_unique<ClockSourceMock>();
@@ -458,7 +458,7 @@ TEST_F(CacheUpdaterTest, ShouldNotCreateKeysWithDisableKeyGenerationFailPoint) {
TEST_F(CacheUpdaterTest, ShouldNotCreateNewKeysInFeatureCompatiblityVersion34) {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k34);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo34);
KeysCollectionCacheReaderAndUpdater updater("dummy", catalogClient(), Seconds(5));
@@ -475,7 +475,7 @@ TEST_F(CacheUpdaterTest, ShouldNotCreateNewKeysInFeatureCompatiblityVersion34) {
// Increase the feature compatibility version and verify keys are found after refresh.
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
{
auto keyStatus = updater.refresh(operationContext());
diff --git a/src/mongo/db/keys_collection_manager_sharding_test.cpp b/src/mongo/db/keys_collection_manager_sharding_test.cpp
index 8006238a8c3..0ba9588ce50 100644
--- a/src/mongo/db/keys_collection_manager_sharding_test.cpp
+++ b/src/mongo/db/keys_collection_manager_sharding_test.cpp
@@ -60,7 +60,7 @@ protected:
ConfigServerTestFixture::setUp();
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
serverGlobalParams.validateFeaturesAsMaster.store(true);
auto clockSource = stdx::make_unique<ClockSourceMock>();
@@ -376,7 +376,7 @@ TEST_F(KeysManagerShardedTest, HasSeenKeysIsFalseUntilKeysAreFound) {
TEST_F(KeysManagerShardedTest, ShouldNotReturnKeysInFeatureCompatibilityVersion34) {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k34);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo34);
keyManager()->startMonitoring(getServiceContext());
keyManager()->enableKeyGenerator(operationContext(), true);
diff --git a/src/mongo/db/logical_session_cache_test.cpp b/src/mongo/db/logical_session_cache_test.cpp
index 5e96394a515..d7f8f064f26 100644
--- a/src/mongo/db/logical_session_cache_test.cpp
+++ b/src/mongo/db/logical_session_cache_test.cpp
@@ -67,7 +67,7 @@ public:
LogicalSessionCacheTest()
: _service(std::make_shared<MockServiceLiasonImpl>()),
_sessions(std::make_shared<MockSessionsCollectionImpl>()),
- _fcv(EnsureFCV::Version::k36) {}
+ _fcv(EnsureFCV::Version::kFullyUpgradedTo36) {}
void setUp() override {
auto localManagerState = stdx::make_unique<AuthzManagerExternalStateMock>();
diff --git a/src/mongo/db/logical_session_id_test.cpp b/src/mongo/db/logical_session_id_test.cpp
index 9e9e828372b..2f761f3d302 100644
--- a/src/mongo/db/logical_session_id_test.cpp
+++ b/src/mongo/db/logical_session_id_test.cpp
@@ -71,7 +71,7 @@ public:
void setUp() {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
session = transportLayer.createSession();
client = serviceContext.makeClient("testClient", session);
RestrictionEnvironment::set(
diff --git a/src/mongo/db/logical_time_validator_test.cpp b/src/mongo/db/logical_time_validator_test.cpp
index 92ddc3213ef..1bb46ba0802 100644
--- a/src/mongo/db/logical_time_validator_test.cpp
+++ b/src/mongo/db/logical_time_validator_test.cpp
@@ -62,7 +62,7 @@ protected:
ConfigServerTestFixture::setUp();
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
serverGlobalParams.validateFeaturesAsMaster.store(true);
auto clockSource = stdx::make_unique<ClockSourceMock>();
diff --git a/src/mongo/db/pipeline/document_source_change_stream_test.cpp b/src/mongo/db/pipeline/document_source_change_stream_test.cpp
index f59545111f0..78fec65f9cc 100644
--- a/src/mongo/db/pipeline/document_source_change_stream_test.cpp
+++ b/src/mongo/db/pipeline/document_source_change_stream_test.cpp
@@ -77,7 +77,7 @@ class ChangeStreamStageTestNoSetup : public AggregationContextFixture {
public:
ChangeStreamStageTestNoSetup() : ChangeStreamStageTestNoSetup(nss) {}
ChangeStreamStageTestNoSetup(NamespaceString nsString)
- : AggregationContextFixture(nsString), _ensureFCV(EnsureFCV::Version::k36) {}
+ : AggregationContextFixture(nsString), _ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36) {}
private:
EnsureFCV _ensureFCV;
diff --git a/src/mongo/db/pipeline/document_source_lookup_test.cpp b/src/mongo/db/pipeline/document_source_lookup_test.cpp
index 54e58c25b58..3ad105a4414 100644
--- a/src/mongo/db/pipeline/document_source_lookup_test.cpp
+++ b/src/mongo/db/pipeline/document_source_lookup_test.cpp
@@ -239,7 +239,7 @@ TEST_F(DocumentSourceLookUpTest, LiteParsedDocumentSourceLookupContainsExpectedN
TEST_F(ReplDocumentSourceLookUpTest, RejectsPipelineWithChangeStreamStage) {
// Temporarily set FCV to 3.6 for $changeStream.
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
auto expCtx = getExpCtx();
NamespaceString fromNs("test", "coll");
@@ -257,7 +257,7 @@ TEST_F(ReplDocumentSourceLookUpTest, RejectsPipelineWithChangeStreamStage) {
TEST_F(ReplDocumentSourceLookUpTest, RejectsSubPipelineWithChangeStreamStage) {
// Temporarily set FCV to 3.6 for $changeStream.
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
auto expCtx = getExpCtx();
NamespaceString fromNs("test", "coll");
diff --git a/src/mongo/db/pipeline/pipeline_test.cpp b/src/mongo/db/pipeline/pipeline_test.cpp
index 4418e9dc9a4..cf90fd4e77e 100644
--- a/src/mongo/db/pipeline/pipeline_test.cpp
+++ b/src/mongo/db/pipeline/pipeline_test.cpp
@@ -1329,7 +1329,7 @@ TEST(PipelineOptimizationTest, MatchOnFmodShouldSwapWithAdjacentStage) {
}
TEST(PipelineOptimizationTest, ChangeStreamLookupSwapsWithIndependentMatch) {
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
QueryTestServiceContext testServiceContext;
auto opCtx = testServiceContext.makeOperationContext();
@@ -1355,7 +1355,7 @@ TEST(PipelineOptimizationTest, ChangeStreamLookupSwapsWithIndependentMatch) {
}
TEST(PipelineOptimizationTest, ChangeStreamLookupDoesNotSwapWithMatchOnPostImage) {
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
QueryTestServiceContext testServiceContext;
auto opCtx = testServiceContext.makeOperationContext();
@@ -1987,7 +1987,7 @@ TEST_F(PipelineInitialSourceNSTest, AggregateOneNSValidForFacetPipelineRegardles
}
TEST_F(PipelineInitialSourceNSTest, ChangeStreamIsValidAsFirstStage) {
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
const std::vector<BSONObj> rawPipeline = {fromjson("{$changeStream: {}}")};
auto ctx = getExpCtx();
setMockReplicationCoordinatorOnOpCtx(ctx->opCtx);
@@ -1996,7 +1996,7 @@ TEST_F(PipelineInitialSourceNSTest, ChangeStreamIsValidAsFirstStage) {
}
TEST_F(PipelineInitialSourceNSTest, ChangeStreamIsNotValidIfNotFirstStage) {
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
const std::vector<BSONObj> rawPipeline = {fromjson("{$match: {custom: 'filter'}}"),
fromjson("{$changeStream: {}}")};
auto ctx = getExpCtx();
@@ -2007,7 +2007,7 @@ TEST_F(PipelineInitialSourceNSTest, ChangeStreamIsNotValidIfNotFirstStage) {
}
TEST_F(PipelineInitialSourceNSTest, ChangeStreamIsNotValidIfNotFirstStageInFacet) {
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
const std::vector<BSONObj> rawPipeline = {fromjson("{$match: {custom: 'filter'}}"),
fromjson("{$changeStream: {}}")};
auto ctx = getExpCtx();
diff --git a/src/mongo/db/repl/idempotency_test.cpp b/src/mongo/db/repl/idempotency_test.cpp
index 5801b07a0cb..d001f704508 100644
--- a/src/mongo/db/repl/idempotency_test.cpp
+++ b/src/mongo/db/repl/idempotency_test.cpp
@@ -194,13 +194,13 @@ void RandomizedIdempotencyTest::runIdempotencyTestCase() {
TEST_F(RandomizedIdempotencyTest, CheckUpdateSequencesAreIdempotentWhenFCV34) {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k34);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo34);
runIdempotencyTestCase();
}
TEST_F(RandomizedIdempotencyTest, CheckUpdateSequencesAreIdempotentWhenFCV36) {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
runIdempotencyTestCase();
}
diff --git a/src/mongo/db/repl/oplog_fetcher_test.cpp b/src/mongo/db/repl/oplog_fetcher_test.cpp
index 4b63bdc475f..35af92df177 100644
--- a/src/mongo/db/repl/oplog_fetcher_test.cpp
+++ b/src/mongo/db/repl/oplog_fetcher_test.cpp
@@ -281,7 +281,7 @@ TEST_F(OplogFetcherTest, FindQueryHasNoReadconcernIfTermUninitialized) {
}
TEST_F(OplogFetcherTest, FindQueryHasAfterOpTimeWithFeatureCompatibilityVersion34) {
- EnsureFCV ensureFCV(EnsureFCV::Version::k34);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyDowngradedTo34);
ASSERT(!serverGlobalParams.featureCompatibility.isFullyUpgradedTo36());
auto cmdObj = makeOplogFetcher(_createConfig(true))->getFindQuery_forTest();
auto readConcernElem = cmdObj["readConcern"];
@@ -293,7 +293,7 @@ TEST_F(OplogFetcherTest, FindQueryHasAfterOpTimeWithFeatureCompatibilityVersion3
}
TEST_F(OplogFetcherTest, FindQueryHasAfterOpTimeWithFeatureCompatibilityVersion36) {
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
ASSERT(serverGlobalParams.featureCompatibility.isFullyUpgradedTo36());
auto cmdObj = makeOplogFetcher(_createConfig(true))->getFindQuery_forTest();
auto readConcernElem = cmdObj["readConcern"];
diff --git a/src/mongo/db/repl/replication_consistency_markers_impl_test.cpp b/src/mongo/db/repl/replication_consistency_markers_impl_test.cpp
index 105613c516f..69a233379ed 100644
--- a/src/mongo/db/repl/replication_consistency_markers_impl_test.cpp
+++ b/src/mongo/db/repl/replication_consistency_markers_impl_test.cpp
@@ -317,7 +317,7 @@ TEST_F(ReplicationConsistencyMarkersTest, OplogTruncateAfterPointUpgrade) {
// Set the feature compatibility version to 3.6.
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
// Check that we see no oplog truncate after point in FCV 3.6.
ASSERT(consistencyMarkers.getOplogTruncateAfterPoint(opCtx).isNull());
@@ -325,7 +325,7 @@ TEST_F(ReplicationConsistencyMarkersTest, OplogTruncateAfterPointUpgrade) {
// Set the feature compatibility version to 3.4.
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k34);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo34);
// Check that we see the old oplog delete from point in FCV 3.4.
ASSERT_EQ(consistencyMarkers.getOplogTruncateAfterPoint(opCtx), time1);
@@ -348,7 +348,7 @@ TEST_F(ReplicationConsistencyMarkersTest, OplogTruncateAfterPointUpgrade) {
// Set the feature compatibility version to 3.6.
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
// Check that after removing the old oplog delete from point, that we do not see the oplog
// truncate after point in FCV 3.6.
diff --git a/src/mongo/db/repl/replication_info.cpp b/src/mongo/db/repl/replication_info.cpp
index f27e1608e73..3391dc3aa19 100644
--- a/src/mongo/db/repl/replication_info.cpp
+++ b/src/mongo/db/repl/replication_info.cpp
@@ -364,7 +364,7 @@ public:
// connect.
if (internalClientElement &&
serverGlobalParams.featureCompatibility.getVersion() ==
- ServerGlobalParams::FeatureCompatibility::Version::k36) {
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36) {
result.append("minWireVersion", WireSpec::instance().incoming.maxWireVersion);
} else {
result.append("minWireVersion", WireSpec::instance().incoming.minWireVersion);
diff --git a/src/mongo/db/repl/sync_tail_test.cpp b/src/mongo/db/repl/sync_tail_test.cpp
index d1337ca5b20..e964e291b50 100644
--- a/src/mongo/db/repl/sync_tail_test.cpp
+++ b/src/mongo/db/repl/sync_tail_test.cpp
@@ -1666,7 +1666,7 @@ TEST_F(SyncTailTest, UpdateToFCVCollectionBesidesFCVDocumentSucceedsInRecovering
TEST_F(SyncTailTest, UpgradeWithNoUUIDFailsInSecondary) {
// Set fCV to 3.4 so the node does not create a UUID for the collection.
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k34);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyDowngradedTo34);
auto fcvNS = NamespaceString(FeatureCompatibilityVersion::kCollection);
::mongo::repl::createCollection(_opCtx.get(), fcvNS, CollectionOptions());
diff --git a/src/mongo/db/repl/sync_tail_test_fixture.cpp b/src/mongo/db/repl/sync_tail_test_fixture.cpp
index 0026f658fad..070f76dfc8c 100644
--- a/src/mongo/db/repl/sync_tail_test_fixture.cpp
+++ b/src/mongo/db/repl/sync_tail_test_fixture.cpp
@@ -92,7 +92,7 @@ void SyncTailTest::setUp() {
_incOps = [this]() { _opsApplied++; };
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
}
void SyncTailTest::tearDown() {
diff --git a/src/mongo/db/s/session_catalog_migration_destination_test.cpp b/src/mongo/db/s/session_catalog_migration_destination_test.cpp
index c7ea51be2c1..99ee8eae5d8 100644
--- a/src/mongo/db/s/session_catalog_migration_destination_test.cpp
+++ b/src/mongo/db/s/session_catalog_migration_destination_test.cpp
@@ -84,7 +84,7 @@ class SessionCatalogMigrationDestinationTest : public ShardingMongodTestFixture
public:
void setUp() override {
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
serverGlobalParams.clusterRole = ClusterRole::ShardServer;
ShardingMongodTestFixture::setUp();
diff --git a/src/mongo/db/server_options.h b/src/mongo/db/server_options.h
index 1263e272b06..1c84b5d33ad 100644
--- a/src/mongo/db/server_options.h
+++ b/src/mongo/db/server_options.h
@@ -152,38 +152,45 @@ struct ServerGlobalParams {
*
* The legal enum (and featureCompatiblityVersion document) states are:
*
- * k34
- * (3.4, Unset) aka fully 3.4: Only 3.4 features are available, and new and existing storage
- * engine entries use the 3.4 format
+ * kFullyDowngradedTo34
+ * (3.4, Unset): Only 3.4 features are available, and new and existing storage
+ * engine entries use the 3.4 format
*
* kUpgradingTo36
- * (3.4, 3.6) aka upgrading: Only 3.4 features are available, but new storage engine entries
- * use the 3.6 format, and existing entries may have either the
- * 3.4 or 3.6 format
+ * (3.4, 3.6): Only 3.4 features are available, but new storage engine entries
+ * use the 3.6 format, and existing entries may have either the
+ * 3.4 or 3.6 format
*
- * k36
- * (3.6, Unset) aka fully 3.6: 3.6 features are available, and new and existing storage
- * engine entries use the 3.6 format
+ * kFullyUpgradedTo36
+ * (3.6, Unset): 3.6 features are available, and new and existing storage
+ * engine entries use the 3.6 format
*
* kDowngradingTo34
- * (3.4, 3.4) aka downgrading: Only 3.4 features are available and new storage engine
- * entries use the 3.4 format, but existing entries may have
- * either the 3.4 or 3.6 format
+ * (3.4, 3.4): Only 3.4 features are available and new storage engine
+ * entries use the 3.4 format, but existing entries may have
+ * either the 3.4 or 3.6 format
*
- * kUnset
- * (Unset, Unset) aka uninitialized: This is the case on startup before the fCV document is
- * loaded into memory. isVersionInitialized() will return
- * false, and getVersion() will return the default (k34).
+ * kUnsetDefault34Behavior
+ * (Unset, Unset): This is the case on startup before the fCV document is
+ * loaded into memory. isVersionInitialized() will return
+ * false, and getVersion() will return the default
+ * (kFullyDowngradedTo34).
*
*/
- enum class Version { k34, kUpgradingTo36, k36, kDowngradingTo34, kUnset };
+ enum class Version {
+ kFullyDowngradedTo34,
+ kUpgradingTo36,
+ kFullyUpgradedTo36,
+ kDowngradingTo34,
+ kUnsetDefault34Behavior
+ };
/**
* On startup, the featureCompatibilityVersion may not have been explicitly set yet. This
* exposes the actual state of the featureCompatibilityVersion if it is uninitialized.
*/
const bool isVersionInitialized() const {
- return _version.load() != Version::kUnset;
+ return _version.load() != Version::kUnsetDefault34Behavior;
}
/**
@@ -192,29 +199,33 @@ struct ServerGlobalParams {
*/
const Version getVersion() const {
Version v = _version.load();
- return (v == Version::kUnset) ? Version::k34 : v;
+ return (v == Version::kUnsetDefault34Behavior) ? Version::kFullyDowngradedTo34 : v;
}
void reset() {
- _version.store(Version::k34);
+ _version.store(Version::kFullyDowngradedTo34);
}
void setVersion(Version version) {
return _version.store(version);
}
+ // Deprecated. Please use getVersion() directly instead.
const bool isFullyUpgradedTo36() {
- return (getVersion() == Version::k36);
+ return (getVersion() == Version::kFullyUpgradedTo36);
}
+ // Deprecated. Please use getVersion() directly instead.
const bool isUpgradingTo36() {
return (getVersion() == Version::kUpgradingTo36);
}
+ // Deprecated. Please use getVersion() directly instead.
const bool isFullyDowngradedTo34() {
- return (getVersion() == Version::k34);
+ return (getVersion() == Version::kFullyDowngradedTo34);
}
+ // Deprecated. Please use getVersion() directly instead.
const bool isDowngradingTo34() {
return (getVersion() == Version::kDowngradingTo34);
}
@@ -225,7 +236,7 @@ struct ServerGlobalParams {
}
private:
- AtomicWord<Version> _version{Version::kUnset};
+ AtomicWord<Version> _version{Version::kUnsetDefault34Behavior};
} featureCompatibility;
diff --git a/src/mongo/db/views/view_catalog_test.cpp b/src/mongo/db/views/view_catalog_test.cpp
index d26256cf40d..a989bd11e9b 100644
--- a/src/mongo/db/views/view_catalog_test.cpp
+++ b/src/mongo/db/views/view_catalog_test.cpp
@@ -180,7 +180,7 @@ TEST_F(ViewCatalogFixture, CreateViewOnDifferentDatabase) {
// TODO SERVER-31588: Remove FCV 3.4 validation during the 3.7 development cycle.
TEST_F(ViewCatalogFixture, CreateViewWith36FeaturesSucceedsUnder36FCV) {
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
const NamespaceString viewOn("db.coll");
@@ -229,7 +229,7 @@ TEST_F(ViewCatalogFixture, CreateViewWith36FeaturesSucceedsUnder36FCV) {
// TODO SERVER-31588: Remove FCV 3.4 validation during the 3.7 development cycle.
TEST_F(ViewCatalogFixture, CreateViewWith36FeaturesFailsUnder34FCV) {
- EnsureFCV ensureFCV(EnsureFCV::Version::k34);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyDowngradedTo34);
const NamespaceString viewName("db.view");
const NamespaceString viewOn("db.coll");
@@ -313,7 +313,7 @@ TEST_F(ViewCatalogFixture, CreateViewWithPipelineFailsOnInvalidStageName) {
TEST_F(ReplViewCatalogFixture, CreateViewWithPipelineFailsOnIneligibleStage) {
// Temporarily set the feature version to 3.6 for $changeStream.
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
const NamespaceString viewName("db.view");
const NamespaceString viewOn("db.coll");
@@ -489,7 +489,7 @@ TEST_F(ViewCatalogFixture, ModifyViewOnInvalidCollectionName) {
TEST_F(ReplViewCatalogFixture, ModifyViewWithPipelineFailsOnIneligibleStage) {
// Temporarily set the feature version to 3.6 for $changeStream.
- EnsureFCV ensureFCV(EnsureFCV::Version::k36);
+ EnsureFCV ensureFCV(EnsureFCV::Version::kFullyUpgradedTo36);
const NamespaceString viewName("db.view");
const NamespaceString viewOn("db.coll");
diff --git a/src/mongo/dbtests/dbtests.cpp b/src/mongo/dbtests/dbtests.cpp
index 01076391f9f..4fd7416d9fa 100644
--- a/src/mongo/dbtests/dbtests.cpp
+++ b/src/mongo/dbtests/dbtests.cpp
@@ -122,7 +122,7 @@ int dbtestsMain(int argc, char** argv, char** envp) {
mongo::dbtests::initWireSpec();
mongo::runGlobalInitializersOrDie(argc, argv, envp);
serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
repl::ReplSettings replSettings;
replSettings.setOplogSizeBytes(10 * 1024 * 1024);
ServiceContext* service = getGlobalServiceContext();
diff --git a/src/mongo/s/server.cpp b/src/mongo/s/server.cpp
index aa28c33d81f..27ced948e06 100644
--- a/src/mongo/s/server.cpp
+++ b/src/mongo/s/server.cpp
@@ -486,7 +486,7 @@ MONGO_INITIALIZER_GENERAL(ForkServer, ("EndStartupOptionHandling"), ("default"))
MONGO_INITIALIZER_WITH_PREREQUISITES(SetFeatureCompatibilityVersion36, ("EndStartupOptionStorage"))
(InitializerContext* context) {
mongo::serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
return Status::OK();
}
diff --git a/src/mongo/shell/dbshell.cpp b/src/mongo/shell/dbshell.cpp
index 72f9f060b0c..c3c30ed5b09 100644
--- a/src/mongo/shell/dbshell.cpp
+++ b/src/mongo/shell/dbshell.cpp
@@ -96,7 +96,7 @@ const auto kDefaultMongoURL = "mongodb://127.0.0.1:27017"_sd;
MONGO_INITIALIZER_WITH_PREREQUISITES(SetFeatureCompatibilityVersion36, ("EndStartupOptionSetup"))
(InitializerContext* context) {
mongo::serverGlobalParams.featureCompatibility.setVersion(
- ServerGlobalParams::FeatureCompatibility::Version::k36);
+ ServerGlobalParams::FeatureCompatibility::Version::kFullyUpgradedTo36);
return Status::OK();
}
} // namespace