From e9011a1da5f3aa8f4a006a3a99372bd044c73324 Mon Sep 17 00:00:00 2001 From: Benety Goh Date: Thu, 21 May 2020 22:18:56 -0400 Subject: SERVER-48271 Concurrency suites creating and dropping indexes should expect the NoMatchingDocument error code (cherry picked from commit 99a412444c28051f3839ad07c6a938f6ef8e3a64) --- .../fsm_workloads/invalidated_cursors.js | 28 +++++++++++++--------- .../concurrency/fsm_workloads/kill_rooted_or.js | 28 ++++++++++++++-------- .../fsm_workloads/plan_cache_drop_database.js | 12 ++++++---- .../secondary_reads_with_catalog_changes.js | 13 ++++++---- 4 files changed, 52 insertions(+), 29 deletions(-) diff --git a/jstests/concurrency/fsm_workloads/invalidated_cursors.js b/jstests/concurrency/fsm_workloads/invalidated_cursors.js index 0676037f619..6636c8d566c 100644 --- a/jstests/concurrency/fsm_workloads/invalidated_cursors.js +++ b/jstests/concurrency/fsm_workloads/invalidated_cursors.js @@ -49,14 +49,18 @@ var $config = (function() { this.indexSpecs.forEach(indexSpec => { let res = db[collName].createIndex(indexSpec); - assertWorkedOrFailedHandleTxnErrors( - res, - [ - ErrorCodes.DatabaseDropPending, - ErrorCodes.IndexBuildAborted, - ErrorCodes.IndexBuildAlreadyInProgress - ], - [ErrorCodes.DatabaseDropPending, ErrorCodes.IndexBuildAborted]); + assertWorkedOrFailedHandleTxnErrors(res, + [ + ErrorCodes.DatabaseDropPending, + ErrorCodes.IndexBuildAborted, + ErrorCodes.IndexBuildAlreadyInProgress, + ErrorCodes.NoMatchingDocument, + ], + [ + ErrorCodes.DatabaseDropPending, + ErrorCodes.IndexBuildAborted, + ErrorCodes.NoMatchingDocument, + ]); }); }, @@ -247,9 +251,11 @@ var $config = (function() { myDB[targetColl].dropIndex(indexSpec); // Re-create the index that was dropped. - assertAlways.commandWorkedOrFailedWithCode( - myDB[targetColl].createIndex(indexSpec), - [ErrorCodes.IndexBuildAborted, ErrorCodes.DatabaseDropPending]); + assertAlways.commandWorkedOrFailedWithCode(myDB[targetColl].createIndex(indexSpec), [ + ErrorCodes.DatabaseDropPending, + ErrorCodes.IndexBuildAborted, + ErrorCodes.NoMatchingDocument, + ]); } }; diff --git a/jstests/concurrency/fsm_workloads/kill_rooted_or.js b/jstests/concurrency/fsm_workloads/kill_rooted_or.js index 75e7d5984e7..32bb961d462 100644 --- a/jstests/concurrency/fsm_workloads/kill_rooted_or.js +++ b/jstests/concurrency/fsm_workloads/kill_rooted_or.js @@ -61,14 +61,18 @@ var $config = (function() { // Recreate the index that was dropped. (See populateIndexes() for why we ignore the // CannotImplicitlyCreateCollection error.) let res = db[this.collName].createIndex(indexSpec); - assertWorkedOrFailedHandleTxnErrors( - res, - [ - ErrorCodes.CannotImplicitlyCreateCollection, - ErrorCodes.IndexBuildAborted, - ErrorCodes.IndexBuildAlreadyInProgress - ], - [ErrorCodes.CannotImplicitlyCreateCollection, ErrorCodes.IndexBuildAborted]); + assertWorkedOrFailedHandleTxnErrors(res, + [ + ErrorCodes.CannotImplicitlyCreateCollection, + ErrorCodes.IndexBuildAborted, + ErrorCodes.IndexBuildAlreadyInProgress, + ErrorCodes.NoMatchingDocument, + ], + [ + ErrorCodes.CannotImplicitlyCreateCollection, + ErrorCodes.IndexBuildAborted, + ErrorCodes.NoMatchingDocument, + ]); } }; @@ -89,9 +93,13 @@ var $config = (function() { assertWorkedOrFailedHandleTxnErrors(coll.createIndex(indexSpec), [ ErrorCodes.CannotImplicitlyCreateCollection, - ErrorCodes.IndexBuildAlreadyInProgress + ErrorCodes.IndexBuildAlreadyInProgress, + ErrorCodes.NoMatchingDocument, ], - ErrorCodes.CannotImplicitlyCreateCollection); + [ + ErrorCodes.CannotImplicitlyCreateCollection, + ErrorCodes.NoMatchingDocument, + ]); }); } diff --git a/jstests/concurrency/fsm_workloads/plan_cache_drop_database.js b/jstests/concurrency/fsm_workloads/plan_cache_drop_database.js index 574d20228e1..acca1470b3f 100644 --- a/jstests/concurrency/fsm_workloads/plan_cache_drop_database.js +++ b/jstests/concurrency/fsm_workloads/plan_cache_drop_database.js @@ -23,10 +23,14 @@ var $config = (function() { // Create two indexes to force plan caching: The {a: 1} index is // cached by the query planner because we query on a single value // of 'a' and a range of 'b' values. - assertAlways.commandWorkedOrFailedWithCode(coll.ensureIndex({a: 1}), - [ErrorCodes.IndexBuildAborted]); - assertAlways.commandWorkedOrFailedWithCode(coll.ensureIndex({b: 1}), - [ErrorCodes.IndexBuildAborted]); + assertAlways.commandWorkedOrFailedWithCode(coll.createIndex({a: 1}), [ + ErrorCodes.IndexBuildAborted, + ErrorCodes.NoMatchingDocument, + ]); + assertAlways.commandWorkedOrFailedWithCode(coll.createIndex({b: 1}), [ + ErrorCodes.IndexBuildAborted, + ErrorCodes.NoMatchingDocument, + ]); } catch (ex) { assert.eq(true, ex instanceof BulkWriteError, tojson(ex)); assert.writeErrorWithCode(ex, ErrorCodes.DatabaseDropPending, tojson(ex)); diff --git a/jstests/concurrency/fsm_workloads/secondary_reads_with_catalog_changes.js b/jstests/concurrency/fsm_workloads/secondary_reads_with_catalog_changes.js index ed0dc35f23c..0fad22296a3 100644 --- a/jstests/concurrency/fsm_workloads/secondary_reads_with_catalog_changes.js +++ b/jstests/concurrency/fsm_workloads/secondary_reads_with_catalog_changes.js @@ -32,11 +32,16 @@ var $config = extendWorkload($config, function($config, $super) { const res = db[this.collName].createIndex( {x: 1}, {unique: true, background: Random.rand() < 0.5}); if (TestData.runInsideTransaction) { - assertWhenOwnColl.commandWorkedOrFailedWithCode( - res, [ErrorCodes.IndexBuildAborted, ErrorCodes.IndexBuildAlreadyInProgress]); + assertWhenOwnColl.commandWorkedOrFailedWithCode(res, [ + ErrorCodes.IndexBuildAborted, + ErrorCodes.IndexBuildAlreadyInProgress, + ErrorCodes.NoMatchingDocument, + ]); } else { - assertWhenOwnColl.commandWorkedOrFailedWithCode(res, - [ErrorCodes.IndexBuildAborted]); + assertWhenOwnColl.commandWorkedOrFailedWithCode(res, [ + ErrorCodes.IndexBuildAborted, + ErrorCodes.NoMatchingDocument, + ]); } } }; -- cgit v1.2.1