summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mongo/db/mongod_options.cpp20
-rw-r--r--src/mongo/db/repl/repl_set_config_test.cpp7
-rw-r--r--src/mongo/db/repl/replica_set_aware_service_test.cpp7
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl_test.cpp7
-rw-r--r--src/mongo/db/repl/topology_version_observer_test.cpp7
5 files changed, 45 insertions, 3 deletions
diff --git a/src/mongo/db/mongod_options.cpp b/src/mongo/db/mongod_options.cpp
index e499d04881a..ee0cc6f7f45 100644
--- a/src/mongo/db/mongod_options.cpp
+++ b/src/mongo/db/mongod_options.cpp
@@ -36,6 +36,7 @@
#include <string>
#include <vector>
+#include "mongo/base/init.h"
#include "mongo/base/status.h"
#include "mongo/bson/json.h"
#include "mongo/bson/util/builder.h"
@@ -344,6 +345,8 @@ Status canonicalizeMongodOptions(moe::Environment* params) {
return Status::OK();
}
+bool gIgnoreEnableMajorityReadConcernWarning = false;
+
Status storeMongodOptions(const moe::Environment& params) {
Status ret = storeServerOptions(params);
if (!ret.isOK()) {
@@ -601,9 +604,7 @@ Status storeMongodOptions(const moe::Environment& params) {
if (params.count("replication.enableMajorityReadConcern") &&
!params["replication.enableMajorityReadConcern"].as<bool>()) {
- LOGV2_WARNING(20879,
- "Ignoring read concern override as config server requires majority "
- "read concern");
+ gIgnoreEnableMajorityReadConcernWarning = true;
}
serverGlobalParams.enableMajorityReadConcern = true;
@@ -681,4 +682,17 @@ Status storeMongodOptions(const moe::Environment& params) {
return Status::OK();
}
+// This warning must be deferred until after ServerLogRedirection has started up so that it goes to
+// the right place.
+MONGO_INITIALIZER_WITH_PREREQUISITES(IgnoreEnableMajorityReadConcernWarning,
+ ("ServerLogRedirection"))
+(InitializerContext*) {
+ if (gIgnoreEnableMajorityReadConcernWarning) {
+ LOGV2_WARNING(20879,
+ "Ignoring read concern override as config server requires majority read "
+ "concern");
+ }
+ return Status::OK();
+}
+
} // namespace mongo
diff --git a/src/mongo/db/repl/repl_set_config_test.cpp b/src/mongo/db/repl/repl_set_config_test.cpp
index 16618f56cbf..9483d20ed52 100644
--- a/src/mongo/db/repl/repl_set_config_test.cpp
+++ b/src/mongo/db/repl/repl_set_config_test.cpp
@@ -29,6 +29,7 @@
#include "mongo/platform/basic.h"
+#include "mongo/base/init.h"
#include "mongo/bson/json.h"
#include "mongo/bson/mutable/document.h"
#include "mongo/bson/mutable/element.h"
@@ -43,6 +44,12 @@ namespace mongo {
namespace repl {
namespace {
+MONGO_INITIALIZER(ServerLogRedirection)(mongo::InitializerContext*) {
+ // mongod_options.cpp has an initializer which depends on logging.
+ // We can stub that dependency out for unit testing purposes.
+ return Status::OK();
+}
+
// Creates a bson document reprsenting a replica set config doc with the given members, and votes
BSONObj createConfigDoc(int members, int voters = ReplSetConfig::kMaxVotingMembers) {
str::stream configJson;
diff --git a/src/mongo/db/repl/replica_set_aware_service_test.cpp b/src/mongo/db/repl/replica_set_aware_service_test.cpp
index cd4e6697835..c6df76afaa4 100644
--- a/src/mongo/db/repl/replica_set_aware_service_test.cpp
+++ b/src/mongo/db/repl/replica_set_aware_service_test.cpp
@@ -31,6 +31,7 @@
#include <memory>
+#include "mongo/base/init.h"
#include "mongo/db/repl/replica_set_aware_service.h"
#include "mongo/db/repl/replication_coordinator_mock.h"
#include "mongo/db/service_context_test_fixture.h"
@@ -39,6 +40,12 @@ namespace mongo {
namespace {
+MONGO_INITIALIZER(ServerLogRedirection)(mongo::InitializerContext*) {
+ // mongod_options.cpp has an initializer which depends on logging.
+ // We can stub that dependency out for unit testing purposes.
+ return Status::OK();
+}
+
template <class ActualService>
class TestService : public ReplicaSetAwareService<ActualService> {
public:
diff --git a/src/mongo/db/repl/replication_coordinator_impl_test.cpp b/src/mongo/db/repl/replication_coordinator_impl_test.cpp
index c01888362c0..bf4152d0eca 100644
--- a/src/mongo/db/repl/replication_coordinator_impl_test.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl_test.cpp
@@ -38,6 +38,7 @@
#include <set>
#include <vector>
+#include "mongo/base/init.h"
#include "mongo/bson/util/bson_extract.h"
#include "mongo/db/catalog/commit_quorum_options.h"
#include "mongo/db/concurrency/lock_state.h"
@@ -92,6 +93,12 @@ using rpc::ReplSetMetadata;
using unittest::assertGet;
using unittest::EnsureFCV;
+MONGO_INITIALIZER(ServerLogRedirection)(mongo::InitializerContext*) {
+ // mongod_options.cpp has an initializer which depends on logging.
+ // We can stub that dependency out for unit testing purposes.
+ return Status::OK();
+}
+
typedef ReplicationCoordinator::ReplSetReconfigArgs ReplSetReconfigArgs;
// Helper class to wrap Timestamp as an OpTime with term 1.
struct OpTimeWithTermOne {
diff --git a/src/mongo/db/repl/topology_version_observer_test.cpp b/src/mongo/db/repl/topology_version_observer_test.cpp
index 3346974649b..e1d00daddb1 100644
--- a/src/mongo/db/repl/topology_version_observer_test.cpp
+++ b/src/mongo/db/repl/topology_version_observer_test.cpp
@@ -35,6 +35,7 @@
#include <iostream>
#include <memory>
+#include "mongo/base/init.h"
#include "mongo/bson/timestamp.h"
#include "mongo/bson/util/bson_extract.h"
#include "mongo/db/repl/is_master_response.h"
@@ -52,6 +53,12 @@ namespace mongo {
namespace repl {
namespace {
+MONGO_INITIALIZER(ServerLogRedirection)(mongo::InitializerContext*) {
+ // mongod_options.cpp has an initializer which depends on logging.
+ // We can stub that dependency out for unit testing purposes.
+ return Status::OK();
+}
+
/**
* Sets up and tears down the test environment for `TopologyVersionObserver`
*/