From aad17aeba520f5c421716cb2d740057be96ce61a Mon Sep 17 00:00:00 2001 From: James Wahlin Date: Fri, 18 Jan 2019 11:51:13 -0500 Subject: SERVER-39081 Fix createIndexes/shardCollection race condition in agg_out.js --- jstests/concurrency/fsm_workloads/agg_out.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'jstests') diff --git a/jstests/concurrency/fsm_workloads/agg_out.js b/jstests/concurrency/fsm_workloads/agg_out.js index 4aeec1bf67a..80ed675bca0 100644 --- a/jstests/concurrency/fsm_workloads/agg_out.js +++ b/jstests/concurrency/fsm_workloads/agg_out.js @@ -139,7 +139,6 @@ var $config = extendWorkload($config, function($config, $super) { $config.states.shardCollection = function shardCollection(db, unusedCollName) { if (isMongos(db)) { assertWhenOwnDB.commandWorked(db.adminCommand({enableSharding: db.getName()})); - assertWhenOwnDB.commandWorked(db[this.outputCollName].createIndex({_id: 'hashed'})); assertWhenOwnDB.commandWorked(db.adminCommand( {shardCollection: db[this.outputCollName].getFullName(), key: {_id: 'hashed'}})); } @@ -150,6 +149,10 @@ var $config = extendWorkload($config, function($config, $super) { */ $config.setup = function setup(db, collName, cluster) { $super.setup.apply(this, [db, collName, cluster]); + + // `shardCollection()` requires a shard key index to be in place on the output collection, + // as we may be sharding a non-empty collection. + assertWhenOwnDB.commandWorked(db[this.outputCollName].createIndex({_id: 'hashed'})); }; return $config; -- cgit v1.2.1