summaryrefslogtreecommitdiff
path: root/buildscripts/resmokeconfig/suites/analyze_shard_key_terminate_primary_jscore_passthrough.yml
blob: e8cbeee37e32e030f179b4f0fb13d6493c62ff07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
test_kind: js_test

selector:
  roots:
  - jstests/core/**/*.js
  # TODO: SERVER-72300: Edit exclusions and enable this suite.
  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.
  # 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

  ##
  ## Misc. reasons.
  ##

  # Expects collection to not have been created
  - jstests/core/insert_id_undefined.js

  # Expects legacy errors ($err).
  - jstests/core/constructors.js

  exclude_with_any_tags:
  - does_not_support_stepdowns

  - assumes_against_mongod_not_mongos
  - assumes_standalone_mongod
  # 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
  - assumes_unsharded_collection
  - cannot_create_unique_index_when_using_hashed_shard_key
  # Cannot retry a getMore command if a transient transaction or network error occurs during
  # it, since we won't know whether the cursor was advanced or not.
  - requires_getmore
  # system.profile collection doesn't exist on mongos.
  - requires_profiling

  # "Refusing to run a test that issues non-retryable write operations since the test likely makes
  #   assertions on the write results and can lead to spurious failures if a network error occurs"
  - requires_non_retryable_writes
  # "Refusing to run a test that issues commands that are not blindly retryable"
  # "Refusing to run a test that issues an aggregation command with $out because it is not
  #   retryable"
  - requires_non_retryable_commands
  # "Refusing to run a test that issues commands that may return different values after a failover"
  # "Refusing to run a test that issues an aggregation command with explain because it may return
  #   incomplete results"
  # "Refusing to run a test that issues commands that may return different values after a failover"
  # "Refusing to run a test that issues an aggregation command with explain because it may return
  #   incomplete results"
  # "Refusing to run a test that issues an aggregation command with
  #   $listLocalSessions because it relies on in-memory state that may not survive failovers"
  # "Refusing to run a test that issues a mapReduce command, because it calls std::terminate() if
  #   interrupted by a stepdown"
  - does_not_support_stepdowns
  #
  # The next five tags correspond to the special errors thrown by the
  # fail_unclean_shutdown_incompatible_commands.js override when it refuses to run commands that are
  # inaccurate after an unclean shutdown. Above each tag is the message that causes the tag to be
  # warranted.
  ##
  # "Cowardly fail if fastcount is run with a mongod that had an unclean shutdown: ..."
  - requires_fastcount
  # "Cowardly fail if dbStats is run with a mongod that had an unclean shutdown: ..."
  - requires_dbstats
  # "Cowardly fail if collStats is run with a mongod that had an unclean shutdown: ..."
  - requires_collstats
  # "Cowardly fail if unbounded dataSize is run with a mongod that had an unclean shutdown: ..."
  - requires_datasize
  # "Cowardly fail if startParallelShell is run with a mongod that had an unclean shutdown: ..."
  - uses_parallel_shell

executor:
  archive:
    hooks:
      - CheckReplDBHash
      - CheckReplOplogs
      - ValidateCollections
  config:
    shell_options:
      eval: >-
        testingReplication = true;
        load('jstests/libs/override_methods/network_error_and_txn_override.js');
        db = connect(TestData.connectionString);
        load("jstests/libs/override_methods/enable_sessions.js");
        load("jstests/libs/override_methods/set_read_and_write_concerns.js");
        load("jstests/libs/override_methods/implicitly_configure_query_analyzer.js");
      global_vars:
        TestData:
          alwaysInjectTransactionNumber: true
          defaultReadConcernLevel: "majority"
          logRetryAttempts: true
          networkErrorAndTxnOverrideConfig:
            retryOnNetworkErrors: true
          sessionOptions:
            retryWrites: true
      # We specify nodb so the shell used by each test will attempt to connect after loading the
      # retry logic in auto_retry_on_network_error.js.
      nodb: ""
  hooks:
  - class: ContinuousStepdown
    terminate: true
  - class: CheckReplOplogs
  - class: CheckReplDBHash
  - class: ValidateCollections
  - class: CleanEveryN
    n: 20
  fixture:
    class: ShardedClusterFixture
    num_shards: 2
    enable_balancer: false
    configsvr_options:
      all_nodes_electable: true
    shard_options:
      all_nodes_electable: true
    mongod_options:
      set_parameters:
        enableElectionHandoff: 0
    num_rs_nodes_per_shard: 3
    num_mongos: 1