summaryrefslogtreecommitdiff
path: root/src/mongo/db/mongod_options.cpp
diff options
context:
space:
mode:
authorMarcos José Grillo Ramirez <marcos.grillo@mongodb.com>2021-08-02 13:29:26 +0200
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-08-02 11:53:20 +0000
commit90052f7d16958f6f2b9187ac735b561b5f2270af (patch)
treec438d1c564ad4fc31032ded2599d83e9550f9a9e /src/mongo/db/mongod_options.cpp
parent52e0b6886e5ce44feb563a71cceaf4d5fffc8c3a (diff)
downloadmongo-90052f7d16958f6f2b9187ac735b561b5f2270af.tar.gz
SERVER-27383 Restrict use of queryableBackupMode to only shards when starting a cluster
Diffstat (limited to 'src/mongo/db/mongod_options.cpp')
-rw-r--r--src/mongo/db/mongod_options.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mongo/db/mongod_options.cpp b/src/mongo/db/mongod_options.cpp
index 12e369d5e11..4738e96826d 100644
--- a/src/mongo/db/mongod_options.cpp
+++ b/src/mongo/db/mongod_options.cpp
@@ -603,9 +603,12 @@ Status storeMongodOptions(const moe::Environment& params) {
}
if (params.count("sharding.clusterRole")) {
auto clusterRoleParam = params["sharding.clusterRole"].as<std::string>();
- // Force to set up the node as a replica set, unless we're using queryable backup mode.
- if (!params.count("storage.queryableBackupMode") && !params.count("replication.replSet") &&
- !params.count("replication.replSetName")) {
+ const bool replicationEnabled =
+ params.count("replication.replSet") || params.count("replication.replSetName");
+ // Force to set up the node as a replica set, unless we're a shard and we're using queryable
+ // backup mode.
+ if ((clusterRoleParam == "configsvr" || !params.count("storage.queryableBackupMode")) &&
+ !replicationEnabled) {
return Status(ErrorCodes::BadValue,
str::stream() << "Cannot start a " << clusterRoleParam
<< " as a standalone server. Please use the option "