diff options
author | Gregory Wlodarek <gregory.wlodarek@mongodb.com> | 2022-04-22 19:42:03 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-04-22 20:12:32 +0000 |
commit | 90d6271d2f663a4aaf633de5e362972e50e90c21 (patch) | |
tree | d24da0cee090d7d92972fa8f43fa4f0eb41ac915 /src/mongo/db/mongod_main.cpp | |
parent | 983a7174c6d792049ef0f54e36a55f93801df89c (diff) | |
download | mongo-90d6271d2f663a4aaf633de5e362972e50e90c21.tar.gz |
SERVER-60761 Move the global read-only flag to be an OperationContext function
Diffstat (limited to 'src/mongo/db/mongod_main.cpp')
-rw-r--r-- | src/mongo/db/mongod_main.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/mongo/db/mongod_main.cpp b/src/mongo/db/mongod_main.cpp index bce1bc1815c..94aaa958448 100644 --- a/src/mongo/db/mongod_main.cpp +++ b/src/mongo/db/mongod_main.cpp @@ -389,6 +389,13 @@ ExitCode _initAndListen(ServiceContext* serviceContext, int listenPort) { auto runner = makePeriodicRunner(serviceContext); serviceContext->setPeriodicRunner(std::move(runner)); + // When starting the server with --queryableBackupMode or --recoverFromOplogAsStandalone, we are + // in read-only mode and don't allow user-originating operations to perform writes + if (storageGlobalParams.queryableBackupMode || + repl::ReplSettings::shouldRecoverFromOplogAsStandalone()) { + serviceContext->disallowUserWrites(); + } + #ifdef MONGO_CONFIG_SSL OCSPManager::start(serviceContext); CertificateExpirationMonitor::get()->start(serviceContext); @@ -650,7 +657,7 @@ ExitCode _initAndListen(ServiceContext* serviceContext, int listenPort) { readWriteConcernDefaultsMongodStartupChecks(startupOpCtx.get()); // Perform replication recovery for queryable backup mode if needed. - if (storageGlobalParams.readOnly) { + if (storageGlobalParams.queryableBackupMode) { uassert(ErrorCodes::BadValue, str::stream() << "Cannot specify both queryableBackupMode and " << "recoverFromOplogAsStandalone at the same time", @@ -673,7 +680,7 @@ ExitCode _initAndListen(ServiceContext* serviceContext, int listenPort) { replCoord->startup(startupOpCtx.get(), lastShutdownState); } - if (!storageGlobalParams.readOnly) { + if (!storageGlobalParams.queryableBackupMode) { if (storageEngine->supportsCappedCollections()) { logStartup(startupOpCtx.get()); |