diff options
-rw-r--r-- | src/mongo/db/mongod_options.cpp | 20 | ||||
-rw-r--r-- | src/mongo/db/repl/repl_set_config_test.cpp | 7 | ||||
-rw-r--r-- | src/mongo/db/repl/replica_set_aware_service_test.cpp | 7 | ||||
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl_test.cpp | 7 | ||||
-rw-r--r-- | src/mongo/db/repl/topology_version_observer_test.cpp | 7 |
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` */ |