summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKatherine Walker <katherine.walker@mongodb.com>2017-09-28 16:26:35 -0400
committerJudah Schvimer <judah@mongodb.com>2017-10-30 12:29:08 -0400
commit918524be973eb056909f035df141b0dd5765ead1 (patch)
treee2c7b53bd94b6615695bccb752414258ff0ed8b8 /src
parent44c83a821606db1c8b34b9c2a1ee2c485d3fff39 (diff)
downloadmongo-918524be973eb056909f035df141b0dd5765ead1.tar.gz
SERVER-29649 Add startupWarning for replset running with --nojournal when writeConcernMajorityJournalDefault is not false
(cherry picked from commit 5fe40b170094b08ead496eb694113892bb711373)
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp
index 88e9310d141..a16abdbceb5 100644
--- a/src/mongo/db/repl/replication_coordinator_impl.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl.cpp
@@ -2795,6 +2795,26 @@ ReplicationCoordinatorImpl::_setCurrentRSConfig_inlock(
const ReplicaSetConfig oldConfig = _rsConfig;
_rsConfig = newConfig;
_protVersion.store(_rsConfig.getProtocolVersion());
+
+ // Warn if running --nojournal and writeConcernMajorityJournalDefault = false
+ StorageEngine* storageEngine = getGlobalServiceContext()->getGlobalStorageEngine();
+ if (storageEngine && !storageEngine->isDurable() &&
+ (newConfig.getWriteConcernMajorityShouldJournal() &&
+ (!oldConfig.isInitialized() || !oldConfig.getWriteConcernMajorityShouldJournal()))) {
+ log() << startupWarningsLog;
+ log() << "** WARNING: This replica set is running without journaling enabled but the "
+ << startupWarningsLog;
+ log() << "** writeConcernMajorityJournalDefault option to the replica set config "
+ << startupWarningsLog;
+ log() << "** is set to true. The writeConcernMajorityJournalDefault "
+ << startupWarningsLog;
+ log() << "** option to the replica set config must be set to false "
+ << startupWarningsLog;
+ log() << "** or w:majority write concerns will never complete."
+ << startupWarningsLog;
+ log() << startupWarningsLog;
+ }
+
log() << "New replica set config in use: " << _rsConfig.toBSON() << rsLog;
_selfIndex = myIndex;
if (_selfIndex >= 0) {