diff options
author | Ben Caimano <ben.caimano@10gen.com> | 2019-06-11 11:19:44 -0400 |
---|---|---|
committer | Ben Caimano <ben.caimano@10gen.com> | 2019-06-19 14:40:45 -0400 |
commit | bd334968e09e4ef71c030f2bfc19ed935dcce97e (patch) | |
tree | 92a188d76d4ed4279ced65bb2075c4d476d27776 /jstests/noPassthrough/drop_connections_sharded.js | |
parent | f2b968173b5ac64ba55cf85703e7eb3fefea9c44 (diff) | |
download | mongo-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.js | 22 |
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]); |