From eee02283872da4cfb30e362b09472559d53c87d0 Mon Sep 17 00:00:00 2001 From: Jason Zhang Date: Wed, 17 May 2023 20:05:32 +0000 Subject: SERVER-76476 Include all core tests in the sharded_collection_single_writes_without_shard_key_jscore_passthrough --- ...writes_without_shard_key_jscore_passthrough.yml | 267 ++++++++++++++++++++- 1 file changed, 262 insertions(+), 5 deletions(-) diff --git a/buildscripts/resmokeconfig/suites/sharded_collections_single_writes_without_shard_key_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/sharded_collections_single_writes_without_shard_key_jscore_passthrough.yml index 7e0eb0d7568..23716995bc1 100644 --- a/buildscripts/resmokeconfig/suites/sharded_collections_single_writes_without_shard_key_jscore_passthrough.yml +++ b/buildscripts/resmokeconfig/suites/sharded_collections_single_writes_without_shard_key_jscore_passthrough.yml @@ -2,38 +2,295 @@ test_kind: js_test selector: roots: - - jstests/core/write/**/*.js + - jstests/core/**/*.js exclude_files: # The following tests fail because a certain command or functionality is not supported by mongos. # This command or functionality is placed in a comment next to the failing test. + - jstests/core/**/apitest_db.js # serverStatus output doesn't have storageEngine. + - jstests/core/**/awaitdata_getmore_cmd.js # capped collections. + - jstests/core/**/bypass_doc_validation.js # sharded $out output not permitted + - jstests/core/**/check_shard_index.js # checkShardingIndex. - jstests/core/**/collection_truncate.js # emptycapped. + - jstests/core/**/compact_keeps_indexes.js # compact. + - jstests/core/**/currentop.js # uses fsync. + - jstests/core/**/dbhash.js # dbhash. + - jstests/core/**/dbhash2.js # dbhash. + - jstests/core/**/fsync.js # uses fsync. + - jstests/core/**/geo_s2cursorlimitskip.js # profiling. + - jstests/core/**/geo_update_btree2.js # notablescan. + - jstests/core/**/index9.js # "local" database. + - jstests/core/**/queryoptimizera.js # "local" database. + - jstests/core/**/stages*.js # stageDebug. + - jstests/core/**/startup_log.js # "local" database. + - jstests/core/**/tailable_cursor_invalidation.js # capped collections. + - jstests/core/**/tailable_getmore_batch_size.js # capped collections. + - jstests/core/**/tailable_skip_limit.js # capped collections. + - jstests/core/**/top.js # top. + - jstests/core/**/collection_truncate.js # emptycapped. + - jstests/core/**/index_many.js # renameCollection. + - jstests/core/**/fts_index2.js # renameCollection. + - jstests/core/**/list_indexes_invalidation.js # renameCollection. + - jstests/core/**/long_index_rename.js # renameCollection. + # The following tests fail because mongos behaves differently from mongod when testing certain + # functionality. The differences are in a comment next to the failing test. + - jstests/core/**/explain_missing_database.js # Behavior with no db different on mongos, SERVER-18047. + - jstests/core/**/geo_2d_explain.js # executionSuccess in different spot in explain(). + - jstests/core/**/geo_s2explain.js # inputStage in different spot in explain(). + - jstests/core/**/geo_s2sparse.js # keysPerIndex in different spot in validate(). + - jstests/core/**/operation_latency_histogram.js # Stats are counted differently on mongos, SERVER-24880. + + # The following tests fail because they count indexes. These counts do not take into account the + # additional hashed shard key indexes that are automatically added by this passthrough. + - jstests/core/**/apitest_dbcollection.js + - jstests/core/**/bad_index_plugin.js + - jstests/core/**/create_indexes.js + - jstests/core/**/list_indexes_non_existent_ns.js + - jstests/core/**/mr_preserve_indexes.js + + # The following tests fail because they expect no databases to be created. However a DB is created + # automatically when we shard a collection. + - jstests/core/**/dbcase.js + - jstests/core/**/dbcase2.js + - jstests/core/**/no_db_created.js + - jstests/core/**/killop_drop_collection.js # Uses fsyncLock. + # These tests fail because sharded clusters do not clean up correctly after failed index builds. + # See SERVER-33207 as an example. + - jstests/core/**/geo_borders.js + + # TODO: Remove after fixing SERVER-29449. executionStats.nReturned is incorrect for sharded + # queries with a limit or for distinct commands. + - jstests/core/**/distinct_index1.js + - jstests/core/**/explain1.js + - jstests/core/**/explain4.js + - jstests/core/**/sortk.js + + # TODO: Remove after fixing SERVER-32563. The implementation of explain for the count command is + # incorrect on sharded collections. + - jstests/core/**/explain_count.js + - jstests/core/**/explain_server_params.js + + # TODO SERVER-32311: These tests use plan stage helpers which can't handle sharded explain output. + - jstests/core/**/expr_index_use.js + - jstests/core/**/index_multikey.js + - jstests/core/**/optimized_match_explain.js + - jstests/core/**/sort_array.js + # These tests create secondary unique: true indexes without the shard key prefix. - jstests/core/**/batch_write_command_update.js - jstests/core/**/batch_write_command_w0.js - jstests/core/**/bulk_api_unordered.js - jstests/core/**/bulk_api_ordered.js + - jstests/core/**/compound_index_max_fields.js + # Test assertions expect a certain document is deleted whereas updateOnes, deleteOnes, and # findAndModify without shard key can pick and modify any matching document. - jstests/core/**/crud_api.js - # TODO SERVER-76907: Include hint stage if the original query provides one. - - jstests/core/**/update_hint.js - - jstests/core/**/delete_hint.js - - jstests/core/**/find_and_modify_hint.js + # Aggregation does not support $where. - jstests/core/**/find_and_modify_concurrent_update.js - jstests/core/**/find_and_modify_where.js + # {multi: true} upsert requires specifying the full shard key. - jstests/core/**/update_multi_halts.js - jstests/core/**/updatei.js + - jstests/core/**/server1470.js + # {multi: true} update testing behavior not applicable to sharded clusters - jstests/core/**/updatej.js - jstests/core/**/write_result.js + # Expects to validate that findandmodify alias is not valid in the stable api, mongos + # implementation of findAndModify does not support that currently. + - jstests/core/**/api_version_find_and_modify.js + + # Capped collections cannot be sharded. + - jstests/core/**/capped*.js + - jstests/core/**/rename_collection_capped.js + + # Queries on a sharded collection are not able to be covered when they aren't on the shard key + # since the document needs to be fetched in order to apply the SHARDING_FILTER stage. + - jstests/core/**/coveredIndex1.js + - jstests/core/**/coveredIndex2.js + - jstests/core/**/covered_index_compound_1.js + - jstests/core/**/covered_index_simple_1.js + - jstests/core/**/covered_index_simple_2.js + - jstests/core/**/covered_index_simple_3.js + - jstests/core/**/covered_index_sort_1.js + - jstests/core/**/covered_index_sort_3.js + - jstests/core/**/covered_index_sort_no_fetch_optimization.js + - jstests/core/**/covered_query_with_sort.js + - jstests/core/**/return_key.js + + # $near, $nearSphere are not supported in aggregate (which underlies the two phase write + # protocol). + - jstests/core/**/geo_update.js + - jstests/core/**/geo_update_dedup.js + + # These tests assert on query plans expected from unsharded collections. + - jstests/core/**/hashed_index_collation.js + - jstests/core/**/hashed_index_covered_queries.js + - jstests/core/**/hashed_index_sort.js + - jstests/core/**/index_bounds_code.js + - jstests/core/**/index_bounds_maxkey.js + - jstests/core/**/index_bounds_minkey.js + - jstests/core/**/index_check6.js + - jstests/core/**/index_decimal.js + - jstests/core/**/index_filter_commands_invalidate_plan_cache_entries.js + - jstests/core/**/wildcard_index_collation.js + - jstests/core/**/wildcard_index_count.js + - jstests/core/**/wildcard_index_covered_queries.js + - jstests/core/**/covered_multikey.js + - jstests/core/**/distinct_multikey_dotted_path.js + - jstests/core/**/distinct_with_hashed_index.js + - jstests/core/**/explain_multikey.js + - jstests/core/**/explain_plan_scores.js + - jstests/core/**/explain_shell_helpers.js + - jstests/core/**/explain_sort_type.js + - jstests/core/**/explain_winning_plan.js + - jstests/core/**/find_covered_projection.js + - jstests/core/**/or_to_in.js + - jstests/core/**/partial_index_logical.js + - jstests/core/**/cached_plan_trial_does_not_discard_work.js + - jstests/core/**/collation_plan_cache.js + - jstests/core/**/plan_cache*.js + - jstests/core/**/projection_dotted_paths.js + - jstests/core/**/regex6.js + - jstests/core/**/sbe_plan_cache_autoparameterize_ixscan.js + - jstests/core/**/index_bounds_object.js + - jstests/core/**/column_scan_skip_row_store_projection.js + - jstests/core/**/sbe_explain_rejected_plans.js + - jstests/core/**/sbe_plan_cache_autoparameterize_collscan.js + - jstests/core/**/sparse_index_supports_ne_null.js + - jstests/core/**/update_hint.js + - jstests/core/**/delete_hint.js + - jstests/core/**/find_and_modify_hint.js + - jstests/core/**/index_stats.js + - jstests/core/**/index_partial_read_ops.js + - jstests/core/**/explain_upsert.js + - jstests/core/**/explain_multi_plan.js + + # Test not applicable for sharded collections. + - jstests/core/**/add_skip_stage_before_fetch.js + + # Aggregation pipeline does not support the use of sharded collections as the output collection. + - jstests/core/**/explain_agg_write_concern.js + + # Can't shard collection with invalid dbName. + - jstests/core/**/invalid_db_name.js + + # Cannot output to a non-sharded collection because sharded collection exists already. + - jstests/core/**/mr_bigobject_replace.js + - jstests/core/**/mr_merge.js + - jstests/core/**/mr_reduce.js + + # Cannot implicitly shard accessed collections because mapReduce cannot replace a sharded + # collection as output. + - jstests/core/**/mr_compute_avg.js + - jstests/core/**/mr_replace_into_other_db.js + + # Cannot implicitly shard accessed collections because the "limit" option to the "mapReduce" + # command cannot be used on a sharded collection. + - jstests/core/**/mr_sort.js + + # This test expects a function stored in the system.js collection to be available for an operation + # which may not be the case if it is implicitly sharded in a passthrough. + - jstests/core/**/mr_stored.js + - jstests/core/**/where_system_js.js + - jstests/core/**/system_js_access.js + - jstests/core/**/system_js_drop.js + + # Test expects failure, but two phase write protocol exits early with OK status if there are no + # matching documents. + - jstests/core/**/rename_operator.js + - jstests/core/**/field_name_validation.js + + # Operation is not supported on a view. + - jstests/core/views/**/*.js + + # Operation not supported in a transaction. + - jstests/core/**/create_collection_not_blocked_by_txn.js + - jstests/core/**/drop_collection_not_blocked_by_txn.js + - jstests/core/**/indexing_not_blocked_by_txn.js + - jstests/core/**/listcollections_autocomplete.js + - jstests/core/**/rename_collection_not_blocked_by_txn.js + + # $natural not supported in $sort for aggregation pipelines. + - jstests/core/**/natural_validation.js + + # Test expects no index to be created, but shardCollection implicitly creates one. + - jstests/core/**/timeseries_id_range.js + + # Test relies on keeping the test collection unsharded. + - jstests/core/**/command_let_variables_merge_only.js + - jstests/core/**/illegal_cmd_namespace.js + + # Cannot implicitly shard accessed collections because the error response from the shard about + # using the empty string as the out collection name is converted to an error and no longer retains + # the "code" property. + - jstests/core/**/commands_namespace_parsing.js + + # Cannot implicitly shard accessed collections because the "dataSize" command returns an + # "keyPattern must equal shard key" error response. + - jstests/core/**/datasize2.js + - jstests/core/**/datasize_validation.js + + # Cannot implicitly shard accessed collections because of following error: GridFS fs.chunks + # collection must be sharded on either {files_id:1} or {files_id:1, n:1} + - jstests/core/**/filemd5.js + + # This test assumes that timestamps inserted within the same second will have increasing increment + # values, which may not be the case if the inserts are into a sharded collection. + - jstests/core/**/ts1.js + + # Cannot implicitly shard accessed collections because the "splitVector" command cannot be run + # on a sharded collection + - jstests/core/**/splitvector.js + + # Profile can only be run against the admin database on mongos. + - jstests/core/txns/transactions_profiling.js + - jstests/core/txns/transactions_profiling_with_drops.js + + # Implicitly creates a database through a collection rename, which does not work in a sharded + # cluster. + - jstests/core/txns/transactions_block_ddl.js + + # Set the transactionLifetimeLimitSeconds parameter, which is not on mongos. + - jstests/core/txns/abort_expired_transaction.js + - jstests/core/txns/abort_transaction_thread_does_not_block_on_locks.js + - jstests/core/txns/kill_op_on_txn_expiry.js + + # Uses hangAfterCollectionInserts failpoint not available on mongos. + - jstests/core/txns/speculative_snapshot_includes_all_writes.js + + # View tests aren't expected to work when collections are implicitly sharded. + - jstests/core/txns/view_reads_in_transaction.js + + # Does not use the transactions shell helpers so afterClusterTime read concern is incorrectly + # attached to statements in a transaction beyond the first one. + - jstests/core/txns/non_transactional_operations_on_session_with_transaction.js + + # These workloads explicitly create collections inside multi-document transactions. These are + # non-idempotent operations, and the implicit collection sharding logic upon collection access + # results in premature collection creation, causing the workloads to fail. + - jstests/core/txns/create_collection.js + - jstests/core/txns/create_collection_parallel.js + - jstests/core/txns/create_indexes.js + - jstests/core/txns/create_indexes_parallel.js + - jstests/core/txns/commands_in_txns_read_concern.js + exclude_with_any_tags: + - assumes_standalone_mongod - assumes_against_mongod_not_mongos # Tests tagged with the following will fail because they assume collections are not sharded. - assumes_no_implicit_collection_creation_after_drop + - assumes_no_implicit_index_creation - cannot_create_unique_index_when_using_hashed_shard_key + # system.profile collection doesn't exist on mongos. + - requires_profiling + # Transactions are not allowed to operate on capped collections. + - requires_capped + # Prepare is not a command on mongos. + - uses_prepare_transaction executor: archive: -- cgit v1.2.1