diff options
author | Max Hirschhorn <max.hirschhorn@mongodb.com> | 2020-12-02 17:11:02 -0500 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-12-02 22:21:26 +0000 |
commit | d8319b3775e9b6952c32a9c0599fce8ebb0d18c5 (patch) | |
tree | 389e8e0d5d63add4ea24832552d334e56c4b59cd | |
parent | a574d23ec0b7d06b8d872bf64136308f541a796d (diff) | |
download | mongo-d8319b3775e9b6952c32a9c0599fce8ebb0d18c5.tar.gz |
SERVER-53182 Omit "versions" from shardingState cmd when not --shardsvr.
-rw-r--r-- | jstests/sharding/shardingstate_command_nonshardsvr.js | 20 | ||||
-rw-r--r-- | src/mongo/db/s/sharding_state_command.cpp | 5 |
2 files changed, 24 insertions, 1 deletions
diff --git a/jstests/sharding/shardingstate_command_nonshardsvr.js b/jstests/sharding/shardingstate_command_nonshardsvr.js new file mode 100644 index 00000000000..2aeb8a3de16 --- /dev/null +++ b/jstests/sharding/shardingstate_command_nonshardsvr.js @@ -0,0 +1,20 @@ +/** + * Tests that the {shardingState: 1} command doesn't return an entry for each collection when + * sharding isn't enabled. + */ +(function() { + "use strict"; + + const rst = new ReplSetTest({nodes: 1}); + rst.startSet(); + rst.initiate(); + + const db = rst.getPrimary().getDB("test"); + assert.commandWorked(db.runCommand({create: "mycoll"})); + + const res = assert.commandWorked(db.adminCommand({shardingState: 1})); + assert(!res.hasOwnProperty("versions"), + "unexpectedly found version info about collections: " + tojson(res)); + + rst.stopSet(); +})(); diff --git a/src/mongo/db/s/sharding_state_command.cpp b/src/mongo/db/s/sharding_state_command.cpp index 5c537b63401..85048c09a65 100644 --- a/src/mongo/db/s/sharding_state_command.cpp +++ b/src/mongo/db/s/sharding_state_command.cpp @@ -71,7 +71,10 @@ public: const BSONObj& cmdObj, BSONObjBuilder& result) override { ShardingState::get(opCtx)->appendInfo(opCtx, result); - CollectionShardingState::report(opCtx, &result); + const bool isEnabled = ShardingState::get(opCtx)->enabled(); + if (isEnabled) { + CollectionShardingState::report(opCtx, &result); + } return true; } |