summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_causally_consistent_jscore_passthrough.yml79
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml78
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_kill_primary_jscore_passthrough.yml78
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_multi_stmt_txn_jscore_passthrough.yml102
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_stepdown_jscore_passthrough.yml76
-rw-r--r--buildscripts/resmokeconfig/suites/tenant_migration_terminate_primary_jscore_passthrough.yml76
-rw-r--r--jstests/core/SERVER-23626.js8
-rw-r--r--jstests/core/apply_ops1.js3
-rw-r--r--jstests/core/apply_ops2.js2
-rw-r--r--jstests/core/apply_ops_dups.js2
-rw-r--r--jstests/core/apply_ops_index_collation.js2
-rw-r--r--jstests/core/apply_ops_invalid_index_spec.js2
-rw-r--r--jstests/core/apply_ops_missing_field.js2
-rw-r--r--jstests/core/apply_ops_system_dot_views.js2
-rw-r--r--jstests/core/apply_ops_without_ns.js2
-rw-r--r--jstests/core/auth1.js3
-rw-r--r--jstests/core/batch_write_command_w0.js3
-rw-r--r--jstests/core/bench_test1.js3
-rw-r--r--jstests/core/benchrun_pipeline_updates.js7
-rw-r--r--jstests/core/bypass_doc_validation.js2
-rw-r--r--jstests/core/collation.js2
-rw-r--r--jstests/core/collmod_without_uuid.js4
-rw-r--r--jstests/core/commands_with_uuid.js2
-rw-r--r--jstests/core/comment_field.js3
-rw-r--r--jstests/core/connection_status.js3
-rw-r--r--jstests/core/crud_api.js3
-rw-r--r--jstests/core/currentop_cursors.js2
-rw-r--r--jstests/core/exhaust.js7
-rw-r--r--jstests/core/failcommand_failpoint.js3
-rw-r--r--jstests/core/find_and_modify_metrics.js11
-rw-r--r--jstests/core/index_large_and_small_dates.js5
-rw-r--r--jstests/core/index_stats.js3
-rw-r--r--jstests/core/json_schema/misc_validation.js2
-rw-r--r--jstests/core/list_collections1.js2
-rw-r--r--jstests/core/list_collections_filter.js2
-rw-r--r--jstests/core/list_databases.js5
-rw-r--r--jstests/core/notablescan.js4
-rw-r--r--jstests/core/notablescan_capped.js4
-rw-r--r--jstests/core/operation_latency_histogram.js3
-rw-r--r--jstests/core/profile1.js2
-rw-r--r--jstests/core/profile3.js2
-rw-r--r--jstests/core/profile_hide_index.js3
-rw-r--r--jstests/core/profile_sampling.js3
-rw-r--r--jstests/core/rename_collection_staytemp.js2
-rw-r--r--jstests/core/set_param1.js4
-rw-r--r--jstests/core/top.js13
-rw-r--r--jstests/core/txns/commands_banning_txnnumber_outside_transactions.js3
-rw-r--r--jstests/core/txns/commands_not_allowed_in_txn.js3
-rw-r--r--jstests/core/txns/prepare_transaction_fails_on_temp_collections.js2
-rw-r--r--jstests/core/txns/statement_ids_accepted.js8
-rw-r--r--jstests/core/update_metrics.js3
-rw-r--r--jstests/core/user_management_helpers.js3
-rw-r--r--jstests/core/views/view_with_invalid_dbname.js2
-rw-r--r--jstests/core/views/views_all_commands.js2
-rw-r--r--jstests/core/views/views_creation.js2
-rw-r--r--jstests/core/views/views_stats.js2
56 files changed, 162 insertions, 499 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 b7ac2d927d0..5ec262c04ea 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_causally_consistent_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_causally_consistent_jscore_passthrough.yml
@@ -13,88 +13,9 @@ selector:
roots:
- jstests/core/**/*.js
exclude_files:
- #
- # Denylists from tenant_migration_jscore_passthrough.yml
- #
-
- jstests/core/txns/**/*.js
# Skip any tests that run with auth explicitly.
- jstests/core/*[aA]uth*.js
- # Commands using UUIDs are not compatible with name-based auth.
- - jstests/core/commands_with_uuid.js
- # These tests depend on hardcoded database name equality.
- - jstests/core/json_schema/misc_validation.js
- - jstests/core/list_databases.js
- - jstests/core/profile1.js
- - jstests/core/profile3.js
- - jstests/core/views/views_stats.js
- # These tests contain assertions on the number of executed operations and this suite retries
- # operations on TenantMigrationAborted errors.
- - jstests/core/find_and_modify_metrics.js
- - jstests/core/update_metrics.js
- - jstests/core/operation_latency_histogram.js
- - jstests/core/top.js
- - jstests/core/profile_sampling.js
- - jstests/core/profile_hide_index.js
- # The override cannot deep copy very large or small dates.
- - jstests/core/index_large_and_small_dates.js
- # This test expects that the connection (i.e. 'threadName') does not change throughout each test
- # case. That is not always true when there is a background tenant migration.
- - jstests/core/failcommand_failpoint.js
- # The set_param1.js test attempts to compare the response from running the {getParameter: "*"}
- # command multiple times, which may observe the change to the failpoint enabled by the migration
- # hook.
- - jstests/core/set_param1.js
- # This test does not support tojson of command objects so the override cannot deep copy the
- # command objects correctly.
- - jstests/core/SERVER-23626.js
- # These tests write with {w: 0} which doesn't wait for the storage transaction writing the
- # document and the oplog entry to commit so the TenantMigrationConflict will not be caught.
- - jstests/core/batch_write_command_w0.js
- - jstests/core/crud_api.js
- # These tests use benchRun which does not use runCommand.
- - jstests/core/bench_test1.js
- - jstests/core/benchrun_pipeline_updates.js
- # This test uses exhaust which does not use runCommand.
- - jstests/core/exhaust.js
- # These tests use db._authOrThrow which does not use runCommand.
- - jstests/core/auth1.js
- - jstests/core/connection_status.js
- - jstests/core/user_management_helpers.js
- # These tests use legacy read mode which does not use runCommand.
- - jstests/core/comment_field.js
- # This test contains assertions for the hostname that operations run on.
- - jstests/core/currentop_cursors.js
- # Server parameters are stored in-memory only so are not transferred onto the recipient. These
- # tests set the server parameter "notablescan" to force the node to not execute queries that
- # require a collection scan and return an error.
- - jstests/core/notablescan.js
- - jstests/core/notablescan_capped.js
- # These tests run applyOps which is not supported in serverless.
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops2.js
- - jstests/core/apply_ops_dups.js
- - jstests/core/apply_ops_index_collation.js
- - jstests/core/apply_ops_invalid_index_spec.js
- - jstests/core/apply_ops_missing_field.js
- - jstests/core/apply_ops_system_dot_views.js
- - jstests/core/apply_ops_without_ns.js
- - jstests/core/bypass_doc_validation.js
- - jstests/core/collation.js
- - jstests/core/collmod_without_uuid.js
- - jstests/core/txns/commands_banning_txnnumber_outside_transactions.js
- - jstests/core/txns/commands_not_allowed_in_txn.js
- - jstests/core/txns/prepare_transaction_fails_on_temp_collections.js
- - jstests/core/txns/statement_ids_accepted.js
- - jstests/core/list_collections1.js
- - jstests/core/list_collections_filter.js
- - jstests/core/list_collections_no_views.js
- - jstests/core/views/view_with_invalid_dbname.js
- - jstests/core/views/views_creation.js
- - jstests/core/views/invalid_system_views.js
- - jstests/core/views/views_all_commands.js
- - jstests/core/rename_collection_staytemp.js
#
# Denylists from causally_consistent_jscore_passthrough.yml
diff --git a/buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml
index 1a069338521..49a93b9efd8 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml
@@ -16,84 +16,6 @@ selector:
- jstests/core/txns/**/*.js
# Skip any tests that run with auth explicitly.
- jstests/core/*[aA]uth*.js
- # Commands using UUIDs are not compatible with name-based auth.
- - jstests/core/commands_with_uuid.js
- # These tests depend on hardcoded database name equality.
- - jstests/core/json_schema/misc_validation.js
- - jstests/core/list_databases.js
- - jstests/core/profile1.js
- - jstests/core/profile3.js
- - jstests/core/views/views_stats.js
- # These tests contain assertions on the number of executed operations and this suite retries
- # operations on TenantMigrationAborted errors.
- - jstests/core/find_and_modify_metrics.js
- - jstests/core/update_metrics.js
- - jstests/core/operation_latency_histogram.js
- - jstests/core/top.js
- - jstests/core/profile_sampling.js
- - jstests/core/profile_hide_index.js
- - jstests/core/index_stats.js
- # The override cannot deep copy very large or small dates.
- - jstests/core/index_large_and_small_dates.js
- # This test expects that the connection (i.e. 'threadName') does not change throughout each test
- # case. That is not always true when there is a background tenant migration.
- - jstests/core/failcommand_failpoint.js
- # The set_param1.js test attempts to compare the response from running the {getParameter: "*"}
- # command multiple times, which may observe the change to the failpoint enabled by the migration
- # hook.
- - jstests/core/set_param1.js
- # This test does not support tojson of command objects so the override cannot deep copy the
- # command objects correctly.
- - jstests/core/SERVER-23626.js
- # These tests write with {w: 0} which doesn't wait for the storage transaction writing the
- # document and the oplog entry to commit so the TenantMigrationConflict will not be caught.
- - jstests/core/batch_write_command_w0.js
- - jstests/core/crud_api.js
- # These tests use benchRun which does not use runCommand.
- - jstests/core/bench_test1.js
- - jstests/core/benchrun_pipeline_updates.js
- # This test uses exhaust which does not use runCommand.
- - jstests/core/exhaust.js
- # These tests use db._authOrThrow which does not use runCommand.
- - jstests/core/auth1.js
- - jstests/core/connection_status.js
- - jstests/core/user_management_helpers.js
- # These tests use legacy read mode which does not use runCommand.
- - jstests/core/comment_field.js
- # These tests run applyOps which is not supported in serverless.
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops2.js
- - jstests/core/apply_ops_dups.js
- - jstests/core/apply_ops_index_collation.js
- - jstests/core/apply_ops_invalid_index_spec.js
- - jstests/core/apply_ops_missing_field.js
- - jstests/core/apply_ops_system_dot_views.js
- - jstests/core/apply_ops_without_ns.js
- - jstests/core/bypass_doc_validation.js
- - jstests/core/collation.js
- - jstests/core/collmod_without_uuid.js
- - jstests/core/txns/commands_banning_txnnumber_outside_transactions.js
- - jstests/core/txns/commands_not_allowed_in_txn.js
- - jstests/core/txns/prepare_transaction_fails_on_temp_collections.js
- - jstests/core/txns/statement_ids_accepted.js
- - jstests/core/list_collections1.js
- - jstests/core/list_collections_filter.js
- - jstests/core/list_collections_no_views.js
- - jstests/core/views/view_with_invalid_dbname.js
- - jstests/core/views/views_creation.js
- - jstests/core/views/invalid_system_views.js
- - jstests/core/views/views_all_commands.js
- - jstests/core/rename_collection_staytemp.js
- # This test contains assertions for the hostname that operations run on.
- - jstests/core/currentop_cursors.js
- # Server parameters are stored in-memory only so are not transferred onto the recipient. These
- # tests set the server parameter "notablescan" to force the node to not execute queries that
- # require a collection scan and return an error.
- - jstests/core/notablescan.js
- - jstests/core/notablescan_capped.js
- # Causes CappedPositionLost on recipient, which is not recoverable.
- - jstests/core/rename_collection_capped.js
exclude_with_any_tags:
- assumes_standalone_mongod
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 caecd8714ba..36433f7ceca 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_kill_primary_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_kill_primary_jscore_passthrough.yml
@@ -19,86 +19,10 @@ selector:
- jstests/core/txns/**/*.js
# Skip any tests that run with auth explicitly.
- jstests/core/*[aA]uth*.js
- # Commands using UUIDs are not compatible with name-based auth.
- - jstests/core/commands_with_uuid.js
- # These tests depend on hardcoded database name equality.
- - jstests/core/json_schema/misc_validation.js
- - jstests/core/list_databases.js
- - jstests/core/profile1.js
- - jstests/core/profile3.js
- - jstests/core/views/views_stats.js
- # These tests contain assertions on the number of executed operations and this suite retries
- # operations on TenantMigrationAborted errors.
- - jstests/core/find_and_modify_metrics.js
- - jstests/core/update_metrics.js
- - jstests/core/operation_latency_histogram.js
- - jstests/core/top.js
- - jstests/core/profile_sampling.js
- - jstests/core/profile_hide_index.js
- # The override cannot deep copy very large or small dates.
- - jstests/core/index_large_and_small_dates.js
- # This test expects that the connection (i.e. 'threadName') does not change throughout each test
- # case. That is not always true when there is a background tenant migration.
- - jstests/core/failcommand_failpoint.js
- # The set_param1.js test attempts to compare the response from running the {getParameter: "*"}
- # command multiple times, which may observe the change to the failpoint enabled by the migration
- # hook.
- - jstests/core/set_param1.js
- # This test does not support tojson of command objects so the override cannot deep copy the
- # command objects correctly.
- - jstests/core/SERVER-23626.js
- # These tests write with {w: 0} which doesn't wait for the storage transaction writing the
- # document and the oplog entry to commit so the TenantMigrationConflict will not be caught.
- - jstests/core/batch_write_command_w0.js
- - jstests/core/crud_api.js
- # These tests use benchRun which does not use runCommand.
- - jstests/core/bench_test1.js
- - jstests/core/benchrun_pipeline_updates.js
- # This test uses exhaust which does not use runCommand.
- - jstests/core/exhaust.js
- # These tests use db._authOrThrow which does not use runCommand.
- - jstests/core/auth1.js
- - jstests/core/connection_status.js
- - jstests/core/user_management_helpers.js
- # These tests use legacy read mode which does not use runCommand.
- - jstests/core/comment_field.js
- # This test contains assertions for the hostname that operations run on.
- - jstests/core/currentop_cursors.js
- # Server parameters are stored in-memory only so are not transferred onto the recipient. These
- # tests set the server parameter "notablescan" to force the node to not execute queries that
- # require a collection scan and return an error.
- - jstests/core/notablescan.js
- - jstests/core/notablescan_capped.js
- # These tests run applyOps which is not supported in serverless.
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops2.js
- - jstests/core/apply_ops_dups.js
- - jstests/core/apply_ops_index_collation.js
- - jstests/core/apply_ops_invalid_index_spec.js
- - jstests/core/apply_ops_missing_field.js
- - jstests/core/apply_ops_system_dot_views.js
- - jstests/core/apply_ops_without_ns.js
- - jstests/core/bypass_doc_validation.js
- - jstests/core/collation.js
- - jstests/core/collmod_without_uuid.js
- - jstests/core/txns/commands_banning_txnnumber_outside_transactions.js
- - jstests/core/txns/commands_not_allowed_in_txn.js
- - jstests/core/txns/prepare_transaction_fails_on_temp_collections.js
- - jstests/core/txns/statement_ids_accepted.js
- - jstests/core/list_collections1.js
- - jstests/core/list_collections_filter.js
- - jstests/core/list_collections_no_views.js
- - jstests/core/views/view_with_invalid_dbname.js
- - jstests/core/views/views_creation.js
- - jstests/core/views/invalid_system_views.js
- - jstests/core/views/views_all_commands.js
- - jstests/core/rename_collection_staytemp.js
+
# This test runs createIndexes commands without asserting they succeed and depends on a particular
# index to exist.
- jstests/core/index_many2.js
- # Causes CappedPositionLost on recipient, which is not recoverable.
- - jstests/core/rename_collection_capped.js
#
# From retryable writes jscore stepdown passthrough
diff --git a/buildscripts/resmokeconfig/suites/tenant_migration_multi_stmt_txn_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/tenant_migration_multi_stmt_txn_jscore_passthrough.yml
index 5f328625233..0085e86a03d 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_multi_stmt_txn_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_multi_stmt_txn_jscore_passthrough.yml
@@ -25,106 +25,6 @@ selector:
- jstests/core/txns/**/*.js
# Skip any tests that run with auth explicitly.
- jstests/core/*[aA]uth*.js
- # These tests depend on hardcoded database name equality.
- - jstests/core/json_schema/misc_validation.js
- - jstests/core/list_databases.js
- - jstests/core/profile1.js
- - jstests/core/profile3.js
- - jstests/core/views/views_stats.js
- # These tests contain assertions on the number of executed operations and this suite retries
- # operations on TenantMigrationAborted errors.
- - jstests/core/find_and_modify_metrics.js
- - jstests/core/update_metrics.js
- - jstests/core/operation_latency_histogram.js
- - jstests/core/top.js
- - jstests/core/profile_sampling.js
- - jstests/core/profile_hide_index.js
- # The override cannot deep copy very large or small dates.
- - jstests/core/index_large_and_small_dates.js
- # This test expects that the connection (i.e. 'threadName') does not change throughout each test
- # case. That is not always true when there is a background tenant migration.
- - jstests/core/failcommand_failpoint.js
- # The set_param1.js test attempts to compare the response from running the {getParameter: "*"}
- # command multiple times, which may observe the change to the failpoint enabled by the migration
- # hook.
- - jstests/core/set_param1.js
- # This test does not support tojson of command objects so the override cannot deep copy the
- # command objects correctly.
- - jstests/core/SERVER-23626.js
- # These tests write with {w: 0} which doesn't wait for the storage transaction writing the
- # document and the oplog entry to commit so the TenantMigrationConflict will not be caught.
- - jstests/core/batch_write_command_w0.js
- - jstests/core/crud_api.js
- # These tests use benchRun which does not use runCommand.
- - jstests/core/bench_test1.js
- - jstests/core/benchrun_pipeline_updates.js
- # This test uses exhaust which does not use runCommand.
- - jstests/core/exhaust.js
- # These tests use db._authOrThrow which does not use runCommand.
- - jstests/core/auth1.js
- - jstests/core/connection_status.js
- - jstests/core/user_management_helpers.js
- # These tests use legacy read mode which does not use runCommand.
- - jstests/core/comment_field.js
- # This test contains assertions for the hostname that operations run on.
- - jstests/core/currentop_cursors.js
- # Server parameters are stored in-memory only so are not transferred onto the recipient. These
- # tests set the server parameter "notablescan" to force the node to not execute queries that
- # require a collection scan and return an error.
- - jstests/core/notablescan.js
- - jstests/core/notablescan_capped.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/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
- # These tests run applyOps which is not supported in serverless.
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops2.js
- - jstests/core/apply_ops_dups.js
- - jstests/core/apply_ops_index_collation.js
- - jstests/core/apply_ops_invalid_index_spec.js
- - jstests/core/apply_ops_missing_field.js
- - jstests/core/apply_ops_system_dot_views.js
- - jstests/core/apply_ops_without_ns.js
- - jstests/core/bypass_doc_validation.js
- - jstests/core/collation.js
- - jstests/core/collmod_without_uuid.js
- - jstests/core/txns/commands_banning_txnnumber_outside_transactions.js
- - jstests/core/txns/commands_not_allowed_in_txn.js
- - jstests/core/txns/prepare_transaction_fails_on_temp_collections.js
- - jstests/core/txns/statement_ids_accepted.js
- - jstests/core/list_collections1.js
- - jstests/core/list_collections_filter.js
- - jstests/core/list_collections_no_views.js
- - jstests/core/views/view_with_invalid_dbname.js
- - jstests/core/views/views_creation.js
- - jstests/core/views/invalid_system_views.js
- - jstests/core/views/views_all_commands.js
- - jstests/core/rename_collection_staytemp.js
- # Causes CappedPositionLost on recipient, which is not recoverable.
- - jstests/core/rename_collection_capped.js
#
# Excluded from replica_sets_multi_stmt_txn_jscore_passthrough.yml
@@ -350,6 +250,8 @@ selector:
# Full validation can cause ongoing queries to fail. This can affect the tenant migration
# process.
- uses_full_validation
+ # Multi-updates that conflict with tenant migration are not retried by inject_tenant_prefix.js.
+ - requires_multi_update
executor:
archive:
diff --git a/buildscripts/resmokeconfig/suites/tenant_migration_stepdown_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/tenant_migration_stepdown_jscore_passthrough.yml
index 55d659f2ece..fc02fb23677 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_stepdown_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_stepdown_jscore_passthrough.yml
@@ -19,81 +19,7 @@ selector:
- jstests/core/txns/**/*.js
# Skip any tests that run with auth explicitly.
- jstests/core/*[aA]uth*.js
- # Commands using UUIDs are not compatible with name-based auth.
- - jstests/core/commands_with_uuid.js
- # These tests depend on hardcoded database name equality.
- - jstests/core/json_schema/misc_validation.js
- - jstests/core/list_databases.js
- - jstests/core/profile1.js
- - jstests/core/profile3.js
- - jstests/core/views/views_stats.js
- # These tests contain assertions on the number of executed operations and this suite retries
- # operations on TenantMigrationAborted errors.
- - jstests/core/find_and_modify_metrics.js
- - jstests/core/update_metrics.js
- - jstests/core/operation_latency_histogram.js
- - jstests/core/top.js
- - jstests/core/profile_sampling.js
- - jstests/core/profile_hide_index.js
- # The override cannot deep copy very large or small dates.
- - jstests/core/index_large_and_small_dates.js
- # This test expects that the connection (i.e. 'threadName') does not change throughout each test
- # case. That is not always true when there is a background tenant migration.
- - jstests/core/failcommand_failpoint.js
- # The set_param1.js test attempts to compare the response from running the {getParameter: "*"}
- # command multiple times, which may observe the change to the failpoint enabled by the migration
- # hook.
- - jstests/core/set_param1.js
- # This test does not support tojson of command objects so the override cannot deep copy the
- # command objects correctly.
- - jstests/core/SERVER-23626.js
- # These tests write with {w: 0} which doesn't wait for the storage transaction writing the
- # document and the oplog entry to commit so the TenantMigrationConflict will not be caught.
- - jstests/core/batch_write_command_w0.js
- - jstests/core/crud_api.js
- # These tests use benchRun which does not use runCommand.
- - jstests/core/bench_test1.js
- - jstests/core/benchrun_pipeline_updates.js
- # This test uses exhaust which does not use runCommand.
- - jstests/core/exhaust.js
- # These tests use db._authOrThrow which does not use runCommand.
- - jstests/core/auth1.js
- - jstests/core/connection_status.js
- - jstests/core/user_management_helpers.js
- # These tests use legacy read mode which does not use runCommand.
- - jstests/core/comment_field.js
- # This test contains assertions for the hostname that operations run on.
- - jstests/core/currentop_cursors.js
- # Server parameters are stored in-memory only so are not transferred onto the recipient. These
- # tests set the server parameter "notablescan" to force the node to not execute queries that
- # require a collection scan and return an error.
- - jstests/core/notablescan.js
- - jstests/core/notablescan_capped.js
- # These tests run applyOps which is not supported in serverless.
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops2.js
- - jstests/core/apply_ops_dups.js
- - jstests/core/apply_ops_index_collation.js
- - jstests/core/apply_ops_invalid_index_spec.js
- - jstests/core/apply_ops_missing_field.js
- - jstests/core/apply_ops_system_dot_views.js
- - jstests/core/apply_ops_without_ns.js
- - jstests/core/bypass_doc_validation.js
- - jstests/core/collation.js
- - jstests/core/collmod_without_uuid.js
- - jstests/core/txns/commands_banning_txnnumber_outside_transactions.js
- - jstests/core/txns/commands_not_allowed_in_txn.js
- - jstests/core/txns/prepare_transaction_fails_on_temp_collections.js
- - jstests/core/txns/statement_ids_accepted.js
- - jstests/core/list_collections1.js
- - jstests/core/list_collections_filter.js
- - jstests/core/list_collections_no_views.js
- - jstests/core/views/view_with_invalid_dbname.js
- - jstests/core/views/views_creation.js
- - jstests/core/views/invalid_system_views.js
- - jstests/core/views/views_all_commands.js
- - jstests/core/rename_collection_staytemp.js
+
# This test runs createIndexes commands without asserting they succeed and depends on a particular
# index to exist.
- jstests/core/index_many2.js
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 0ee5aec3336..94d46e70994 100644
--- a/buildscripts/resmokeconfig/suites/tenant_migration_terminate_primary_jscore_passthrough.yml
+++ b/buildscripts/resmokeconfig/suites/tenant_migration_terminate_primary_jscore_passthrough.yml
@@ -19,81 +19,7 @@ selector:
- jstests/core/txns/**/*.js
# Skip any tests that run with auth explicitly.
- jstests/core/*[aA]uth*.js
- # Commands using UUIDs are not compatible with name-based auth.
- - jstests/core/commands_with_uuid.js
- # These tests depend on hardcoded database name equality.
- - jstests/core/json_schema/misc_validation.js
- - jstests/core/list_databases.js
- - jstests/core/profile1.js
- - jstests/core/profile3.js
- - jstests/core/views/views_stats.js
- # These tests contain assertions on the number of executed operations and this suite retries
- # operations on TenantMigrationAborted errors.
- - jstests/core/find_and_modify_metrics.js
- - jstests/core/update_metrics.js
- - jstests/core/operation_latency_histogram.js
- - jstests/core/top.js
- - jstests/core/profile_sampling.js
- - jstests/core/profile_hide_index.js
- # The override cannot deep copy very large or small dates.
- - jstests/core/index_large_and_small_dates.js
- # This test expects that the connection (i.e. 'threadName') does not change throughout each test
- # case. That is not always true when there is a background tenant migration.
- - jstests/core/failcommand_failpoint.js
- # The set_param1.js test attempts to compare the response from running the {getParameter: "*"}
- # command multiple times, which may observe the change to the failpoint enabled by the migration
- # hook.
- - jstests/core/set_param1.js
- # This test does not support tojson of command objects so the override cannot deep copy the
- # command objects correctly.
- - jstests/core/SERVER-23626.js
- # These tests write with {w: 0} which doesn't wait for the storage transaction writing the
- # document and the oplog entry to commit so the TenantMigrationConflict will not be caught.
- - jstests/core/batch_write_command_w0.js
- - jstests/core/crud_api.js
- # These tests use benchRun which does not use runCommand.
- - jstests/core/bench_test1.js
- - jstests/core/benchrun_pipeline_updates.js
- # This test uses exhaust which does not use runCommand.
- - jstests/core/exhaust.js
- # These tests use db._authOrThrow which does not use runCommand.
- - jstests/core/auth1.js
- - jstests/core/connection_status.js
- - jstests/core/user_management_helpers.js
- # These tests use legacy read mode which does not use runCommand.
- - jstests/core/comment_field.js
- # This test contains assertions for the hostname that operations run on.
- - jstests/core/currentop_cursors.js
- # Server parameters are stored in-memory only so are not transferred onto the recipient. These
- # tests set the server parameter "notablescan" to force the node to not execute queries that
- # require a collection scan and return an error.
- - jstests/core/notablescan.js
- - jstests/core/notablescan_capped.js
- # These tests run applyOps which is not supported in serverless.
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops1.js
- - jstests/core/apply_ops2.js
- - jstests/core/apply_ops_dups.js
- - jstests/core/apply_ops_index_collation.js
- - jstests/core/apply_ops_invalid_index_spec.js
- - jstests/core/apply_ops_missing_field.js
- - jstests/core/apply_ops_system_dot_views.js
- - jstests/core/apply_ops_without_ns.js
- - jstests/core/bypass_doc_validation.js
- - jstests/core/collation.js
- - jstests/core/collmod_without_uuid.js
- - jstests/core/txns/commands_banning_txnnumber_outside_transactions.js
- - jstests/core/txns/commands_not_allowed_in_txn.js
- - jstests/core/txns/prepare_transaction_fails_on_temp_collections.js
- - jstests/core/txns/statement_ids_accepted.js
- - jstests/core/list_collections1.js
- - jstests/core/list_collections_filter.js
- - jstests/core/list_collections_no_views.js
- - jstests/core/views/view_with_invalid_dbname.js
- - jstests/core/views/views_creation.js
- - jstests/core/views/invalid_system_views.js
- - jstests/core/views/views_all_commands.js
- - jstests/core/rename_collection_staytemp.js
+
# This test runs createIndexes commands without asserting they succeed and depends on a particular
# index to exist.
- jstests/core/index_many2.js
diff --git a/jstests/core/SERVER-23626.js b/jstests/core/SERVER-23626.js
index 31f963bd313..1925cad4c25 100644
--- a/jstests/core/SERVER-23626.js
+++ b/jstests/core/SERVER-23626.js
@@ -1,3 +1,9 @@
+// @tags: [
+// # This test does not support tojson of command objects so the inject_tenant_prefix.js override
+// # cannot deep copy the command objects correctly.
+// tenant_migration_incompatible,
+// ]
+
(function() {
"use strict";
@@ -14,4 +20,4 @@ assert.eq(1, t.mycoll.find({a: {$type: 'javascript'}}).itcount());
t.mycoll.drop();
assert.commandWorked(t.mycoll.insert({_id: 0, a: RegExp.prototype}));
assert.eq(1, t.mycoll.find({a: {$type: 'regex'}}).itcount());
-}()); \ No newline at end of file
+}());
diff --git a/jstests/core/apply_ops1.js b/jstests/core/apply_ops1.js
index 86754d7b9ba..9ed93a96fb8 100644
--- a/jstests/core/apply_ops1.js
+++ b/jstests/core/apply_ops1.js
@@ -7,7 +7,8 @@
* assumes_against_mongod_not_mongos,
* # applyOps uses the oplog that require replication support
* requires_replication,
- * # Uses $v: 2 update oplog entries, only available in 4.7+.
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/apply_ops2.js b/jstests/core/apply_ops2.js
index f4444bfdc16..379c1d0744e 100644
--- a/jstests/core/apply_ops2.js
+++ b/jstests/core/apply_ops2.js
@@ -8,6 +8,8 @@
* assumes_against_mongod_not_mongos,
* # applyOps uses the oplog that require replication support
* requires_replication,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/apply_ops_dups.js b/jstests/core/apply_ops_dups.js
index d63f5c683c1..268482e3251 100644
--- a/jstests/core/apply_ops_dups.js
+++ b/jstests/core/apply_ops_dups.js
@@ -6,6 +6,8 @@
* assumes_against_mongod_not_mongos,
* # applyOps uses the oplog that require replication support
* requires_replication,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/apply_ops_index_collation.js b/jstests/core/apply_ops_index_collation.js
index a969e55bed9..3dda7f147d7 100644
--- a/jstests/core/apply_ops_index_collation.js
+++ b/jstests/core/apply_ops_index_collation.js
@@ -12,6 +12,8 @@
* assumes_against_mongod_not_mongos,
* # applyOps uses the oplog that require replication support
* requires_replication,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/apply_ops_invalid_index_spec.js b/jstests/core/apply_ops_invalid_index_spec.js
index 387e41890ac..f24f0dfe47f 100644
--- a/jstests/core/apply_ops_invalid_index_spec.js
+++ b/jstests/core/apply_ops_invalid_index_spec.js
@@ -12,6 +12,8 @@
* assumes_against_mongod_not_mongos,
* # applyOps uses the oplog which requires replication support.
* requires_replication,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/apply_ops_missing_field.js b/jstests/core/apply_ops_missing_field.js
index b088cbc3308..7d397ef16d8 100644
--- a/jstests/core/apply_ops_missing_field.js
+++ b/jstests/core/apply_ops_missing_field.js
@@ -15,6 +15,8 @@
* assumes_against_mongod_not_mongos,
* # applyOps uses the oplog which requires replication support.
* requires_replication,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/apply_ops_system_dot_views.js b/jstests/core/apply_ops_system_dot_views.js
index 8d0e390d078..1dbbee484ba 100644
--- a/jstests/core/apply_ops_system_dot_views.js
+++ b/jstests/core/apply_ops_system_dot_views.js
@@ -7,6 +7,8 @@
* requires_non_retryable_commands,
* # applyOps uses the oplog that require replication support
* requires_replication,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/apply_ops_without_ns.js b/jstests/core/apply_ops_without_ns.js
index 0454f97645b..1d1395ff001 100644
--- a/jstests/core/apply_ops_without_ns.js
+++ b/jstests/core/apply_ops_without_ns.js
@@ -5,6 +5,8 @@
* assumes_against_mongod_not_mongos,
* # applyOps uses the oplog that require replication support
* requires_replication,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/auth1.js b/jstests/core/auth1.js
index a71f35fb747..44b078eea54 100644
--- a/jstests/core/auth1.js
+++ b/jstests/core/auth1.js
@@ -4,6 +4,9 @@
// creates_and_authenticates_user,
// requires_auth,
// requires_non_retryable_commands,
+// # This test uses db._authOrThrow which does not use runCommand (required by the
+// # inject_tenant_prefix.js override).
+// tenant_migration_incompatible,
// ]
var mydb = db.getSiblingDB('auth1_db');
diff --git a/jstests/core/batch_write_command_w0.js b/jstests/core/batch_write_command_w0.js
index 4869e228919..7d5038120b6 100644
--- a/jstests/core/batch_write_command_w0.js
+++ b/jstests/core/batch_write_command_w0.js
@@ -9,6 +9,9 @@
* assumes_unsharded_collection,
* assumes_write_concern_unchanged,
* requires_non_retryable_writes,
+ * # This test writes with {w: 0} which doesn't wait for the storage transaction writing the
+ * # document and the oplog entry to commit so the TenantMigrationConflict will not be caught.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/bench_test1.js b/jstests/core/bench_test1.js
index 9defe88749e..a6f7eaadf27 100644
--- a/jstests/core/bench_test1.js
+++ b/jstests/core/bench_test1.js
@@ -3,6 +3,9 @@
// @tags: [
// assumes_no_implicit_index_creation,
// uses_multiple_connections,
+// # This test uses benchRun which does not use runCommand (required by the
+// # inject_tenant_prefix.js override).
+// tenant_migration_incompatible,
// ]
(function() {
"use strict";
diff --git a/jstests/core/benchrun_pipeline_updates.js b/jstests/core/benchrun_pipeline_updates.js
index bf14e51e5ad..ef6fe446b6b 100644
--- a/jstests/core/benchrun_pipeline_updates.js
+++ b/jstests/core/benchrun_pipeline_updates.js
@@ -1,7 +1,12 @@
/**
* Tests that benchRun can understand pipeline-style updates and findAndModifys.
*
- * @tags: [uses_multiple_connections]
+ * @tags: [
+ * uses_multiple_connections,
+ * # This test uses exhaust which does not use runCommand (required by the
+ * # inject_tenant_prefix.js override).
+ * tenant_migration_incompatible,
+ * ]
*/
(function() {
"use strict";
diff --git a/jstests/core/bypass_doc_validation.js b/jstests/core/bypass_doc_validation.js
index 9222611a423..d290508835a 100644
--- a/jstests/core/bypass_doc_validation.js
+++ b/jstests/core/bypass_doc_validation.js
@@ -4,6 +4,8 @@
// requires_fastcount,
// requires_non_retryable_commands,
// uses_map_reduce_with_temp_collections,
+// # Tenant migrations don't support applyOps.
+// tenant_migration_incompatible,
// ]
/**
diff --git a/jstests/core/collation.js b/jstests/core/collation.js
index 006dcc751b2..6a7ff93c9c7 100644
--- a/jstests/core/collation.js
+++ b/jstests/core/collation.js
@@ -6,6 +6,8 @@
// requires_capped,
// requires_non_retryable_commands,
// requires_non_retryable_writes,
+// # Tenant migrations don't support applyOps.
+// tenant_migration_incompatible,
// ]
// Integration tests for the collation feature.
diff --git a/jstests/core/collmod_without_uuid.js b/jstests/core/collmod_without_uuid.js
index f0fa59caf2f..68c50046a9a 100644
--- a/jstests/core/collmod_without_uuid.js
+++ b/jstests/core/collmod_without_uuid.js
@@ -6,7 +6,9 @@
* # applyOps is not supported on mongos
* assumes_against_mongod_not_mongos,
* # applyOps uses the oplog that require replication support
- * requires_replication
+ * requires_replication,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/commands_with_uuid.js b/jstests/core/commands_with_uuid.js
index 0d0657a6433..d1a6c772ec0 100644
--- a/jstests/core/commands_with_uuid.js
+++ b/jstests/core/commands_with_uuid.js
@@ -5,6 +5,8 @@
* @tags: [
* incompatible_with_embedded,
* requires_fastcount,
+ * # Commands using UUIDs are not compatible with name-based auth.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/comment_field.js b/jstests/core/comment_field.js
index ab9f3dbc264..b7c226090e4 100644
--- a/jstests/core/comment_field.js
+++ b/jstests/core/comment_field.js
@@ -10,6 +10,9 @@
* requires_profiling,
* uses_parallel_shell,
* no_selinux,
+ * # This test uses legacy read mode which does not use runCommand (required by the
+ * # inject_tenant_prefix.js override).
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/connection_status.js b/jstests/core/connection_status.js
index 560a789dfd9..59115a4c5ca 100644
--- a/jstests/core/connection_status.js
+++ b/jstests/core/connection_status.js
@@ -5,6 +5,9 @@
// no_selinux,
// requires_auth,
// requires_non_retryable_commands,
+// # This test uses db._authOrThrow which does not use runCommand (required by the
+// # inject_tenant_prefix.js override).
+// tenant_migration_incompatible,
// ]
// Tests the connectionStatus command
diff --git a/jstests/core/crud_api.js b/jstests/core/crud_api.js
index e4610d74405..1f4ca21aac5 100644
--- a/jstests/core/crud_api.js
+++ b/jstests/core/crud_api.js
@@ -6,6 +6,9 @@
// assumes_unsharded_collection,
// assumes_write_concern_unchanged,
// requires_fastcount,
+// # This test writes with {w: 0} which doesn't wait for the storage transaction writing the
+// # document and the oplog entry to commit so the TenantMigrationConflict will not be caught.
+// tenant_migration_incompatible,
// ]
(function() {
diff --git a/jstests/core/currentop_cursors.js b/jstests/core/currentop_cursors.js
index fdace3ad3b6..65baff3363f 100644
--- a/jstests/core/currentop_cursors.js
+++ b/jstests/core/currentop_cursors.js
@@ -7,6 +7,8 @@
* assumes_read_preference_unchanged,
* requires_capped,
* no_selinux,
+ * # This test contains assertions for the hostname that operations run on.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/exhaust.js b/jstests/core/exhaust.js
index bc1ce387157..197b99fcaee 100644
--- a/jstests/core/exhaust.js
+++ b/jstests/core/exhaust.js
@@ -1,4 +1,9 @@
-// @tags: [requires_getmore]
+// @tags: [
+// requires_getmore,
+// # This test uses exhaust which does not use runCommand (required by the inject_tenant_prefix.js
+// # override).
+// tenant_migration_incompatible,
+// ]
(function() {
'use strict';
diff --git a/jstests/core/failcommand_failpoint.js b/jstests/core/failcommand_failpoint.js
index eaba7de005a..8520f4600c2 100644
--- a/jstests/core/failcommand_failpoint.js
+++ b/jstests/core/failcommand_failpoint.js
@@ -4,6 +4,9 @@
* assumes_read_concern_unchanged,
* assumes_read_preference_unchanged,
* no_selinux,
+ * # This test expects that the connection (i.e. 'threadName') does not change throughout each
+ * # test case. That is not always true when there is a background tenant migration.
+ * tenant_migration_incompatible,
* ]
*/
(function() {
diff --git a/jstests/core/find_and_modify_metrics.js b/jstests/core/find_and_modify_metrics.js
index a2a8bfbc9d1..37ba521ef73 100644
--- a/jstests/core/find_and_modify_metrics.js
+++ b/jstests/core/find_and_modify_metrics.js
@@ -3,10 +3,13 @@
* counters of the findAndModify command.
*
* @tags: [
- * # The test relies on the precise number of executions of commands.
- * requires_non_retryable_writes,
- * # The test is designed to work with an unsharded collection.
- * assumes_unsharded_collection,
+ * # The test relies on the precise number of executions of commands.
+ * requires_non_retryable_writes,
+ * # The test is designed to work with an unsharded collection.
+ * assumes_unsharded_collection,
+ * # This test contains assertions on the number of executed operations, and tenant migrations
+ * # passthrough suites automatically retry operations on TenantMigrationAborted errors.
+ * tenant_migration_incompatible,
* ]
*/
(function() {
diff --git a/jstests/core/index_large_and_small_dates.js b/jstests/core/index_large_and_small_dates.js
index b64cc83860d..5a89720c1b9 100644
--- a/jstests/core/index_large_and_small_dates.js
+++ b/jstests/core/index_large_and_small_dates.js
@@ -1,3 +1,8 @@
+// @tags: [
+// # The tenant migration override cannot deep copy very large or small dates.
+// tenant_migration_incompatible,
+// ]
+
(function() {
"use strict";
const coll = db.index_dates;
diff --git a/jstests/core/index_stats.js b/jstests/core/index_stats.js
index 70718c6f4d9..43df9a63ed1 100644
--- a/jstests/core/index_stats.js
+++ b/jstests/core/index_stats.js
@@ -9,6 +9,9 @@
// assumes_unsharded_collection,
// does_not_support_stepdowns,
// requires_non_retryable_writes,
+// # Tenant migrations passthrough suites automatically retry operations on TenantMigrationAborted
+// # errors.
+// tenant_migration_incompatible,
// ]
(function() {
diff --git a/jstests/core/json_schema/misc_validation.js b/jstests/core/json_schema/misc_validation.js
index bdb9d55aa9b..58e76fc0d68 100644
--- a/jstests/core/json_schema/misc_validation.js
+++ b/jstests/core/json_schema/misc_validation.js
@@ -17,6 +17,8 @@
* requires_non_retryable_commands,
* requires_non_retryable_writes,
* requires_replication,
+ * # This test depends on hardcoded database name equality.
+ * tenant_migration_incompatible,
* ]
*/
(function() {
diff --git a/jstests/core/list_collections1.js b/jstests/core/list_collections1.js
index 3757d061276..7526573be3f 100644
--- a/jstests/core/list_collections1.js
+++ b/jstests/core/list_collections1.js
@@ -10,6 +10,8 @@
* requires_getmore,
* requires_replication,
* uses_api_parameters,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*
* Note that storage engines used to be allowed to advertise internal collections to the user (in
diff --git a/jstests/core/list_collections_filter.js b/jstests/core/list_collections_filter.js
index 0fc2bab52f8..50c4aa93dfe 100644
--- a/jstests/core/list_collections_filter.js
+++ b/jstests/core/list_collections_filter.js
@@ -5,6 +5,8 @@
* requires_replication,
* # applyOps is not supported on mongos
* assumes_against_mongod_not_mongos,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/list_databases.js b/jstests/core/list_databases.js
index 93e2bf8273d..fad0bec2e54 100644
--- a/jstests/core/list_databases.js
+++ b/jstests/core/list_databases.js
@@ -1,5 +1,10 @@
/**
* Tests for the listDatabases command.
+ *
+ * @tags: [
+ * # This test depends on hardcoded database name equality.
+ * tenant_migration_incompatible,
+ * ]
*/
(function() {
"use strict";
diff --git a/jstests/core/notablescan.js b/jstests/core/notablescan.js
index 5c0ae0150e8..baef5d56ae6 100644
--- a/jstests/core/notablescan.js
+++ b/jstests/core/notablescan.js
@@ -8,6 +8,10 @@
// assumes_read_preference_unchanged,
// assumes_superuser_permissions,
// does_not_support_stepdowns,
+// # Server parameters are stored in-memory only so are not transferred onto the recipient. This
+// # test sets the server parameter "notablescan" to force the node to not execute queries that
+// # require a collection scan and return an error.
+// tenant_migration_incompatible,
// ]
t = db.test_notablescan;
diff --git a/jstests/core/notablescan_capped.js b/jstests/core/notablescan_capped.js
index c4b8fb3474e..6ae04f58bb8 100644
--- a/jstests/core/notablescan_capped.js
+++ b/jstests/core/notablescan_capped.js
@@ -9,6 +9,10 @@
// assumes_superuser_permissions,
// does_not_support_stepdowns,
// requires_capped,
+// # Server parameters are stored in-memory only so are not transferred onto the recipient. This
+// # test sets the server parameter "notablescan" to force the node to not execute queries that
+// # require a collection scan and return an error.
+// tenant_migration_incompatible,
// ]
t = db.test_notablescan_capped;
diff --git a/jstests/core/operation_latency_histogram.js b/jstests/core/operation_latency_histogram.js
index 54291da9391..c87d5bfe20b 100644
--- a/jstests/core/operation_latency_histogram.js
+++ b/jstests/core/operation_latency_histogram.js
@@ -9,6 +9,9 @@
// assumes_read_preference_unchanged,
// incompatible_with_embedded,
// requires_collstats,
+// # Tenant migrations passthrough suites automatically retry operations on TenantMigrationAborted
+// # errors.
+// tenant_migration_incompatible,
// ]
//
diff --git a/jstests/core/profile1.js b/jstests/core/profile1.js
index f22763a0a17..92ac715284c 100644
--- a/jstests/core/profile1.js
+++ b/jstests/core/profile1.js
@@ -7,6 +7,8 @@
// requires_collstats,
// requires_non_retryable_commands,
// requires_profiling,
+// # This test depends on hardcoded database name equality.
+// tenant_migration_incompatible,
// ]
(function() {
diff --git a/jstests/core/profile3.js b/jstests/core/profile3.js
index 42614828ac9..ed449963a0f 100644
--- a/jstests/core/profile3.js
+++ b/jstests/core/profile3.js
@@ -3,6 +3,8 @@
// creates_and_authenticates_user,
// no_selinux,
// requires_profiling,
+// # This test depends on hardcoded database name equality.
+// tenant_migration_incompatible,
// ]
// special db so that it can be run in parallel tests
var stddb = db;
diff --git a/jstests/core/profile_hide_index.js b/jstests/core/profile_hide_index.js
index ba0b4a9f70d..5d8b8043db6 100644
--- a/jstests/core/profile_hide_index.js
+++ b/jstests/core/profile_hide_index.js
@@ -8,6 +8,9 @@
* requires_profiling,
* uses_parallel_shell,
* no_selinux,
+ * # Tenant migrations passthrough suites automatically retry operations on TenantMigrationAborted
+ * # errors.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/profile_sampling.js b/jstests/core/profile_sampling.js
index 42542ab2d64..28ffa378a0b 100644
--- a/jstests/core/profile_sampling.js
+++ b/jstests/core/profile_sampling.js
@@ -3,6 +3,9 @@
// does_not_support_stepdowns,
// requires_fastcount,
// requires_profiling,
+// # Tenant migrations passthrough suites automatically retry operations on TenantMigrationAborted
+// # errors.
+// tenant_migration_incompatible,
// ]
(function() {
"use strict";
diff --git a/jstests/core/rename_collection_staytemp.js b/jstests/core/rename_collection_staytemp.js
index 0fdb6afbafd..594169d65e1 100644
--- a/jstests/core/rename_collection_staytemp.js
+++ b/jstests/core/rename_collection_staytemp.js
@@ -5,6 +5,8 @@
* # applyOps is not supported on mongos
* assumes_unsharded_collection,
* assumes_against_mongod_not_mongos,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/set_param1.js b/jstests/core/set_param1.js
index 3e4b85180a1..2ef7821b6ae 100644
--- a/jstests/core/set_param1.js
+++ b/jstests/core/set_param1.js
@@ -1,6 +1,10 @@
// @tags: [
// assumes_superuser_permissions,
// does_not_support_stepdowns,
+// # This test attempts to compare the response from running the {getParameter: "*"}
+// # command multiple times, which may observe the change to the failpoint enabled by the
+// # migration hook.
+// tenant_migration_incompatible,
// ]
// Tests for accessing logLevel server parameter using getParameter/setParameter commands
diff --git a/jstests/core/top.js b/jstests/core/top.js
index 7219192516f..8ac9eac4cd1 100644
--- a/jstests/core/top.js
+++ b/jstests/core/top.js
@@ -6,11 +6,14 @@
* routed to the primary.
*
* @tags: [
- * assumes_read_preference_unchanged,
- * requires_fastcount,
- *
- * # top command is not available on embedded
- * incompatible_with_embedded]
+ * assumes_read_preference_unchanged,
+ * requires_fastcount,
+ * # top command is not available on embedded
+ * incompatible_with_embedded,
+ * # This test contains assertions on the number of executed operations, and tenant migrations
+ * # passthrough suites automatically retry operations on TenantMigrationAborted errors.
+ * tenant_migration_incompatible,
+ * ]
*/
(function() {
diff --git a/jstests/core/txns/commands_banning_txnnumber_outside_transactions.js b/jstests/core/txns/commands_banning_txnnumber_outside_transactions.js
index c33cc6df475..38acc6206eb 100644
--- a/jstests/core/txns/commands_banning_txnnumber_outside_transactions.js
+++ b/jstests/core/txns/commands_banning_txnnumber_outside_transactions.js
@@ -1,7 +1,10 @@
// Test that commands other than retryable writes may not use txnNumber outside transactions.
// @tags: [
// uses_map_reduce_with_temp_collections,
+// # Tenant migrations don't support applyOps.
+// tenant_migration_incompatible,
// ]
+
(function() {
"use strict";
diff --git a/jstests/core/txns/commands_not_allowed_in_txn.js b/jstests/core/txns/commands_not_allowed_in_txn.js
index 0231162e284..01486c5065d 100644
--- a/jstests/core/txns/commands_not_allowed_in_txn.js
+++ b/jstests/core/txns/commands_not_allowed_in_txn.js
@@ -2,7 +2,10 @@
// @tags: [
// uses_snapshot_read_concern,
// uses_transactions,
+// # Tenant migrations don't support applyOps.
+// tenant_migration_incompatible,
// ]
+
(function() {
"use strict";
diff --git a/jstests/core/txns/prepare_transaction_fails_on_temp_collections.js b/jstests/core/txns/prepare_transaction_fails_on_temp_collections.js
index c35f37e064c..98aaeeaef2d 100644
--- a/jstests/core/txns/prepare_transaction_fails_on_temp_collections.js
+++ b/jstests/core/txns/prepare_transaction_fails_on_temp_collections.js
@@ -9,6 +9,8 @@
* uses_prepare_transaction,
* # applyOps is not supported on mongos
* assumes_against_mongod_not_mongos,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
diff --git a/jstests/core/txns/statement_ids_accepted.js b/jstests/core/txns/statement_ids_accepted.js
index b2c13356df0..67f7abede08 100644
--- a/jstests/core/txns/statement_ids_accepted.js
+++ b/jstests/core/txns/statement_ids_accepted.js
@@ -1,6 +1,12 @@
// Makes sure all commands which are supposed to take statement ids do. This should test all
// commands that are allowed in transactions.
-// @tags: [uses_transactions, uses_prepare_transaction]
+// @tags: [
+// uses_transactions,
+// uses_prepare_transaction,
+// # Tenant migrations don't support applyOps.
+// tenant_migration_incompatible
+// ]
+
(function() {
"use strict";
diff --git a/jstests/core/update_metrics.js b/jstests/core/update_metrics.js
index ab4155ce41c..8bf93e5009d 100644
--- a/jstests/core/update_metrics.js
+++ b/jstests/core/update_metrics.js
@@ -7,6 +7,9 @@
* assumes_unsharded_collection,
* # The test relies on the precise number of executions of commands.
* requires_non_retryable_writes,
+ * # This test contains assertions on the number of executed operations, and tenant migrations
+ * # passthrough suites automatically retry operations on TenantMigrationAborted errors.
+ * tenant_migration_incompatible,
* ]
*/
(function() {
diff --git a/jstests/core/user_management_helpers.js b/jstests/core/user_management_helpers.js
index 2af28f0b963..028595058d8 100644
--- a/jstests/core/user_management_helpers.js
+++ b/jstests/core/user_management_helpers.js
@@ -5,6 +5,9 @@
// no_selinux,
// requires_auth,
// requires_non_retryable_commands,
+// # This test uses db._authOrThrow which does not use runCommand (required by the
+// # inject_tenant_prefix.js override).
+// tenant_migration_incompatible,
// ]
(function() {
diff --git a/jstests/core/views/view_with_invalid_dbname.js b/jstests/core/views/view_with_invalid_dbname.js
index c7b69e7539c..8c80d4102c9 100644
--- a/jstests/core/views/view_with_invalid_dbname.js
+++ b/jstests/core/views/view_with_invalid_dbname.js
@@ -10,6 +10,8 @@
* assumes_against_mongod_not_mongos,
* # applyOps is not retryable.
* requires_non_retryable_commands,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
(function() {
diff --git a/jstests/core/views/views_all_commands.js b/jstests/core/views/views_all_commands.js
index 699adbefe26..fa7f0fcc30e 100644
--- a/jstests/core/views/views_all_commands.js
+++ b/jstests/core/views/views_all_commands.js
@@ -8,6 +8,8 @@
// requires_non_retryable_commands,
// requires_non_retryable_writes,
// uses_map_reduce_with_temp_collections,
+// # Tenant migrations don't support applyOps.
+// tenant_migration_incompatible,
// ]
/*
diff --git a/jstests/core/views/views_creation.js b/jstests/core/views/views_creation.js
index 838285a0072..9528199996a 100644
--- a/jstests/core/views/views_creation.js
+++ b/jstests/core/views/views_creation.js
@@ -9,6 +9,8 @@
* assumes_superuser_permissions,
* # applyOps is not retryable.
* requires_non_retryable_commands,
+ * # Tenant migrations don't support applyOps.
+ * tenant_migration_incompatible,
* ]
*/
(function() {
diff --git a/jstests/core/views/views_stats.js b/jstests/core/views/views_stats.js
index 90413112640..fe788697088 100644
--- a/jstests/core/views/views_stats.js
+++ b/jstests/core/views/views_stats.js
@@ -9,6 +9,8 @@
// assumes_unsharded_collection,
// # top command is not available on embedded
// incompatible_with_embedded,
+// # This test depends on hardcoded database name equality.
+// tenant_migration_incompatible,
// ]
(function() {