summaryrefslogtreecommitdiff
path: root/src/mongo/db/server_options_helpers.cpp
diff options
context:
space:
mode:
authorSara Golemon <sara.golemon@mongodb.com>2019-07-02 15:37:23 +0000
committerSara Golemon <sara.golemon@mongodb.com>2019-07-03 20:20:02 +0000
commitf8cdf774a81b3af8825ac76eaebef1fd48183b5a (patch)
tree11f658690c81c7f946748c068717e97c52781ff8 /src/mongo/db/server_options_helpers.cpp
parent8071e24f0f7a4fa83015daa59d828c11c246423c (diff)
downloadmongo-f8cdf774a81b3af8825ac76eaebef1fd48183b5a.tar.gz
SERVER-41903 Validate server parameter names during config validation
Diffstat (limited to 'src/mongo/db/server_options_helpers.cpp')
-rw-r--r--src/mongo/db/server_options_helpers.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mongo/db/server_options_helpers.cpp b/src/mongo/db/server_options_helpers.cpp
index bc0a1eddc04..9e06c0bc77c 100644
--- a/src/mongo/db/server_options_helpers.cpp
+++ b/src/mongo/db/server_options_helpers.cpp
@@ -46,6 +46,7 @@
#include "mongo/bson/util/builder.h"
#include "mongo/config.h"
#include "mongo/db/server_options.h"
+#include "mongo/idl/server_parameter.h"
#include "mongo/logger/log_component.h"
#include "mongo/logger/message_event_utf8_encoder.h"
#include "mongo/transport/message_compressor_registry.h"
@@ -150,6 +151,22 @@ Status validateBaseOptions(const moe::Environment& params) {
// Deregister test-only parameters.
ServerParameterSet::getGlobal()->disableTestParameters();
}
+
+ // Must come after registerAllFailPointsAsServerParameters() above.
+ const auto& spMap = ServerParameterSet::getGlobal()->getMap();
+ for (const auto setParam : parameters) {
+ const auto it = spMap.find(setParam.first);
+
+ if (it == spMap.end()) {
+ return {ErrorCodes::BadValue,
+ str::stream() << "Unknown --setParameter '" << setParam.first << "'"};
+ }
+ if (!enableTestCommandsValue && it->second->isTestOnly()) {
+ return {ErrorCodes::BadValue,
+ str::stream() << "--setParameter '" << setParam.first
+ << "' only available when used with 'enableTestCommands'"};
+ }
+ }
}
return Status::OK();