summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordi Serra Torrens <jordi.serra-torrens@mongodb.com>2021-04-09 12:11:18 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-04-12 14:54:58 +0000
commit51f12959638ce75792baf063bc8150448b9e9a35 (patch)
tree805a2f72519062c8a74833c973fa4409acbc30c1
parente3de9b75a49cdaa67a20a26bb15b0dffbf0e19a9 (diff)
downloadmongo-51f12959638ce75792baf063bc8150448b9e9a35.tar.gz
SERVER-55976: Orphans check at the end of jstest can fail in presence of concurrent drop collection
-rw-r--r--jstests/libs/check_orphans_are_deleted_helpers.js26
1 files changed, 11 insertions, 15 deletions
diff --git a/jstests/libs/check_orphans_are_deleted_helpers.js b/jstests/libs/check_orphans_are_deleted_helpers.js
index 71a24a1a375..ce1597ee83a 100644
--- a/jstests/libs/check_orphans_are_deleted_helpers.js
+++ b/jstests/libs/check_orphans_are_deleted_helpers.js
@@ -1,7 +1,5 @@
'use strict';
-load("jstests/sharding/libs/find_chunks_util.js");
-
var CheckOrphansAreDeletedHelpers = (function() {
function runCheck(mongosConn, shardConn, shardId) {
const configDB = shardConn.getDB('config');
@@ -69,19 +67,17 @@ var CheckOrphansAreDeletedHelpers = (function() {
});
const coll = shardConn.getDB(dbName)[collName];
- findChunksUtil.findChunksByNs(mongosConn.getDB('config'), ns, {shard: {$ne: shardId}})
- .forEach(chunkDoc => {
- // Use $min/$max so this will also work with hashed and compound shard keys.
- const orphans = coll.find({})
- .hint(collDoc.key)
- .min(chunkDoc.min)
- .max(chunkDoc.max)
- .toArray();
- assert.eq(0,
- orphans.length,
- 'found orphans @ ' + shardId + ' within chunk: ' + tojson(chunkDoc) +
- ', orphans: ' + tojson(orphans));
- });
+ const chunksQuery = (collDoc.timestamp) ? {uuid: collDoc.uuid, shard: {$ne: shardId}}
+ : {ns: ns, shard: {$ne: shardId}};
+ mongosConn.getDB('config').chunks.find(chunksQuery).forEach(chunkDoc => {
+ // Use $min/$max so this will also work with hashed and compound shard keys.
+ const orphans =
+ coll.find({}).hint(collDoc.key).min(chunkDoc.min).max(chunkDoc.max).toArray();
+ assert.eq(0,
+ orphans.length,
+ 'found orphans @ ' + shardId + ' within chunk: ' + tojson(chunkDoc) +
+ ', orphans: ' + tojson(orphans));
+ });
});
}