summaryrefslogtreecommitdiff
path: root/jstests/noPassthrough/drop_connections_sharded.js
diff options
context:
space:
mode:
authorBen Caimano <ben.caimano@10gen.com>2019-06-11 11:19:44 -0400
committerBen Caimano <ben.caimano@10gen.com>2019-06-19 14:40:45 -0400
commitbd334968e09e4ef71c030f2bfc19ed935dcce97e (patch)
tree92a188d76d4ed4279ced65bb2075c4d476d27776 /jstests/noPassthrough/drop_connections_sharded.js
parentf2b968173b5ac64ba55cf85703e7eb3fefea9c44 (diff)
downloadmongo-bd334968e09e4ef71c030f2bfc19ed935dcce97e.tar.gz
SERVER-41460 dropConnections should shut down affected SpecificPools
Diffstat (limited to 'jstests/noPassthrough/drop_connections_sharded.js')
-rw-r--r--jstests/noPassthrough/drop_connections_sharded.js22
1 files changed, 17 insertions, 5 deletions
diff --git a/jstests/noPassthrough/drop_connections_sharded.js b/jstests/noPassthrough/drop_connections_sharded.js
index dd90f587b42..cfcb97a228d 100644
--- a/jstests/noPassthrough/drop_connections_sharded.js
+++ b/jstests/noPassthrough/drop_connections_sharded.js
@@ -6,13 +6,11 @@
(function() {
"use strict";
- // TODO ShardingTaskExecutorPoolMinSize is set to 0 so that we can clearly observe
- // dropConnections. This will no longer be necessary with SERVER-41460
const st = new ShardingTest({
config: {nodes: 1},
shards: 1,
rs0: {nodes: 3},
- mongos: [{setParameter: {ShardingTaskExecutorPoolMinSize: 0}}]
+ mongos: 1,
});
const mongos = st.s0;
const rst = st.rs0;
@@ -20,16 +18,30 @@
mongos.adminCommand({multicast: {ping: 0}});
+ function getConnPoolHosts() {
+ const ret = mongos.adminCommand({connPoolStats: 1});
+ assert.commandWorked(ret);
+ jsTestLog("Connection pool stats by host: " + tojson(ret.hosts));
+ return ret.hosts;
+ };
+
const cfg = primary.getDB('local').system.replset.findOne();
const memberHost = cfg.members[2].host;
+ assert.eq(memberHost in getConnPoolHosts(), true);
+
const removedMember = cfg.members.splice(2, 1);
+ assert.eq(removedMember[0].host, memberHost);
cfg.version++;
+ jsTestLog("Reconfiguring to omit " + memberHost);
assert.commandWorked(primary.adminCommand({replSetReconfig: cfg}));
+ assert.eq(memberHost in getConnPoolHosts(), true);
- assert.eq(1, mongos.adminCommand({connPoolStats: 1}).hosts[memberHost].available);
+ jsTestLog("Dropping connections to " + memberHost);
assert.commandWorked(mongos.adminCommand({dropConnections: 1, hostAndPort: [memberHost]}));
- assert.eq(0, mongos.adminCommand({connPoolStats: 1}).hosts[memberHost].available);
+ assert.soon(() => {
+ return !(memberHost in getConnPoolHosts());
+ });
// need to re-add removed node or test complain about the replset config
cfg.members.push(removedMember[0]);