diff options
author | Marcos José Grillo Ramirez <marcos.grillo@mongodb.com> | 2021-08-02 13:29:26 +0200 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-08-02 11:53:20 +0000 |
commit | 90052f7d16958f6f2b9187ac735b561b5f2270af (patch) | |
tree | c438d1c564ad4fc31032ded2599d83e9550f9a9e /src/mongo/db/mongod_options.cpp | |
parent | 52e0b6886e5ce44feb563a71cceaf4d5fffc8c3a (diff) | |
download | mongo-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.cpp | 9 |
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 " |