summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Russotto <matthew.russotto@mongodb.com>2021-04-07 14:53:12 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-04-08 15:50:30 +0000
commitaa31defcc4e9c0b1f3302e6796f95517bf1a7d91 (patch)
treebf45f0499310ae685467d3fc1199972dc7259011
parent0fbb10db66a5ca4d5c7ce5f2a3fb752d0e533be2 (diff)
downloadmongo-aa31defcc4e9c0b1f3302e6796f95517bf1a7d91.tar.gz
SERVER-55770 Add geo_update_dedup.js to the list of multi-update tests not handled by tenant migration passthrough
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_causally_consistent_jscore_passthrough.yml28
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml28
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_kill_primary_jscore_passthrough.yml28
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_stepdown_jscore_passthrough.yml28
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_terminate_primary_jscore_passthrough.yml28
-rw-r--r--jstests/core/batch_write_collation_estsize.js2
-rw-r--r--jstests/core/bulk_api_ordered.js2
-rw-r--r--jstests/core/bulk_api_unordered.js2
-rw-r--r--jstests/core/fts_querylang.js1
-rw-r--r--jstests/core/geo_update_dedup.js1
-rw-r--r--jstests/core/idhack.js1
-rw-r--r--jstests/core/index_arr2.js2
-rw-r--r--jstests/core/role_management_helpers.js1
-rw-r--r--jstests/core/roles_info.js2
-rw-r--r--jstests/core/server1470.js2
-rw-r--r--jstests/core/update7.js2
-rw-r--r--jstests/core/update_arrayFilters.js6
-rw-r--r--jstests/core/update_arraymatch2.js2
-rw-r--r--jstests/core/update_arraymatch3.js2
-rw-r--r--jstests/core/update_arraymatch5.js1
-rw-r--r--jstests/core/update_hint.js2
-rw-r--r--jstests/core/update_multi3.js2
-rw-r--r--jstests/core/update_multi4.js2
-rw-r--r--jstests/core/update_multi5.js2
-rw-r--r--jstests/core/update_pipeline_shell_helpers.js7
-rw-r--r--jstests/core/update_with_pipeline.js1
-rw-r--r--jstests/core/updatei.js2
-rw-r--r--jstests/core/updatej.js2
-rw-r--r--jstests/core/updatel.js2
-rw-r--r--jstests/core/where_system_js.js1
-rw-r--r--jstests/core/write_result.js1
31 files changed, 45 insertions, 148 deletions
diff --git a/buildscripts/resmokeconfig/suites/tenant_migration_causally_consistent_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/tenant_migration_causally_consistent_jscore_passthrough.yml
index 8f3f409bbbc..cd7febc189d 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_causally_consistent_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_causally_consistent_jscore_passthrough.yml
@@ -65,32 +65,6 @@ selector:
- jstests/core/notablescan_capped.js
# captrunc command is not blocked during tenant migration.
- jstests/core/capped6.js
- # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
- - jstests/core/batch_write_collation_estsize.js
- - jstests/core/bulk_api_ordered.js
- - jstests/core/bulk_api_unordered.js
- - jstests/core/fts_querylang.js
- - jstests/core/idhack.js
- - jstests/core/index_arr2.js
- - jstests/core/role_management_helpers.js
- - jstests/core/roles_info.js
- - jstests/core/server1470.js
- - jstests/core/update_arrayFilters.js
- - jstests/core/update_arraymatch2.js
- - jstests/core/update_arraymatch3.js
- - jstests/core/update_arraymatch5.js
- - jstests/core/update_hint.js
- - jstests/core/update_multi3.js
- - jstests/core/update_multi4.js
- - jstests/core/update_multi5.js
- - jstests/core/update_pipeline_shell_helpers.js
- - jstests/core/update_with_pipeline.js
- - jstests/core/update7.js
- - jstests/core/updatei.js
- - jstests/core/updatej.js
- - jstests/core/updatel.js
- - jstests/core/where_system_js.js
- - jstests/core/write_result.js
#
# Blacklists from causally_consistent_jscore_passthrough.yml
@@ -160,6 +134,8 @@ selector:
- requires_profiling
# emptycapped command is blocked during tenant migration.
- requires_emptycapped
+ # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
+ - requires_multi_updates
##
# The next tag corresponds to the special error thrown by the set_read_preference_secondary.js
# override when it refuses to replace the readPreference of a particular command. Above each tag
diff --git a/buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml
index e48485c5ed7..cb062c735ea 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml
@@ -61,32 +61,6 @@ selector:
- jstests/core/notablescan_capped.js
# captrunc command is not blocked during tenant migration.
- jstests/core/capped6.js
- # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
- - jstests/core/batch_write_collation_estsize.js
- - jstests/core/bulk_api_ordered.js
- - jstests/core/bulk_api_unordered.js
- - jstests/core/fts_querylang.js
- - jstests/core/idhack.js
- - jstests/core/index_arr2.js
- - jstests/core/role_management_helpers.js
- - jstests/core/roles_info.js
- - jstests/core/server1470.js
- - jstests/core/update_arrayFilters.js
- - jstests/core/update_arraymatch2.js
- - jstests/core/update_arraymatch3.js
- - jstests/core/update_arraymatch5.js
- - jstests/core/update_hint.js
- - jstests/core/update_multi3.js
- - jstests/core/update_multi4.js
- - jstests/core/update_multi5.js
- - jstests/core/update_pipeline_shell_helpers.js
- - jstests/core/update_with_pipeline.js
- - jstests/core/update7.js
- - jstests/core/updatei.js
- - jstests/core/updatej.js
- - jstests/core/updatel.js
- - jstests/core/where_system_js.js
- - jstests/core/write_result.js
exclude_with_any_tags:
- assumes_standalone_mongod
@@ -102,6 +76,8 @@ selector:
- requires_profiling
# emptycapped command is blocked during tenant migration.
- requires_emptycapped
+ # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
+ - requires_multi_updates
- tenant_migration_incompatible
executor:
diff --git a/buildscripts/resmokeconfig/suites/tenant_migration_kill_primary_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/tenant_migration_kill_primary_jscore_passthrough.yml
index 82d5295c24f..39e9f112e13 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_kill_primary_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_kill_primary_jscore_passthrough.yml
@@ -64,32 +64,6 @@ selector:
- jstests/core/notablescan_capped.js
# captrunc command is not blocked during tenant migration.
- jstests/core/capped6.js
- # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
- - jstests/core/batch_write_collation_estsize.js
- - jstests/core/bulk_api_ordered.js
- - jstests/core/bulk_api_unordered.js
- - jstests/core/fts_querylang.js
- - jstests/core/idhack.js
- - jstests/core/index_arr2.js
- - jstests/core/role_management_helpers.js
- - jstests/core/roles_info.js
- - jstests/core/server1470.js
- - jstests/core/update_arrayFilters.js
- - jstests/core/update_arraymatch2.js
- - jstests/core/update_arraymatch3.js
- - jstests/core/update_arraymatch5.js
- - jstests/core/update_hint.js
- - jstests/core/update_multi3.js
- - jstests/core/update_multi4.js
- - jstests/core/update_multi5.js
- - jstests/core/update_pipeline_shell_helpers.js
- - jstests/core/update_with_pipeline.js
- - jstests/core/update7.js
- - jstests/core/updatei.js
- - jstests/core/updatej.js
- - jstests/core/updatel.js
- - jstests/core/where_system_js.js
- - jstests/core/write_result.js
#
# From retryable writes jscore stepdown passthrough
@@ -196,6 +170,8 @@ selector:
- requires_profiling
# emptycapped command is blocked during tenant migration.
- requires_emptycapped
+ # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
+ - requires_multi_updates
- tenant_migration_incompatible
- operations_longer_than_stepdown_interval
- requires_non_retryable_writes
diff --git a/buildscripts/resmokeconfig/suites/tenant_migration_stepdown_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/tenant_migration_stepdown_jscore_passthrough.yml
index 38c9c5741fd..2cc25669001 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_stepdown_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_stepdown_jscore_passthrough.yml
@@ -64,32 +64,6 @@ selector:
- jstests/core/notablescan_capped.js
# captrunc command is not blocked during tenant migration.
- jstests/core/capped6.js
- # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
- - jstests/core/batch_write_collation_estsize.js
- - jstests/core/bulk_api_ordered.js
- - jstests/core/bulk_api_unordered.js
- - jstests/core/fts_querylang.js
- - jstests/core/idhack.js
- - jstests/core/index_arr2.js
- - jstests/core/role_management_helpers.js
- - jstests/core/roles_info.js
- - jstests/core/server1470.js
- - jstests/core/update_arrayFilters.js
- - jstests/core/update_arraymatch2.js
- - jstests/core/update_arraymatch3.js
- - jstests/core/update_arraymatch5.js
- - jstests/core/update_hint.js
- - jstests/core/update_multi3.js
- - jstests/core/update_multi4.js
- - jstests/core/update_multi5.js
- - jstests/core/update_pipeline_shell_helpers.js
- - jstests/core/update_with_pipeline.js
- - jstests/core/update7.js
- - jstests/core/updatei.js
- - jstests/core/updatej.js
- - jstests/core/updatel.js
- - jstests/core/where_system_js.js
- - jstests/core/write_result.js
#
# From retryable writes jscore stepdown passthrough
@@ -194,6 +168,8 @@ selector:
- requires_profiling
# emptycapped command is blocked during tenant migration.
- requires_emptycapped
+ # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
+ - requires_multi_updates
- tenant_migration_incompatible
- operations_longer_than_stepdown_interval
- requires_non_retryable_writes
diff --git a/buildscripts/resmokeconfig/suites/tenant_migration_terminate_primary_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/tenant_migration_terminate_primary_jscore_passthrough.yml
index 313981873db..668cb84c2db 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_terminate_primary_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_terminate_primary_jscore_passthrough.yml
@@ -64,32 +64,6 @@ selector:
- jstests/core/notablescan_capped.js
# captrunc command is not blocked during tenant migration.
- jstests/core/capped6.js
- # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
- - jstests/core/batch_write_collation_estsize.js
- - jstests/core/bulk_api_ordered.js
- - jstests/core/bulk_api_unordered.js
- - jstests/core/fts_querylang.js
- - jstests/core/idhack.js
- - jstests/core/index_arr2.js
- - jstests/core/role_management_helpers.js
- - jstests/core/roles_info.js
- - jstests/core/server1470.js
- - jstests/core/update_arrayFilters.js
- - jstests/core/update_arraymatch2.js
- - jstests/core/update_arraymatch3.js
- - jstests/core/update_arraymatch5.js
- - jstests/core/update_hint.js
- - jstests/core/update_multi3.js
- - jstests/core/update_multi4.js
- - jstests/core/update_multi5.js
- - jstests/core/update_pipeline_shell_helpers.js
- - jstests/core/update_with_pipeline.js
- - jstests/core/update7.js
- - jstests/core/updatei.js
- - jstests/core/updatej.js
- - jstests/core/updatel.js
- - jstests/core/where_system_js.js
- - jstests/core/write_result.js
#
# From retryable writes jscore stepdown passthrough
@@ -194,6 +168,8 @@ selector:
- requires_profiling
# emptycapped command is blocked during tenant migration.
- requires_emptycapped
+ # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
+ - requires_multi_updates
- tenant_migration_incompatible
- operations_longer_than_stepdown_interval
- requires_non_retryable_writes
diff --git a/jstests/core/batch_write_collation_estsize.js b/jstests/core/batch_write_collation_estsize.js
index dd8612ef357..13dc8f1efec 100644
--- a/jstests/core/batch_write_collation_estsize.js
+++ b/jstests/core/batch_write_collation_estsize.js
@@ -1,7 +1,7 @@
// Cannot implicitly shard accessed collections because of following errmsg: A single
// update/delete on a sharded collection must contain an exact match on _id or contain the shard
// key.
-// @tags: [assumes_unsharded_collection, requires_non_retryable_writes]
+// @tags: [assumes_unsharded_collection, requires_multi_updates, requires_non_retryable_writes]
// Tests that the update and delete batch write operations account for the size of the collation
// specification in the write operation document.
diff --git a/jstests/core/bulk_api_ordered.js b/jstests/core/bulk_api_ordered.js
index d3a484c2b12..b0b6fb9fc08 100644
--- a/jstests/core/bulk_api_ordered.js
+++ b/jstests/core/bulk_api_ordered.js
@@ -1,7 +1,7 @@
// Cannot implicitly shard accessed collections because of following errmsg: A single
// update/delete on a sharded collection must contain an exact match on _id or contain the shard
// key.
-// @tags: [assumes_unsharded_collection, requires_non_retryable_writes]
+// @tags: [assumes_unsharded_collection, requires_multi_updates, requires_non_retryable_writes]
var collectionName = "bulk_api_ordered";
var coll = db.getCollection(collectionName);
diff --git a/jstests/core/bulk_api_unordered.js b/jstests/core/bulk_api_unordered.js
index 04e002306e5..ed625c04342 100644
--- a/jstests/core/bulk_api_unordered.js
+++ b/jstests/core/bulk_api_unordered.js
@@ -1,7 +1,7 @@
// Cannot implicitly shard accessed collections because of following errmsg: A single
// update/delete on a sharded collection must contain an exact match on _id or contain the shard
// key.
-// @tags: [assumes_unsharded_collection, requires_non_retryable_writes]
+// @tags: [assumes_unsharded_collection, requires_multi_updates, requires_non_retryable_writes]
var collectionName = "bulk_api_unordered";
var coll = db.getCollection(collectionName);
diff --git a/jstests/core/fts_querylang.js b/jstests/core/fts_querylang.js
index 0845efaf781..a4bdc3981b5 100644
--- a/jstests/core/fts_querylang.js
+++ b/jstests/core/fts_querylang.js
@@ -1,5 +1,6 @@
// Test the $text query operator.
// @tags: [
+// requires_multi_updates,
// requires_non_retryable_writes,
// ]
(function() {
diff --git a/jstests/core/geo_update_dedup.js b/jstests/core/geo_update_dedup.js
index 3191fa0df33..10c2ca0dfc7 100644
--- a/jstests/core/geo_update_dedup.js
+++ b/jstests/core/geo_update_dedup.js
@@ -1,6 +1,7 @@
// Cannot implicitly shard accessed collections because single updates are not targeted.
// @tags: [
// assumes_unsharded_collection,
+// requires_multi_updates,
// requires_non_retryable_writes,
// ]
diff --git a/jstests/core/idhack.js b/jstests/core/idhack.js
index 9e2448335b8..3a022a1c823 100644
--- a/jstests/core/idhack.js
+++ b/jstests/core/idhack.js
@@ -1,5 +1,6 @@
// @tags: [
// assumes_balancer_off,
+// requires_multi_updates,
// requires_non_retryable_writes,
// ]
(function() {
diff --git a/jstests/core/index_arr2.js b/jstests/core/index_arr2.js
index faca8be6337..99950880422 100644
--- a/jstests/core/index_arr2.js
+++ b/jstests/core/index_arr2.js
@@ -1,4 +1,4 @@
-// @tags: [assumes_balancer_off, requires_non_retryable_writes]
+// @tags: [assumes_balancer_off, requires_multi_updates, requires_non_retryable_writes]
NUM = 20;
M = 5;
diff --git a/jstests/core/role_management_helpers.js b/jstests/core/role_management_helpers.js
index f59ff425d52..312c07618ae 100644
--- a/jstests/core/role_management_helpers.js
+++ b/jstests/core/role_management_helpers.js
@@ -2,6 +2,7 @@
// assumes_superuser_permissions,
// assumes_write_concern_unchanged,
// requires_auth,
+// requires_multi_updates,
// requires_non_retryable_commands,
// ]
diff --git a/jstests/core/roles_info.js b/jstests/core/roles_info.js
index e0275fb2bf5..5667322d593 100644
--- a/jstests/core/roles_info.js
+++ b/jstests/core/roles_info.js
@@ -1,5 +1,5 @@
// Test invocations of {rolesInfo: ...} command
-// @tags: [requires_non_retryable_commands,requires_fcv_47]
+// @tags: [requires_multi_updates, requires_non_retryable_commands,requires_fcv_47]
(function() {
'use strict';
diff --git a/jstests/core/server1470.js b/jstests/core/server1470.js
index 41f7bfea7e0..c3c7d47aaeb 100644
--- a/jstests/core/server1470.js
+++ b/jstests/core/server1470.js
@@ -1,7 +1,7 @@
// Cannot implicitly shard accessed collections because of following errmsg: A single
// update/delete on a sharded collection must contain an exact match on _id or contain the shard
// key.
-// @tags: [assumes_unsharded_collection, requires_non_retryable_writes]
+// @tags: [assumes_unsharded_collection, requires_multi_updates, requires_non_retryable_writes]
t = db.server1470;
t.drop();
diff --git a/jstests/core/update7.js b/jstests/core/update7.js
index 30dd79951dc..4f1fce0aa39 100644
--- a/jstests/core/update7.js
+++ b/jstests/core/update7.js
@@ -1,7 +1,7 @@
// Cannot implicitly shard accessed collections because of following errmsg: A single
// update/delete on a sharded collection must contain an exact match on _id or contain the shard
// key.
-// @tags: [assumes_unsharded_collection, requires_non_retryable_writes]
+// @tags: [assumes_unsharded_collection, requires_multi_updates, requires_non_retryable_writes]
t = db.update7;
t.drop();
diff --git a/jstests/core/update_arrayFilters.js b/jstests/core/update_arrayFilters.js
index a7e517a3fe4..c3d610826d4 100644
--- a/jstests/core/update_arrayFilters.js
+++ b/jstests/core/update_arrayFilters.js
@@ -1,6 +1,10 @@
// Cannot implicitly shard accessed collections because of collection existing when none
// expected.
-// @tags: [assumes_no_implicit_collection_creation_after_drop, requires_non_retryable_writes]
+// @tags: [
+// assumes_no_implicit_collection_creation_after_drop,
+// requires_multi_updates,
+// requires_non_retryable_writes,
+// ]
// Tests for the arrayFilters option to update and findAndModify.
(function() {
diff --git a/jstests/core/update_arraymatch2.js b/jstests/core/update_arraymatch2.js
index 7f51bb0f32a..7610de7c962 100644
--- a/jstests/core/update_arraymatch2.js
+++ b/jstests/core/update_arraymatch2.js
@@ -1,4 +1,4 @@
-// @tags: [requires_non_retryable_writes]
+// @tags: [requires_multi_updates, requires_non_retryable_writes]
t = db.update_arraymatch2;
t.drop();
diff --git a/jstests/core/update_arraymatch3.js b/jstests/core/update_arraymatch3.js
index 3a232bdfc54..36f7ab22430 100644
--- a/jstests/core/update_arraymatch3.js
+++ b/jstests/core/update_arraymatch3.js
@@ -1,4 +1,4 @@
-// @tags: [requires_non_retryable_writes]
+// @tags: [requires_multi_updates, requires_non_retryable_writes]
t = db.update_arraymatch3;
t.drop();
diff --git a/jstests/core/update_arraymatch5.js b/jstests/core/update_arraymatch5.js
index 4bddcb1ea26..1b4c967b38b 100644
--- a/jstests/core/update_arraymatch5.js
+++ b/jstests/core/update_arraymatch5.js
@@ -1,5 +1,6 @@
// @tags: [
// requires_fastcount,
+// requires_multi_updates,
// requires_non_retryable_writes,
// ]
diff --git a/jstests/core/update_hint.js b/jstests/core/update_hint.js
index 287f63ef148..464b5f80fd9 100644
--- a/jstests/core/update_hint.js
+++ b/jstests/core/update_hint.js
@@ -4,7 +4,7 @@
* - The hint option should support both the name of the index, and the object spec of the
* index.
*
- * @tags: [assumes_unsharded_collection, requires_non_retryable_writes]
+ * @tags: [assumes_unsharded_collection, requires_multi_updates, requires_non_retryable_writes]
*/
(function() {
diff --git a/jstests/core/update_multi3.js b/jstests/core/update_multi3.js
index c8a1fa3b11d..4c6769bc65a 100644
--- a/jstests/core/update_multi3.js
+++ b/jstests/core/update_multi3.js
@@ -1,4 +1,4 @@
-// @tags: [requires_non_retryable_writes]
+// @tags: [requires_multi_updates, requires_non_retryable_writes]
t = db.update_multi3;
diff --git a/jstests/core/update_multi4.js b/jstests/core/update_multi4.js
index 38fd75358f0..cfe11616efc 100644
--- a/jstests/core/update_multi4.js
+++ b/jstests/core/update_multi4.js
@@ -1,4 +1,4 @@
-// @tags: [requires_non_retryable_writes]
+// @tags: [requires_multi_updates, requires_non_retryable_writes]
t = db.update_mulit4;
t.drop();
diff --git a/jstests/core/update_multi5.js b/jstests/core/update_multi5.js
index c8823ef1904..683b4426874 100644
--- a/jstests/core/update_multi5.js
+++ b/jstests/core/update_multi5.js
@@ -1,4 +1,4 @@
-// @tags: [assumes_balancer_off, requires_non_retryable_writes]
+// @tags: [assumes_balancer_off, requires_multi_updates, requires_non_retryable_writes]
// tests that $addToSet works in a multi-update.
(function() {
diff --git a/jstests/core/update_pipeline_shell_helpers.js b/jstests/core/update_pipeline_shell_helpers.js
index 7a4d2419ad7..2af1d48d72b 100644
--- a/jstests/core/update_pipeline_shell_helpers.js
+++ b/jstests/core/update_pipeline_shell_helpers.js
@@ -4,7 +4,12 @@
* This test is tagged as 'requires_find_command' to exclude it from the legacy passthroughs, since
* pipeline syntax cannot be used for OP_UPDATE requests.
*
- * @tags: [requires_find_command, requires_non_retryable_writes, assumes_write_concern_unchanged]
+ * @tags: [
+ * requires_find_command,
+ * requires_multi_updates,
+ * requires_non_retryable_writes,
+ * assumes_write_concern_unchanged,
+ * ]
*/
(function() {
"use strict";
diff --git a/jstests/core/update_with_pipeline.js b/jstests/core/update_with_pipeline.js
index 84cffe92f6c..24810720053 100644
--- a/jstests/core/update_with_pipeline.js
+++ b/jstests/core/update_with_pipeline.js
@@ -6,6 +6,7 @@
*
* @tags: [
* requires_find_command,
+ * requires_multi_updates,
* requires_non_retryable_writes,
* ]
*/
diff --git a/jstests/core/updatei.js b/jstests/core/updatei.js
index dea5b13cd17..599c9538a80 100644
--- a/jstests/core/updatei.js
+++ b/jstests/core/updatei.js
@@ -1,7 +1,7 @@
// Cannot implicitly shard accessed collections because of following errmsg: A single
// update/delete on a sharded collection must contain an exact match on _id or contain the shard
// key.
-// @tags: [assumes_unsharded_collection, requires_non_retryable_writes]
+// @tags: [assumes_unsharded_collection, requires_multi_updates, requires_non_retryable_writes]
// Test new (optional) update syntax
// SERVER-4176
diff --git a/jstests/core/updatej.js b/jstests/core/updatej.js
index b96233f448d..bab2a32f45f 100644
--- a/jstests/core/updatej.js
+++ b/jstests/core/updatej.js
@@ -3,7 +3,7 @@
// This test uses a multi-update, which is not retryable. The behavior it is testing is also not
// true of sharded clusters, since one shard may continue applying updates while the other
// encounters an error.
-// @tags: [requires_non_retryable_writes, assumes_unsharded_collection]
+// @tags: [requires_multi_updates, requires_non_retryable_writes, assumes_unsharded_collection]
t = db.jstests_updatej;
t.drop();
diff --git a/jstests/core/updatel.js b/jstests/core/updatel.js
index 9990aa6c6f2..a663f306722 100644
--- a/jstests/core/updatel.js
+++ b/jstests/core/updatel.js
@@ -1,4 +1,4 @@
-// @tags: [requires_non_retryable_writes, requires_fastcount]
+// @tags: [requires_multi_updates, requires_non_retryable_writes, requires_fastcount]
// The positional operator allows an update modifier field path to contain a sentinel ('$') path
// part that is replaced with the numeric position of an array element matched by the update's query
diff --git a/jstests/core/where_system_js.js b/jstests/core/where_system_js.js
index fb9cffc87ff..8672106e5f4 100644
--- a/jstests/core/where_system_js.js
+++ b/jstests/core/where_system_js.js
@@ -3,6 +3,7 @@
// # This test expects a function stored in the system.js collection to be available to $where,
// # which may not be the case if it is implicitly sharded in a passthrough.
// assumes_unsharded_collection,
+// requires_multi_updates,
// requires_non_retryable_writes,
// requires_scripting,
// ]
diff --git a/jstests/core/write_result.js b/jstests/core/write_result.js
index 044f399e429..2204871b9c3 100644
--- a/jstests/core/write_result.js
+++ b/jstests/core/write_result.js
@@ -5,6 +5,7 @@
// @tags: [
// assumes_unsharded_collection,
// assumes_write_concern_unchanged,
+// requires_multi_updates,
// requires_non_retryable_writes,
// requires_fastcount,
// ]