diff options
41 files changed, 40 insertions, 339 deletions
diff --git a/etc/evergreen.yml b/etc/evergreen.yml index 2d1d74598a3..eabe895eada 100644 --- a/etc/evergreen.yml +++ b/etc/evergreen.yml @@ -9547,6 +9547,8 @@ buildvariants: - rhel62-large - name: lint - name: burn_in_tests + distros: + - rhel62-large - name: rollback_fuzzer - name: rollback_fuzzer_clean_shutdowns - name: rollback_fuzzer_unclean_shutdowns diff --git a/jstests/concurrency/fsm_workloads/agg_base.js b/jstests/concurrency/fsm_workloads/agg_base.js index 9bc1be04785..410fa2295ef 100644 --- a/jstests/concurrency/fsm_workloads/agg_base.js +++ b/jstests/concurrency/fsm_workloads/agg_base.js @@ -68,10 +68,6 @@ var $config = (function() { assertWhenOwnColl.eq(this.numDocs / 2, db[collName].find({flag: true}).itcount()); } - function teardown(db, collName, cluster) { - assertWhenOwnColl(db[collName].drop()); - } - return { // Using few threads and iterations because each iteration is fairly expensive compared to // other workloads' iterations. (Each does a collection scan over a few thousand documents @@ -83,6 +79,5 @@ var $config = (function() { transitions: transitions, data: data, setup: setup, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/agg_graph_lookup.js b/jstests/concurrency/fsm_workloads/agg_graph_lookup.js index aacbe632fc2..b10fc88a99d 100644 --- a/jstests/concurrency/fsm_workloads/agg_graph_lookup.js +++ b/jstests/concurrency/fsm_workloads/agg_graph_lookup.js @@ -54,10 +54,6 @@ var $config = (function() { assertWhenOwnColl.eq(this.numDocs, db[collName].find().itcount()); } - function teardown(db, collName, cluster) { - assertWhenOwnColl(db[collName].drop()); - } - return { threadCount: 10, iterations: 100, @@ -66,6 +62,5 @@ var $config = (function() { transitions: transitions, data: data, setup: setup, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/agg_group_external.js b/jstests/concurrency/fsm_workloads/agg_group_external.js index e4ca604a99c..ae60b810424 100644 --- a/jstests/concurrency/fsm_workloads/agg_group_external.js +++ b/jstests/concurrency/fsm_workloads/agg_group_external.js @@ -8,9 +8,8 @@ * The data passed to the $group is greater than 100MB, which should force * disk to be used. */ -load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload -load('jstests/concurrency/fsm_workloads/agg_base.js'); // for $config -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections +load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload +load('jstests/concurrency/fsm_workloads/agg_base.js'); // for $config var $config = extendWorkload($config, function($config, $super) { @@ -40,13 +39,5 @@ var $config = extendWorkload($config, function($config, $super) { }.bind(this)); }; - $config.teardown = function teardown(db, collName, cluster) { - $super.teardown.apply(this, arguments); - - // drop all collections with this workload's assumed-to-be-unique prefix - // NOTE: assumes the prefix contains no special regex chars - dropCollections(db, new RegExp('^' + this.getOutputCollPrefix(collName))); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/agg_match.js b/jstests/concurrency/fsm_workloads/agg_match.js index 0134978b377..91b4eef3755 100644 --- a/jstests/concurrency/fsm_workloads/agg_match.js +++ b/jstests/concurrency/fsm_workloads/agg_match.js @@ -34,11 +34,5 @@ var $config = extendWorkload($config, function($config, $super) { assertWhenOwnColl.commandWorked(db.runCommand({create: this.getOutCollName(collName)})); }; - $config.teardown = function teardown(db, collName, cluster) { - $super.teardown.apply(this, arguments); - - assertWhenOwnColl(db[this.getOutCollName(collName)].drop()); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/agg_out.js b/jstests/concurrency/fsm_workloads/agg_out.js index 71452161627..0dc4ebe5795 100644 --- a/jstests/concurrency/fsm_workloads/agg_out.js +++ b/jstests/concurrency/fsm_workloads/agg_out.js @@ -27,9 +27,6 @@ var $config = extendWorkload($config, function($config, $super) { $config.data.outputCollName = 'agg_out'; // Use the workload name as the collection name // because it is assumed to be unique. - $config.data.dbName = 'agg_out'; // Use our own database for this test, since it is using two - // separate collections. - $config.data.indexSpecs = [{rand: -1, randInt: 1}, {randInt: -1}, {flag: 1}, {padding: 'text'}]; // We'll use document validation so that we can change the collection options in the middle of @@ -59,8 +56,7 @@ var $config = extendWorkload($config, function($config, $super) { /** * Runs an aggregate with a $out into '$config.data.outputCollName'. */ - $config.states.query = function query(unusedDB, collName) { - const db = unusedDB.getSiblingDB(this.dbName); + $config.states.query = function query(db, collName) { const res = db[collName].runCommand({ aggregate: collName, pipeline: [{$match: {flag: true}}, {$out: this.outputCollName}], @@ -78,8 +74,7 @@ var $config = extendWorkload($config, function($config, $super) { * Ensures all the indexes exist. This will have no affect unless some thread has already * dropped an index. */ - $config.states.ensureIndexes = function ensureIndexes(unusedDB, unusedCollName) { - const db = unusedDB.getSiblingDB(this.dbName); + $config.states.ensureIndexes = function ensureIndexes(db, unusedCollName) { for (var i = 0; i < this.indexSpecs; ++i) { assertWhenOwnDB.commandWorked(db[this.outputCollName].ensureIndex(this.indexSpecs[i])); } @@ -88,8 +83,7 @@ var $config = extendWorkload($config, function($config, $super) { /** * Drops a random index from '$config.data.indexSpecs'. */ - $config.states.dropIndex = function dropIndex(unusedDB, unusedCollName) { - const db = unusedDB.getSiblingDB(this.dbName); + $config.states.dropIndex = function dropIndex(db, unusedCollName) { const indexSpec = this.indexSpecs[Random.randInt(this.indexSpecs.length)]; db[this.outputCollName].dropIndex(indexSpec); }; @@ -97,8 +91,7 @@ var $config = extendWorkload($config, function($config, $super) { /** * Changes the document validation options for the collection. */ - $config.states.collMod = function collMod(unusedDB, unusedCollName) { - const db = unusedDB.getSiblingDB(this.dbName); + $config.states.collMod = function collMod(db, unusedCollName) { if (Random.rand() < 0.5) { // Change the validation level. const validationLevels = ['off', 'strict', 'moderate']; @@ -118,8 +111,7 @@ var $config = extendWorkload($config, function($config, $super) { * Converts '$config.data.outputCollName' to a capped collection. This is never undone, and all * subsequent $out's to this collection should fail. */ - $config.states.convertToCapped = function convertToCapped(unusedDB, unusedCollName) { - const db = unusedDB.getSiblingDB(this.dbName); + $config.states.convertToCapped = function convertToCapped(db, unusedCollName) { if (isMongos(db)) { return; // convertToCapped can't be run against a mongos. } @@ -132,8 +124,7 @@ var $config = extendWorkload($config, function($config, $super) { * If being run against a mongos, shards '$config.data.outputCollName'. This is never undone, * and all subsequent $out's to this collection should fail. */ - $config.states.shardCollection = function shardCollection(unusedDB, unusedCollName) { - const db = unusedDB.getSiblingDB(this.dbName); + $config.states.shardCollection = function shardCollection(db, unusedCollName) { if (isMongos(db)) { db.adminCommand({enableSharding: db.getName()}); db.adminCommand( @@ -144,20 +135,9 @@ var $config = extendWorkload($config, function($config, $super) { /** * Calls the super class' setup but using our own database. */ - $config.setup = function setup(unusedDB, collName, cluster) { - const db = unusedDB.getSiblingDB(this.dbName); + $config.setup = function setup(db, collName, cluster) { $super.setup.apply(this, [db, collName, cluster]); }; - /** - * Calls the super class' teardown but using our own database, then drops the - * '$config.data.outputCollName' collection. - */ - $config.teardown = function teardown(unusedDB, collName, cluster) { - const db = unusedDB.getSiblingDB(this.dbName); - $super.teardown.apply(this, [db, collName, cluster]); - db[this.outputCollName].drop(); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/agg_sort.js b/jstests/concurrency/fsm_workloads/agg_sort.js index 8ab372d87f0..8a04195fe15 100644 --- a/jstests/concurrency/fsm_workloads/agg_sort.js +++ b/jstests/concurrency/fsm_workloads/agg_sort.js @@ -6,9 +6,8 @@ * Runs an aggregation with a $match that returns half the documents followed * by a $sort on a field containing a random float. */ -load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload -load('jstests/concurrency/fsm_workloads/agg_base.js'); // for $config -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections +load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload +load('jstests/concurrency/fsm_workloads/agg_base.js'); // for $config var $config = extendWorkload($config, function($config, $super) { @@ -24,13 +23,5 @@ var $config = extendWorkload($config, function($config, $super) { assertWhenOwnColl.eq(db[collName].find().itcount() / 2, db[otherCollName].find().itcount()); }; - $config.teardown = function teardown(db, collName, cluster) { - $super.teardown.apply(this, arguments); - - // drop all collections with this workload's assumed-to-be-unique prefix - // NOTE: assumes the prefix contains no special regex chars - dropCollections(db, new RegExp('^' + this.getOutputCollPrefix(collName))); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/agg_sort_external.js b/jstests/concurrency/fsm_workloads/agg_sort_external.js index 785d1a4d150..f843d623ff3 100644 --- a/jstests/concurrency/fsm_workloads/agg_sort_external.js +++ b/jstests/concurrency/fsm_workloads/agg_sort_external.js @@ -8,9 +8,8 @@ * * The data returned by the $match is greater than 100MB, which should force an external sort. */ -load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload -load('jstests/concurrency/fsm_workloads/agg_base.js'); // for $config -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections +load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload +load('jstests/concurrency/fsm_workloads/agg_base.js'); // for $config var $config = extendWorkload($config, function($config, $super) { @@ -35,13 +34,5 @@ var $config = extendWorkload($config, function($config, $super) { assertWhenOwnColl.eq(db[collName].find().itcount() / 2, db[otherCollName].find().itcount()); }; - $config.teardown = function teardown(db, collName, cluster) { - $super.teardown.apply(this, arguments); - - // drop all collections with this workload's assumed-to-be-unique prefix - // NOTE: assumes the prefix contains no special regex chars - dropCollections(db, new RegExp('^' + this.getOutputCollPrefix(collName))); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/collmod_separate_collections.js b/jstests/concurrency/fsm_workloads/collmod_separate_collections.js index a033eb200ee..615af927c1b 100644 --- a/jstests/concurrency/fsm_workloads/collmod_separate_collections.js +++ b/jstests/concurrency/fsm_workloads/collmod_separate_collections.js @@ -9,9 +9,8 @@ * * Each thread updates a TTL index on a separate collection. */ -load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload -load('jstests/concurrency/fsm_workloads/collmod.js'); // for $config -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections +load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload +load('jstests/concurrency/fsm_workloads/collmod.js'); // for $config var $config = extendWorkload($config, function($config, $super) { $config.data.prefix = 'collmod_separate_collections'; @@ -29,12 +28,6 @@ var $config = extendWorkload($config, function($config, $super) { // the separate collections on a per-thread basis. }; - $config.teardown = function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '_\\d+$'); - dropCollections(db, pattern); - $super.teardown.apply(this, arguments); - }; - $config.startState = 'init'; return $config; }); diff --git a/jstests/concurrency/fsm_workloads/compact.js b/jstests/concurrency/fsm_workloads/compact.js index e86e6ef555f..7834407d47a 100644 --- a/jstests/concurrency/fsm_workloads/compact.js +++ b/jstests/concurrency/fsm_workloads/compact.js @@ -8,7 +8,6 @@ * for each thread. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections load('jstests/concurrency/fsm_workload_helpers/server_types.js'); // for isEphemeral var $config = (function() { @@ -82,11 +81,6 @@ var $config = (function() { query: {compact: 0.5, query: 0.5} }; - var teardown = function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '_\\d+$'); - dropCollections(db, pattern); - }; - var skip = function skip(cluster) { if (cluster.isRunningWiredTigerLSM()) { // There is a known hang during concurrent FSM workloads with the compact command used @@ -106,7 +100,6 @@ var $config = (function() { iterations: 10, states: states, transitions: transitions, - teardown: teardown, data: data, skip: skip }; diff --git a/jstests/concurrency/fsm_workloads/convert_to_capped_collection.js b/jstests/concurrency/fsm_workloads/convert_to_capped_collection.js index 9bbd4278a74..70b10c2361f 100644 --- a/jstests/concurrency/fsm_workloads/convert_to_capped_collection.js +++ b/jstests/concurrency/fsm_workloads/convert_to_capped_collection.js @@ -11,7 +11,6 @@ * * @tags: [requires_collstats] */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); var $config = (function() { // TODO: This workload may fail if an iteration multiplier is specified. @@ -72,11 +71,6 @@ var $config = (function() { this.size = Math.pow(2, this.iterations + 5) + 1; } - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '_\\d+$'); - dropCollections(db, pattern); - } - return { threadCount: 10, iterations: 20, @@ -84,7 +78,6 @@ var $config = (function() { states: states, transitions: transitions, setup: setup, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/count_indexed.js b/jstests/concurrency/fsm_workloads/count_indexed.js index 77edf8da6ef..b8041d5f91a 100644 --- a/jstests/concurrency/fsm_workloads/count_indexed.js +++ b/jstests/concurrency/fsm_workloads/count_indexed.js @@ -10,9 +10,8 @@ * and then inserts 'modulus * countPerNum' documents. [250, 1000] * Each thread inserts docs into a unique collection. */ -load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload -load('jstests/concurrency/fsm_workloads/count.js'); // for $config -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections +load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload +load('jstests/concurrency/fsm_workloads/count.js'); // for $config var $config = extendWorkload($config, function($config, $super) { $config.data.prefix = 'count_fsm'; @@ -29,11 +28,5 @@ var $config = extendWorkload($config, function($config, $super) { assertAlways.commandWorked(db[this.threadCollName].ensureIndex({tid: 1, i: 1})); }; - $config.teardown = function teardown(db, collName) { - var pattern = new RegExp('^' + this.prefix + '_\\d+$'); - dropCollections(db, pattern); - $super.teardown.apply(this, arguments); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/count_limit_skip.js b/jstests/concurrency/fsm_workloads/count_limit_skip.js index e8690675d17..99a2149cc1f 100644 --- a/jstests/concurrency/fsm_workloads/count_limit_skip.js +++ b/jstests/concurrency/fsm_workloads/count_limit_skip.js @@ -10,10 +10,9 @@ * and then inserts 'modulus * countPerNum' documents. [250, 1000] * Each thread inserts docs into a unique collection. */ -load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload -load('jstests/concurrency/fsm_workloads/count.js'); // for $config -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections -load("jstests/libs/fixture_helpers.js"); // For isMongos. +load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload +load('jstests/concurrency/fsm_workloads/count.js'); // for $config +load("jstests/libs/fixture_helpers.js"); // For isMongos. var $config = extendWorkload($config, function($config, $super) { $config.data.prefix = 'count_fsm_q_l_s'; @@ -43,11 +42,5 @@ var $config = extendWorkload($config, function($config, $super) { 1); }; - $config.teardown = function teardown(db, collName) { - var pattern = new RegExp('^' + this.prefix + '_\\d+$'); - dropCollections(db, pattern); - $super.teardown.apply(this, arguments); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/create_capped_collection.js b/jstests/concurrency/fsm_workloads/create_capped_collection.js index c0ec6c0e071..68783ca5e22 100644 --- a/jstests/concurrency/fsm_workloads/create_capped_collection.js +++ b/jstests/concurrency/fsm_workloads/create_capped_collection.js @@ -6,7 +6,6 @@ * Repeatedly creates a capped collection. Also verifies that truncation * occurs once the collection reaches a certain size. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections load('jstests/concurrency/fsm_workload_helpers/server_types.js'); // for isMongod and isMMAPv1 var $config = (function() { @@ -149,18 +148,12 @@ var $config = (function() { var transitions = {init: {create: 1}, create: {create: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '\\d+_\\d+$'); - dropCollections(db, pattern); - } - return { threadCount: 5, iterations: 5, data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/create_collection.js b/jstests/concurrency/fsm_workloads/create_collection.js index 023c6811f1f..7b851e5b7fb 100644 --- a/jstests/concurrency/fsm_workloads/create_collection.js +++ b/jstests/concurrency/fsm_workloads/create_collection.js @@ -5,7 +5,6 @@ * * Repeatedly creates a collection. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections var $config = (function() { @@ -38,18 +37,12 @@ var $config = (function() { var transitions = {init: {create: 1}, create: {create: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '\\d+_\\d+$'); - dropCollections(db, pattern); - } - return { threadCount: 5, iterations: 20, data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/create_index_background_unique.js b/jstests/concurrency/fsm_workloads/create_index_background_unique.js index 91f1bd4a77d..929ce18a4e2 100644 --- a/jstests/concurrency/fsm_workloads/create_index_background_unique.js +++ b/jstests/concurrency/fsm_workloads/create_index_background_unique.js @@ -6,8 +6,6 @@ * Creates multiple unique background indexes in parallel. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections - var $config = (function() { var data = { @@ -82,12 +80,6 @@ var $config = (function() { } } - function teardown(db, collName, cluster) { - // Drop all collections from this workload. - const pattern = new RegExp('^' + this.prefix + '[0-9]*$'); - dropCollections(db, pattern); - } - return { threadCount: 10, iterations: 11, @@ -96,6 +88,5 @@ var $config = (function() { startState: 'buildIndex', transitions: transitions, setup: setup, - teardown: teardown, }; })(); diff --git a/jstests/concurrency/fsm_workloads/distinct.js b/jstests/concurrency/fsm_workloads/distinct.js index c2f519551ce..9e58499b9b9 100644 --- a/jstests/concurrency/fsm_workloads/distinct.js +++ b/jstests/concurrency/fsm_workloads/distinct.js @@ -7,7 +7,6 @@ * The indexed field contains unique values. * Each thread operates on a separate collection. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections var $config = (function() { @@ -37,18 +36,12 @@ var $config = (function() { var transitions = {init: {distinct: 1}, distinct: {distinct: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '_\\d+$'); - dropCollections(db, pattern); - } - return { data: data, threadCount: 10, iterations: 20, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/invalidated_cursors.js b/jstests/concurrency/fsm_workloads/invalidated_cursors.js index 60ea75bb4bc..1cb63530d58 100644 --- a/jstests/concurrency/fsm_workloads/invalidated_cursors.js +++ b/jstests/concurrency/fsm_workloads/invalidated_cursors.js @@ -268,10 +268,6 @@ var $config = (function() { }); } - function teardown(unusedDB, unusedCollName, cluster) { - unusedDB.getSiblingDB(this.uniqueDBName).dropDatabase(); - } - return { threadCount: 10, iterations: 200, @@ -280,6 +276,5 @@ var $config = (function() { transitions: transitions, data: data, setup: setup, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/kill_multicollection_aggregation.js b/jstests/concurrency/fsm_workloads/kill_multicollection_aggregation.js index 597be28f9ae..d579929e10d 100644 --- a/jstests/concurrency/fsm_workloads/kill_multicollection_aggregation.js +++ b/jstests/concurrency/fsm_workloads/kill_multicollection_aggregation.js @@ -172,9 +172,6 @@ var $config = extendWorkload($config, function($config, $super) { assertAlways.commandWorked(db.adminCommand( {setParameter: 1, internalDocumentSourceCursorBatchSizeBytes: 4 * 1024 * 1024})); }); - - var myDB = db.getSiblingDB(this.uniqueDBName); - myDB.dropDatabase(); }; return $config; diff --git a/jstests/concurrency/fsm_workloads/map_reduce_drop.js b/jstests/concurrency/fsm_workloads/map_reduce_drop.js index 48398b4aae2..2ea1ffd5572 100644 --- a/jstests/concurrency/fsm_workloads/map_reduce_drop.js +++ b/jstests/concurrency/fsm_workloads/map_reduce_drop.js @@ -12,15 +12,8 @@ * This workload serves as a regression test for SERVER-6757, SERVER-15087, * and SERVER-15842. */ - var $config = (function() { - // Use a unique database name for this workload because we'll be dropping - // the db periodically. (Using the default database would cause other - // workloads to fail when running multiple workloads in parallel or in - // composed mode.) - var uniqueDBName = 'map_reduce_drop'; - var data = { mapper: function mapper() { emit(this.key, 1); @@ -36,29 +29,29 @@ var $config = (function() { var states = (function() { function dropColl(db, collName) { - var mapReduceDB = db.getSiblingDB(db.getName() + uniqueDBName); + var mapReduceDb = db.getSiblingDB(this.mapReduceDBName); // We don't check the return value of drop() because the collection // might not exist due to a drop() in another thread. - mapReduceDB[collName].drop(); + mapReduceDb[collName].drop(); } function dropDB(db, collName) { - var mapReduceDB = db.getSiblingDB(db.getName() + uniqueDBName); + var mapReduceDb = db.getSiblingDB(this.mapReduceDBName); - var res = mapReduceDB.dropDatabase(); + var res = mapReduceDb.dropDatabase(); assertAlways.commandWorked(res); } function mapReduce(db, collName) { - var mapReduceDB = db.getSiblingDB(db.getName() + uniqueDBName); + var mapReduceDb = db.getSiblingDB(this.mapReduceDBName); // Try to ensure that some documents have been inserted before running // the mapReduce command. Although it's possible for the documents to // be dropped by another thread, some mapReduce commands should end up // running on non-empty collections by virtue of the number of // iterations and threads in this workload. - var bulk = mapReduceDB[collName].initializeUnorderedBulkOp(); + var bulk = mapReduceDb[collName].initializeUnorderedBulkOp(); for (var i = 0; i < this.numDocs; ++i) { bulk.insert({key: Random.randInt(10000)}); } @@ -73,7 +66,7 @@ var $config = (function() { }; try { - mapReduceDB[collName].mapReduce(this.mapper, this.reducer, options); + mapReduceDb[collName].mapReduce(this.mapper, this.reducer, options); } catch (e) { // Ignore all mapReduce exceptions. This workload is only concerned // with verifying server availability. @@ -90,24 +83,18 @@ var $config = (function() { mapReduce: {mapReduce: 0.7, dropDB: 0.05, dropColl: 0.25} }; - function teardown(db, collName, cluster) { - var mapReduceDB = db.getSiblingDB(db.getName() + uniqueDBName); - - // Ensure that the database that was created solely for this workload - // has been dropped, in case it hasn't already been dropped by a - // worker thread. - var res = mapReduceDB.dropDatabase(); - assertAlways.commandWorked(res); + function setup(db, collName, cluster) { + this.mapReduceDBName = db.getName() + 'map_reduce_drop'; } return { threadCount: 5, iterations: 10, data: data, + setup: setup, states: states, startState: 'mapReduce', transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/map_reduce_merge.js b/jstests/concurrency/fsm_workloads/map_reduce_merge.js index f12e7f24144..6359318ab05 100644 --- a/jstests/concurrency/fsm_workloads/map_reduce_merge.js +++ b/jstests/concurrency/fsm_workloads/map_reduce_merge.js @@ -48,12 +48,5 @@ var $config = extendWorkload($config, function($config, $super) { assertAlways.commandWorked(outDB.createCollection(collName)); }; - $config.teardown = function teardown(db, collName, cluster) { - var outDB = db.getSiblingDB(db.getName() + uniqueDBName); - var res = outDB.dropDatabase(); - assertAlways.commandWorked(res); - assertAlways.eq(db.getName() + uniqueDBName, res.dropped); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/map_reduce_merge_nonatomic.js b/jstests/concurrency/fsm_workloads/map_reduce_merge_nonatomic.js index 9522854d566..8078c8b65d9 100644 --- a/jstests/concurrency/fsm_workloads/map_reduce_merge_nonatomic.js +++ b/jstests/concurrency/fsm_workloads/map_reduce_merge_nonatomic.js @@ -15,7 +15,6 @@ */ load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload load('jstests/concurrency/fsm_workloads/map_reduce_inline.js'); // for $config -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropDatabases var $config = extendWorkload($config, function($config, $super) { @@ -50,10 +49,5 @@ var $config = extendWorkload($config, function($config, $super) { assertAlways.commandWorked(res); }; - $config.teardown = function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + db.getName() + prefix + '\\d+$'); - dropDatabases(db, pattern); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/map_reduce_reduce.js b/jstests/concurrency/fsm_workloads/map_reduce_reduce.js index 3acd8d3b64c..f5a18bdb522 100644 --- a/jstests/concurrency/fsm_workloads/map_reduce_reduce.js +++ b/jstests/concurrency/fsm_workloads/map_reduce_reduce.js @@ -13,7 +13,6 @@ */ load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload load('jstests/concurrency/fsm_workloads/map_reduce_inline.js'); // for $config -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections var $config = extendWorkload($config, function($config, $super) { @@ -43,10 +42,5 @@ var $config = extendWorkload($config, function($config, $super) { assertAlways.commandWorked(res); }; - $config.teardown = function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + prefix + '\\d+$'); - dropCollections(db, pattern); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/map_reduce_reduce_nonatomic.js b/jstests/concurrency/fsm_workloads/map_reduce_reduce_nonatomic.js index 6ffdf20f85d..0afcf7bdb9b 100644 --- a/jstests/concurrency/fsm_workloads/map_reduce_reduce_nonatomic.js +++ b/jstests/concurrency/fsm_workloads/map_reduce_reduce_nonatomic.js @@ -47,9 +47,5 @@ var $config = extendWorkload($config, function($config, $super) { assertAlways.commandWorked(db.createCollection(uniqueCollectionName)); }; - $config.teardown = function teardown(db, collName, cluster) { - assertAlways(db[uniqueCollectionName].drop()); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/map_reduce_replace.js b/jstests/concurrency/fsm_workloads/map_reduce_replace.js index 3db3685a7ad..252808a498b 100644 --- a/jstests/concurrency/fsm_workloads/map_reduce_replace.js +++ b/jstests/concurrency/fsm_workloads/map_reduce_replace.js @@ -13,7 +13,6 @@ */ load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload load('jstests/concurrency/fsm_workloads/map_reduce_inline.js'); // for $config -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections var $config = extendWorkload($config, function($config, $super) { @@ -48,10 +47,5 @@ var $config = extendWorkload($config, function($config, $super) { assertAlways.commandWorked(res); }; - $config.teardown = function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + prefix + '\\d+$'); - dropCollections(db, pattern); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/map_reduce_replace_nonexistent.js b/jstests/concurrency/fsm_workloads/map_reduce_replace_nonexistent.js index cb802da7a90..f6556e2744d 100644 --- a/jstests/concurrency/fsm_workloads/map_reduce_replace_nonexistent.js +++ b/jstests/concurrency/fsm_workloads/map_reduce_replace_nonexistent.js @@ -12,7 +12,6 @@ */ load('jstests/concurrency/fsm_libs/extend_workload.js'); // for extendWorkload load('jstests/concurrency/fsm_workloads/map_reduce_inline.js'); // for $config -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections var $config = extendWorkload($config, function($config, $super) { @@ -41,10 +40,5 @@ var $config = extendWorkload($config, function($config, $super) { assertAlways(db[outCollName].drop()); }; - $config.teardown = function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + prefix + '\\d+$'); - dropCollections(db, pattern); - }; - return $config; }); diff --git a/jstests/concurrency/fsm_workloads/plan_cache_drop_database.js b/jstests/concurrency/fsm_workloads/plan_cache_drop_database.js index 51ec0c3780b..a744c6b888a 100644 --- a/jstests/concurrency/fsm_workloads/plan_cache_drop_database.js +++ b/jstests/concurrency/fsm_workloads/plan_cache_drop_database.js @@ -8,16 +8,8 @@ * events triggers the concurrent destruction of a Collection object and * the updating of said object's PlanCache (SERVER-17117). */ - var $config = (function() { - var data = { - // Use the workload name as the database name because the workload name - // is assumed to be unique and we'll be dropping the database as part - // of our workload. - dbName: 'plan_cache_drop_database' - }; - function populateData(db, collName) { var coll = db[collName]; @@ -38,7 +30,7 @@ var $config = (function() { var states = (function() { function count(db, collName) { - var coll = db.getSiblingDB(this.dbName)[collName]; + var coll = db.getSiblingDB(this.planCacheDBName)[collName]; var cmdObj = {query: {a: 1, b: {$gt: Random.rand()}}, limit: Random.randInt(10)}; @@ -48,7 +40,8 @@ var $config = (function() { } function dropDB(db, collName) { - var myDB = db.getSiblingDB(this.dbName); + var myDB = db.getSiblingDB(this.planCacheDBName); + // We can't assert anything about the dropDatabase return value // because the database might not exist due to other threads // calling dropDB. @@ -65,27 +58,19 @@ var $config = (function() { var transitions = {count: {count: 0.95, dropDB: 0.05}, dropDB: {count: 0.95, dropDB: 0.05}}; function setup(db, collName, cluster) { - var myDB = db.getSiblingDB(this.dbName); - populateData(myDB, collName); - } + this.planCacheDBName = db.getName() + 'plan_cache_drop_database'; - function teardown(db, collName, cluster) { - var myDB = db.getSiblingDB(this.dbName); - - // We can't assert anything about the dropDatabase return value because - // the database won't exist if the dropDB state is executed last. - myDB.dropDatabase(); + var myDB = db.getSiblingDB(this.planCacheDBName); + populateData(myDB, collName); } return { threadCount: 10, iterations: 50, - data: data, states: states, startState: 'count', transitions: transitions, setup: setup, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/reindex.js b/jstests/concurrency/fsm_workloads/reindex.js index 523e29789e0..4cb3bd4f4fa 100644 --- a/jstests/concurrency/fsm_workloads/reindex.js +++ b/jstests/concurrency/fsm_workloads/reindex.js @@ -7,8 +7,6 @@ * against the collection. Operates on a separate collection for each thread. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections - var $config = (function() { var data = { nIndexes: 3 + 1, // 3 created and 1 for _id @@ -99,17 +97,5 @@ var $config = (function() { query: {reIndex: 0.5, query: 0.5} }; - var teardown = function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '_\\d+$'); - dropCollections(db, pattern); - }; - - return { - threadCount: 15, - iterations: 10, - states: states, - transitions: transitions, - teardown: teardown, - data: data - }; + return {threadCount: 15, iterations: 10, states: states, transitions: transitions, data: data}; })(); diff --git a/jstests/concurrency/fsm_workloads/rename_capped_collection_chain.js b/jstests/concurrency/fsm_workloads/rename_capped_collection_chain.js index cc3de60d3c0..01a8db830b9 100644 --- a/jstests/concurrency/fsm_workloads/rename_capped_collection_chain.js +++ b/jstests/concurrency/fsm_workloads/rename_capped_collection_chain.js @@ -7,7 +7,6 @@ * command against it. The previous "to" namespace is used as the next "from" * namespace. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections var $config = (function() { @@ -47,18 +46,12 @@ var $config = (function() { var transitions = {init: {rename: 1}, rename: {rename: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '\\d+_\\d+$'); - dropCollections(db, pattern); - } - return { threadCount: 10, iterations: 20, data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/rename_capped_collection_dbname_chain.js b/jstests/concurrency/fsm_workloads/rename_capped_collection_dbname_chain.js index 93d52f8c251..2af9abeb61f 100644 --- a/jstests/concurrency/fsm_workloads/rename_capped_collection_dbname_chain.js +++ b/jstests/concurrency/fsm_workloads/rename_capped_collection_dbname_chain.js @@ -7,7 +7,6 @@ * command against it, specifying a different database name in the namespace. * The previous "to" namespace is used as the next "from" namespace. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropDatabases var $config = (function() { @@ -60,11 +59,6 @@ var $config = (function() { var transitions = {init: {rename: 1}, rename: {rename: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + db.getName() + this.prefix + '\\d+_\\d+$'); - dropDatabases(db, pattern); - } - return { threadCount: 10, // We only run a few iterations to reduce the amount of data cumulatively @@ -76,7 +70,6 @@ var $config = (function() { data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/rename_capped_collection_dbname_droptarget.js b/jstests/concurrency/fsm_workloads/rename_capped_collection_dbname_droptarget.js index b1c4c156c3f..0a8d022acca 100644 --- a/jstests/concurrency/fsm_workloads/rename_capped_collection_dbname_droptarget.js +++ b/jstests/concurrency/fsm_workloads/rename_capped_collection_dbname_droptarget.js @@ -7,7 +7,6 @@ * command against it, specifying a different database name in the namespace. * Inserts documents into the "to" namespace and specifies dropTarget=true. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropDatabases var $config = (function() { @@ -83,18 +82,12 @@ var $config = (function() { var transitions = {init: {rename: 1}, rename: {rename: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + db.getName() + this.prefix + '\\d+_\\d+$'); - dropDatabases(db, pattern); - } - return { threadCount: 10, iterations: 20, data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/rename_capped_collection_droptarget.js b/jstests/concurrency/fsm_workloads/rename_capped_collection_droptarget.js index 1d6dfd6faf4..5178bfe6a79 100644 --- a/jstests/concurrency/fsm_workloads/rename_capped_collection_droptarget.js +++ b/jstests/concurrency/fsm_workloads/rename_capped_collection_droptarget.js @@ -7,7 +7,6 @@ * command against it. Inserts documents into the "to" namespace and specifies * dropTarget=true. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections var $config = (function() { @@ -75,18 +74,12 @@ var $config = (function() { var transitions = {init: {rename: 1}, rename: {rename: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '\\d+_\\d+$'); - dropCollections(db, pattern); - } - return { threadCount: 10, iterations: 20, data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/rename_collection_chain.js b/jstests/concurrency/fsm_workloads/rename_collection_chain.js index eb6792f6df8..cd6a541c170 100644 --- a/jstests/concurrency/fsm_workloads/rename_collection_chain.js +++ b/jstests/concurrency/fsm_workloads/rename_collection_chain.js @@ -7,7 +7,6 @@ * command against it. The previous "to" namespace is used as the next "from" * namespace. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections var $config = (function() { @@ -42,18 +41,12 @@ var $config = (function() { var transitions = {init: {rename: 1}, rename: {rename: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '\\d+_\\d+$'); - dropCollections(db, pattern); - } - return { threadCount: 10, iterations: 20, data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/rename_collection_dbname_chain.js b/jstests/concurrency/fsm_workloads/rename_collection_dbname_chain.js index bf76caa5014..84c880c0fd3 100644 --- a/jstests/concurrency/fsm_workloads/rename_collection_dbname_chain.js +++ b/jstests/concurrency/fsm_workloads/rename_collection_dbname_chain.js @@ -7,7 +7,6 @@ * command against it, specifying a different database name in the namespace. * The previous "to" namespace is used as the next "from" namespace. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropDatabases var $config = (function() { @@ -55,11 +54,6 @@ var $config = (function() { var transitions = {init: {rename: 1}, rename: {rename: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + db.getName() + this.prefix + '\\d+_\\d+$'); - dropDatabases(db, pattern); - } - return { threadCount: 10, // We only run a few iterations to reduce the amount of data cumulatively @@ -71,7 +65,6 @@ var $config = (function() { data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/rename_collection_dbname_droptarget.js b/jstests/concurrency/fsm_workloads/rename_collection_dbname_droptarget.js index 7f23ecbc2d7..fdc2bcf8766 100644 --- a/jstests/concurrency/fsm_workloads/rename_collection_dbname_droptarget.js +++ b/jstests/concurrency/fsm_workloads/rename_collection_dbname_droptarget.js @@ -7,7 +7,6 @@ * command against it, specifying a different database name in the namespace. * Inserts documents into the "to" namespace and specifies dropTarget=true. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropDatabases var $config = (function() { @@ -78,18 +77,12 @@ var $config = (function() { var transitions = {init: {rename: 1}, rename: {rename: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + db.getName() + this.prefix + '\\d+_\\d+$'); - dropDatabases(db, pattern); - } - return { threadCount: 10, iterations: 20, data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/rename_collection_droptarget.js b/jstests/concurrency/fsm_workloads/rename_collection_droptarget.js index 592654ed3b1..550b3e0ae22 100644 --- a/jstests/concurrency/fsm_workloads/rename_collection_droptarget.js +++ b/jstests/concurrency/fsm_workloads/rename_collection_droptarget.js @@ -7,7 +7,6 @@ * command against it. Inserts documents into the "to" namespace and specifies * dropTarget=true. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections var $config = (function() { @@ -70,18 +69,12 @@ var $config = (function() { var transitions = {init: {rename: 1}, rename: {rename: 1}}; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '\\d+_\\d+$'); - dropCollections(db, pattern); - } - return { threadCount: 10, iterations: 20, data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/secondary_reads.js b/jstests/concurrency/fsm_workloads/secondary_reads.js index 79ffde8ec4b..7e7a88430ec 100644 --- a/jstests/concurrency/fsm_workloads/secondary_reads.js +++ b/jstests/concurrency/fsm_workloads/secondary_reads.js @@ -17,6 +17,7 @@ * should not be any 'hole' because oplogs are applied sequentially in batches. * */ + var $config = (function() { // Use the workload name as the collection name. @@ -109,10 +110,6 @@ var $config = (function() { return {skip: false}; }; - var teardown = function teardown(db, collName, cluster) { - db[this.collName].drop(); - }; - return { threadCount: 50, iterations: 40, @@ -129,6 +126,5 @@ var $config = (function() { transitions: transitions, setup: setup, skip: skip, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/snapshot_read_catalog_operations.js b/jstests/concurrency/fsm_workloads/snapshot_read_catalog_operations.js index d959a57394f..aab2ad17742 100644 --- a/jstests/concurrency/fsm_workloads/snapshot_read_catalog_operations.js +++ b/jstests/concurrency/fsm_workloads/snapshot_read_catalog_operations.js @@ -131,9 +131,6 @@ var $config = (function() { } } - function teardown(db, collName, cluster) { - } - const skip = function skip(cluster) { // TODO(SERVER-34570) remove isSharded() check once transactions are supported in sharded // environments. @@ -150,7 +147,6 @@ var $config = (function() { states: states, transitions: transitions, setup: setup, - teardown: teardown, data: data, skip: skip }; diff --git a/jstests/concurrency/fsm_workloads/view_catalog.js b/jstests/concurrency/fsm_workloads/view_catalog.js index ebb44905bf4..0ba3ee3a34a 100644 --- a/jstests/concurrency/fsm_workloads/view_catalog.js +++ b/jstests/concurrency/fsm_workloads/view_catalog.js @@ -7,8 +7,6 @@ * built on a shared underlying collection. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections - var $config = (function() { var data = { @@ -74,11 +72,6 @@ var $config = (function() { drop: {create: 1} }; - function teardown(db, collName, cluster) { - var pattern = new RegExp('^' + this.prefix + '_\\d+$'); - dropCollections(db, pattern); - } - // This test performs createCollection concurrently from many threads, and createCollection on a // sharded cluster takes a distributed lock. Since a distributed lock is acquired by repeatedly // attempting to grab the lock every half second for 20 seconds (a max of 40 attempts), it's @@ -94,7 +87,6 @@ var $config = (function() { data: data, states: states, transitions: transitions, - teardown: teardown }; })(); diff --git a/jstests/concurrency/fsm_workloads/view_catalog_cycle_lookup.js b/jstests/concurrency/fsm_workloads/view_catalog_cycle_lookup.js index d612544afa0..6aae4266e7e 100644 --- a/jstests/concurrency/fsm_workloads/view_catalog_cycle_lookup.js +++ b/jstests/concurrency/fsm_workloads/view_catalog_cycle_lookup.js @@ -8,8 +8,6 @@ * where a $lookup or $graphLookup view that forms a cycle is created successfully. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections - var $config = (function() { // Use the workload name as a prefix for the view names, since the workload name is assumed @@ -131,11 +129,6 @@ var $config = (function() { } } - function teardown(db, collName, cluster) { - const pattern = new RegExp('^' + prefix + '[A-z]*$'); - dropCollections(db, pattern); - } - return { threadCount: 20, iterations: 100, @@ -144,6 +137,5 @@ var $config = (function() { startState: 'readFromView', transitions: transitions, setup: setup, - teardown: teardown, }; })(); diff --git a/jstests/concurrency/fsm_workloads/view_catalog_cycle_with_drop.js b/jstests/concurrency/fsm_workloads/view_catalog_cycle_with_drop.js index 9768ec7dee5..247361ef525 100644 --- a/jstests/concurrency/fsm_workloads/view_catalog_cycle_with_drop.js +++ b/jstests/concurrency/fsm_workloads/view_catalog_cycle_with_drop.js @@ -7,8 +7,6 @@ * underlying collection. */ -load('jstests/concurrency/fsm_workload_helpers/drop_utils.js'); // for dropCollections - var $config = (function() { // Use the workload name as a prefix for the view names, since the workload name is assumed @@ -92,11 +90,6 @@ var $config = (function() { } } - function teardown(db, collName, cluster) { - const pattern = new RegExp('^' + prefix + '[A-z]*$'); - dropCollections(db, pattern); - } - // This test performs createCollection concurrently from many threads, and createCollection on a // sharded cluster takes a distributed lock. Since a distributed lock is acquired by repeatedly // attempting to grab the lock every half second for 20 seconds (a max of 40 attempts), it's @@ -114,7 +107,6 @@ var $config = (function() { startState: 'readFromView', transitions: transitions, setup: setup, - teardown: teardown, }; })(); |