summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXueruiFa <xuerui.fa@mongodb.com>2021-07-26 21:13:55 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-07-27 18:06:39 +0000
commit4145d1a30d7f340c9bbf4fe8924db14590738813 (patch)
tree95fed6a031463784d4312f1c96c435d6c0bc1ae6
parent292b0ee13aed4689714ab506703bd6eb92785ad5 (diff)
downloadmongo-4145d1a30d7f340c9bbf4fe8924db14590738813.tar.gz
SERVER-58794: _configsvrCreateDatabase and _flushDatabaseCacheUpdates should accept any API version parameters
(cherry picked from commit 7cccaa4720c8ca16e7c8a35d325ea281fc1f9e2e)
-rw-r--r--jstests/sharding/libs/mongos_api_params_util.js4
-rw-r--r--src/mongo/db/s/config/configsvr_create_database_command.cpp8
-rw-r--r--src/mongo/db/s/flush_database_cache_updates_command.cpp8
3 files changed, 20 insertions, 0 deletions
diff --git a/jstests/sharding/libs/mongos_api_params_util.js b/jstests/sharding/libs/mongos_api_params_util.js
index fb2fe5b9231..72f057016ec 100644
--- a/jstests/sharding/libs/mongos_api_params_util.js
+++ b/jstests/sharding/libs/mongos_api_params_util.js
@@ -1522,6 +1522,10 @@ let MongosAPIParametersUtil = (function() {
for (let i = 0; i < testInstances.length; ++i) {
const {apiParameters, commandName, runOrExplain} = testInstances[i];
+ // Creating a new db implicitly should succeed with 'apiStrict: true'.
+ assert.commandWorked(st.s.getDB("db").runCommand(
+ {create: 'collection', apiVersion: '1', apiStrict: true}));
+
if (shardedCollection) {
jsTestLog("Sharded setup");
assert.commandWorked(st.s.getDB("db")["collection"].insert(
diff --git a/src/mongo/db/s/config/configsvr_create_database_command.cpp b/src/mongo/db/s/config/configsvr_create_database_command.cpp
index 3d351a57baf..16a89fa4014 100644
--- a/src/mongo/db/s/config/configsvr_create_database_command.cpp
+++ b/src/mongo/db/s/config/configsvr_create_database_command.cpp
@@ -51,6 +51,14 @@ namespace {
class ConfigSvrCreateDatabaseCommand final : public TypedCommand<ConfigSvrCreateDatabaseCommand> {
public:
+ /**
+ * We accept any apiVersion, apiStrict, and/or apiDeprecationErrors forwarded with this internal
+ * command.
+ */
+ bool acceptsAnyApiVersionParameters() const override {
+ return true;
+ }
+
using Request = ConfigsvrCreateDatabase;
using Response = ConfigsvrCreateDatabaseResponse;
diff --git a/src/mongo/db/s/flush_database_cache_updates_command.cpp b/src/mongo/db/s/flush_database_cache_updates_command.cpp
index ccac94f02e7..cf4a033f668 100644
--- a/src/mongo/db/s/flush_database_cache_updates_command.cpp
+++ b/src/mongo/db/s/flush_database_cache_updates_command.cpp
@@ -67,6 +67,14 @@ public:
"to be persisted.";
}
+ /**
+ * We accept any apiVersion, apiStrict, and/or apiDeprecationErrors forwarded with this internal
+ * command.
+ */
+ bool acceptsAnyApiVersionParameters() const override {
+ return true;
+ }
+
bool adminOnly() const override {
return true;
}