summaryrefslogtreecommitdiff
path: root/src/mongo/db
diff options
context:
space:
mode:
authorSamy Lanka <samy.lanka@mongodb.com>2021-08-20 13:15:26 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-08-20 14:00:42 +0000
commitf8a9735544d43a9a3a6bb607bdc6c893369cf61e (patch)
tree9ef9f72b4e747a159b0873436dfa708dbc392db0 /src/mongo/db
parentf40cb9ac69837355e3fc011d4c8fdd7cbb8648ab (diff)
downloadmongo-f8a9735544d43a9a3a6bb607bdc6c893369cf61e.tar.gz
SERVER-59293 Remove featureFlagDefaultReadConcernLocal
Diffstat (limited to 'src/mongo/db')
-rw-r--r--src/mongo/db/read_write_concern_defaults.cpp12
-rw-r--r--src/mongo/db/read_write_concern_defaults_test.cpp323
-rw-r--r--src/mongo/db/repl/repl_server_parameters.idl8
-rw-r--r--src/mongo/db/service_entry_point_common.cpp6
4 files changed, 120 insertions, 229 deletions
diff --git a/src/mongo/db/read_write_concern_defaults.cpp b/src/mongo/db/read_write_concern_defaults.cpp
index e73f8b04afd..8aad8721814 100644
--- a/src/mongo/db/read_write_concern_defaults.cpp
+++ b/src/mongo/db/read_write_concern_defaults.cpp
@@ -200,12 +200,6 @@ void ReadWriteConcernDefaults::refreshIfNecessary(OperationContext* opCtx) {
}
repl::ReadConcernArgs ReadWriteConcernDefaults::getImplicitDefaultReadConcern() {
- const bool isDefaultRCLocalFeatureFlagEnabled =
- serverGlobalParams.featureCompatibility.isVersionInitialized() &&
- repl::feature_flags::gDefaultRCLocal.isEnabled(serverGlobalParams.featureCompatibility);
- if (!isDefaultRCLocalFeatureFlagEnabled) {
- return repl::ReadConcernArgs();
- }
return repl::ReadConcernArgs(repl::ReadConcernLevel::kLocalReadConcern);
}
@@ -227,12 +221,8 @@ ReadWriteConcernDefaults::RWConcernDefaultAndTime ReadWriteConcernDefaults::getD
OperationContext* opCtx) {
auto cached = _getDefaultCWRWCFromDisk(opCtx).value_or(RWConcernDefaultAndTime());
- const bool isDefaultRCLocalFeatureFlagEnabled =
- serverGlobalParams.featureCompatibility.isVersionInitialized() &&
- repl::feature_flags::gDefaultRCLocal.isEnabled(serverGlobalParams.featureCompatibility);
-
// Only overwrite the default read concern and its source if it has already been set on mongos.
- if (isDefaultRCLocalFeatureFlagEnabled && !cached.getDefaultReadConcernSource()) {
+ if (!cached.getDefaultReadConcernSource()) {
if (!cached.getDefaultReadConcern() || cached.getDefaultReadConcern().get().isEmpty()) {
auto rcDefault = getImplicitDefaultReadConcern();
cached.setDefaultReadConcern(rcDefault);
diff --git a/src/mongo/db/read_write_concern_defaults_test.cpp b/src/mongo/db/read_write_concern_defaults_test.cpp
index a57c977ddeb..556fc740c67 100644
--- a/src/mongo/db/read_write_concern_defaults_test.cpp
+++ b/src/mongo/db/read_write_concern_defaults_test.cpp
@@ -60,10 +60,6 @@ protected:
ReadWriteConcernDefaultsLookupMock _lookupMock;
- bool _isDefaultRCLocalEnabled{
- serverGlobalParams.featureCompatibility.isVersionInitialized() &&
- repl::feature_flags::gDefaultRCLocal.isEnabled(serverGlobalParams.featureCompatibility)};
-
ServiceContext::UniqueOperationContext _opCtxHolder{makeOperationContext()};
OperationContext* const _opCtx{_opCtxHolder.get()};
};
@@ -74,16 +70,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithAbsentCWRWCWithImplicitWC
// By not calling _lookupMock.setLookupCallReturnValue(), tests _defaults.lookup() returning
// boost::none.
auto defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
ASSERT(!defaults.getDefaultWriteConcern());
ASSERT(!isCWWCSet());
@@ -100,16 +92,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithAbsentCWRWCWithImplicitWC
// boost::none.
ASSERT(!isCWWCSet());
auto defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
ASSERT(defaults.getDefaultWriteConcern());
ASSERT_EQ(WriteConcernOptions::kMajority, defaults.getDefaultWriteConcern().get().wMode);
@@ -127,16 +115,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithCWRWCNeverSetWithImplicit
ASSERT(!isCWWCSet());
auto defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
ASSERT(!defaults.getDefaultWriteConcern());
ASSERT(!defaults.getUpdateOpTime());
@@ -152,16 +136,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithCWRWCNeverSetWithImplicit
ASSERT(!isCWWCSet());
_lookupMock.setLookupCallReturnValue({});
auto defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
ASSERT(defaults.getDefaultWriteConcern());
ASSERT_EQ(WriteConcernOptions::kMajority, defaults.getDefaultWriteConcern().get().wMode);
@@ -181,16 +161,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithUnsetCWRWCWithImplicitWCW
ASSERT(!isCWWCSet());
auto defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
ASSERT(!defaults.getDefaultWriteConcern());
ASSERT_EQ(Timestamp(1, 2), *defaults.getUpdateOpTime());
@@ -209,16 +185,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithUnsetCWRWCWithImplicitWCM
ASSERT(!isCWWCSet());
auto defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
ASSERT(defaults.getDefaultWriteConcern());
ASSERT_EQ(WriteConcernOptions::kMajority, defaults.getDefaultWriteConcern().get().wMode);
@@ -235,15 +207,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithCWRWCNotSetThenSetWithImp
_lookupMock.setLookupCallReturnValue({});
ASSERT(!isCWWCSet());
auto oldDefaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(oldDefaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(oldDefaults.getDefaultReadConcernSource());
- ASSERT(oldDefaults.getDefaultReadConcernSource() ==
- DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!oldDefaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(oldDefaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(oldDefaults.getDefaultReadConcernSource());
+ ASSERT(oldDefaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
+
ASSERT(!oldDefaults.getDefaultWriteConcern());
ASSERT(!oldDefaults.getUpdateOpTime());
ASSERT(!oldDefaults.getUpdateWallClockTime());
@@ -267,12 +236,9 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithCWRWCNotSetThenSetWithImp
auto defaults = getDefault();
ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
repl::ReadConcernLevel::kLocalReadConcern);
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
- } else {
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
+
ASSERT_EQ(4, defaults.getDefaultWriteConcern()->wNumNodes);
ASSERT_EQ(Timestamp(1, 2), *defaults.getUpdateOpTime());
ASSERT_EQ(1234, defaults.getUpdateWallClockTime()->toMillisSinceEpoch());
@@ -288,15 +254,11 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithCWRWCNotSetThenSetWithImp
_lookupMock.setLookupCallReturnValue({});
ASSERT(!isCWWCSet());
auto oldDefaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(oldDefaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(oldDefaults.getDefaultReadConcernSource());
- ASSERT(oldDefaults.getDefaultReadConcernSource() ==
- DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!oldDefaults.getDefaultReadConcernSource());
- }
+ ASSERT(oldDefaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(oldDefaults.getDefaultReadConcernSource());
+ ASSERT(oldDefaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
+
ASSERT(oldDefaults.getDefaultWriteConcern());
ASSERT_EQ(WriteConcernOptions::kMajority, oldDefaults.getDefaultWriteConcern().get().wMode);
ASSERT(!oldDefaults.getUpdateOpTime());
@@ -321,12 +283,8 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithCWRWCNotSetThenSetWithImp
auto defaults = getDefault();
ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
repl::ReadConcernLevel::kLocalReadConcern);
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
- } else {
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
ASSERT_EQ(4, defaults.getDefaultWriteConcern()->wNumNodes);
ASSERT_EQ(Timestamp(1, 2), *defaults.getUpdateOpTime());
@@ -354,12 +312,9 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithSetCWRWCWithImplicitWCW1)
auto defaults = getDefault();
ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
repl::ReadConcernLevel::kLocalReadConcern);
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
- } else {
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
+
ASSERT_EQ(4, defaults.getDefaultWriteConcern()->wNumNodes);
ASSERT_EQ(Timestamp(1, 2), *defaults.getUpdateOpTime());
ASSERT_EQ(1234, defaults.getUpdateWallClockTime()->toMillisSinceEpoch());
@@ -386,10 +341,8 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithSetCWRWCWithImplicitWCMaj
auto defaults = getDefault();
ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
repl::ReadConcernLevel::kLocalReadConcern);
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
- }
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
ASSERT_EQ(4, defaults.getDefaultWriteConcern()->wNumNodes);
ASSERT_EQ(Timestamp(1, 2), *defaults.getUpdateOpTime());
@@ -410,16 +363,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWriteConcernSourceImplicitWit
ASSERT(!isCWWCSet());
auto defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
// The default write concern source should be set to implicit if wc.usedDefaultConstructedWC is
// true
@@ -446,10 +395,9 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithSetAndUnSetCWRCWithImplic
auto defaults = getDefault();
ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
repl::ReadConcernLevel::kAvailableReadConcern);
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
- }
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
+
ASSERT(!defaults.getDefaultWriteConcern());
ASSERT_EQ(Timestamp(1, 2), *defaults.getUpdateOpTime());
ASSERT_EQ(1234, defaults.getUpdateWallClockTime()->toMillisSinceEpoch());
@@ -466,16 +414,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithSetAndUnSetCWRCWithImplic
ASSERT(!isCWWCSet());
defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
ASSERT(!defaults.getDefaultWriteConcern());
ASSERT_EQ(Timestamp(1, 3), *defaults.getUpdateOpTime());
@@ -499,10 +443,9 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithSetAndUnSetCWRCWithImplic
auto defaults = getDefault();
ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
repl::ReadConcernLevel::kLocalReadConcern);
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
- }
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
+
ASSERT(defaults.getDefaultWriteConcern());
ASSERT_EQ(WriteConcernOptions::kMajority, defaults.getDefaultWriteConcern().get().wMode);
ASSERT_EQ(Timestamp(1, 2), *defaults.getUpdateOpTime());
@@ -520,16 +463,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithSetAndUnSetCWRCWithImplic
ASSERT(!isCWWCSet());
defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
ASSERT_EQ(WriteConcernOptions::kMajority, defaults.getDefaultWriteConcern().get().wMode);
ASSERT_EQ(Timestamp(1, 3), *defaults.getUpdateOpTime());
@@ -556,16 +495,13 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithoutInvalidateDoesNotCallL
ASSERT(!isCWWCSet());
auto defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
+
ASSERT(!defaults.getDefaultWriteConcern());
ASSERT_EQ(Timestamp(1, 2), *defaults.getUpdateOpTime());
ASSERT_EQ(1234, defaults.getUpdateWallClockTime()->toMillisSinceEpoch());
@@ -587,16 +523,13 @@ TEST_F(ReadWriteConcernDefaultsTest, TestGetDefaultWithoutInvalidateDoesNotCallL
ASSERT(!isCWWCSet());
auto defaults2 = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults2.getDefaultReadConcern());
- ASSERT(defaults2.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults2.getDefaultReadConcernSource());
- ASSERT(defaults2.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults2.getDefaultReadConcern());
- ASSERT(!defaults2.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults2.getDefaultReadConcern());
+ ASSERT(defaults2.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults2.getDefaultReadConcernSource());
+ ASSERT(defaults2.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
+
ASSERT(!defaults2.getDefaultWriteConcern());
ASSERT_EQ(Timestamp(1, 2), *defaults2.getUpdateOpTime());
ASSERT_EQ(1234, defaults2.getUpdateWallClockTime()->toMillisSinceEpoch());
@@ -614,16 +547,13 @@ TEST_F(ReadWriteConcernDefaultsTest, TestInvalidate) {
ASSERT(!isCWWCSet());
auto defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
+
ASSERT(!defaults.getDefaultWriteConcern());
ASSERT_EQ(Timestamp(1, 2), *defaults.getUpdateOpTime());
ASSERT_EQ(1234, defaults.getUpdateWallClockTime()->toMillisSinceEpoch());
@@ -647,10 +577,9 @@ TEST_F(ReadWriteConcernDefaultsTest, TestInvalidate) {
auto defaults2 = getDefault();
ASSERT(defaults2.getDefaultReadConcern()->getLevel() ==
repl::ReadConcernLevel::kAvailableReadConcern);
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults2.getDefaultReadConcernSource());
- ASSERT(defaults2.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
- }
+ ASSERT(defaults2.getDefaultReadConcernSource());
+ ASSERT(defaults2.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kGlobal);
+
ASSERT_EQ(4, defaults2.getDefaultWriteConcern()->wNumNodes);
ASSERT_EQ(Timestamp(3, 4), *defaults2.getUpdateOpTime());
ASSERT_EQ(5678, defaults2.getUpdateWallClockTime()->toMillisSinceEpoch());
@@ -664,16 +593,12 @@ TEST_F(ReadWriteConcernDefaultsTest, TestRefreshDefaultsWithEmptyCacheAndAbsentD
ASSERT(!isCWWCSet());
auto defaults = getDefault();
- if (_isDefaultRCLocalEnabled) {
- ASSERT(defaults.getDefaultReadConcern());
- ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(defaults.getDefaultReadConcernSource());
- ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!defaults.getDefaultReadConcern());
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+
+ ASSERT(defaults.getDefaultReadConcern());
+ ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(defaults.getDefaultReadConcernSource());
+ ASSERT(defaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
ASSERT(!defaults.getDefaultWriteConcern());
ASSERT(!defaults.getUpdateOpTime());
@@ -774,10 +699,8 @@ protected:
ASSERT(defaults.getDefaultReadConcern()->getLevel() ==
repl::ReadConcernLevel::kAvailableReadConcern);
- if (_isDefaultRCLocalEnabled) {
- // default read concern source is not saved on disk.
- ASSERT(!defaults.getDefaultReadConcernSource());
- }
+ // default read concern source is not saved on disk.
+ ASSERT(!defaults.getDefaultReadConcernSource());
ASSERT_EQ(4, defaults.getDefaultWriteConcern()->wNumNodes);
ASSERT(defaults.getUpdateOpTime());
@@ -800,10 +723,6 @@ protected:
ReadWriteConcernDefaults::create(getServiceContext(), _lookupMock.getFetchDefaultsFn());
return ReadWriteConcernDefaults::get(getServiceContext());
}()};
-
- bool _isDefaultRCLocalEnabled{
- serverGlobalParams.featureCompatibility.isVersionInitialized() &&
- repl::feature_flags::gDefaultRCLocal.isEnabled(serverGlobalParams.featureCompatibility)};
};
TEST_F(ReadWriteConcernDefaultsTestWithClusterTime,
@@ -1031,17 +950,11 @@ TEST_F(ReadWriteConcernDefaultsTestWithClusterTime,
ASSERT(newDefaults.getDefaultWriteConcernSource() == DefaultWriteConcernSourceEnum::kGlobal);
// Test that the implicit default read concern is still used after read concern is unset.
- if (_isDefaultRCLocalEnabled) {
- ASSERT(newDefaults.getDefaultReadConcern());
- ASSERT(newDefaults.getDefaultReadConcern()->getLevel() ==
- repl::ReadConcernLevel::kLocalReadConcern);
- ASSERT(newDefaults.getDefaultReadConcernSource());
- ASSERT(newDefaults.getDefaultReadConcernSource() ==
- DefaultReadConcernSourceEnum::kImplicit);
- } else {
- ASSERT(!newDefaults.getDefaultReadConcern());
- ASSERT(!newDefaults.getDefaultReadConcernSource());
- }
+ ASSERT(newDefaults.getDefaultReadConcern());
+ ASSERT(newDefaults.getDefaultReadConcern()->getLevel() ==
+ repl::ReadConcernLevel::kLocalReadConcern);
+ ASSERT(newDefaults.getDefaultReadConcernSource());
+ ASSERT(newDefaults.getDefaultReadConcernSource() == DefaultReadConcernSourceEnum::kImplicit);
}
TEST_F(ReadWriteConcernDefaultsTestWithClusterTime,
diff --git a/src/mongo/db/repl/repl_server_parameters.idl b/src/mongo/db/repl/repl_server_parameters.idl
index 5736f82bb34..4c9dc7d1251 100644
--- a/src/mongo/db/repl/repl_server_parameters.idl
+++ b/src/mongo/db/repl/repl_server_parameters.idl
@@ -544,14 +544,6 @@ feature_flags:
default: true
version: 5.1
- featureFlagDefaultReadConcernLocal:
- description: >-
- When enabled, default read concern will be set to local if there is no cluster wide
- read concern (CWRC).
- cpp_varname: feature_flags::gDefaultRCLocal
- default: true
- version: 5.0
-
featureFlagFileCopyBasedInitialSync:
description: >-
When enabled, file copy based initial sync will be supported in Enterprise Server.
diff --git a/src/mongo/db/service_entry_point_common.cpp b/src/mongo/db/service_entry_point_common.cpp
index e8a4bd8ef7c..5e2bd446b35 100644
--- a/src/mongo/db/service_entry_point_common.cpp
+++ b/src/mongo/db/service_entry_point_common.cpp
@@ -313,12 +313,8 @@ StatusWith<repl::ReadConcernArgs> _extractReadConcern(OperationContext* opCtx,
ReadWriteConcernDefaults::get(opCtx->getServiceContext()).getDefault(opCtx);
const auto rcDefault = rwcDefaults.getDefaultReadConcern();
if (rcDefault) {
- const bool isDefaultRCLocalFeatureFlagEnabled =
- serverGlobalParams.featureCompatibility.isVersionInitialized() &&
- repl::feature_flags::gDefaultRCLocal.isEnabled(
- serverGlobalParams.featureCompatibility);
const auto readConcernSource = rwcDefaults.getDefaultReadConcernSource();
- customDefaultWasApplied = !isDefaultRCLocalFeatureFlagEnabled ||
+ customDefaultWasApplied =
(readConcernSource &&
readConcernSource.get() == DefaultReadConcernSourceEnum::kGlobal);