summaryrefslogtreecommitdiff
path: root/buildscripts/resmokeconfig/suites/tenant_migration_jscore_passthrough.yml
blob: 6df777169de2c77e5e82504e3da3c835fafc825f (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
test_kind: js_test

selector:
  roots:
  - jstests/core/**/*.js
  exclude_files:
  - jstests/core/txns/**/*.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 expect hardcoded count of write operations and this suite retries writes on
  # migration conflict errors.
  - jstests/core/operation_latency_histogram.js
  - jstests/core/top.js
  # The override cannot deep copy very large or small dates.
  - jstests/core/index_large_and_small_dates.js
  # These tests expect the profiler to observe batched write operations but batched writes are
  # disabled in this suite.
  - jstests/core/profile_insert.js
  - jstests/core/profile_delete.js
  - jstests/core/profile_findandmodify.js
  - jstests/core/profile_update.js
  # These tests are not expected to pass with replica-sets.
  - jstests/core/opcounters_write_cmd.js
  - jstests/core/read_after_optime.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/bench_test3.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
  - jstests/core/invalidated_legacy_cursors.js
  # TODO (SERVER-51753): Handle applyOps running concurrently with a tenant migration.
  - jstests/core/rename_stayTemp.js

executor:
  archive:
    hooks:
      - CheckReplDBHash
      - CheckReplOplogs
      - ValidateCollections
  config:
    shell_options:
      eval: >-
        testingReplication = true;
        load('jstests/libs/override_methods/inject_tenant_prefix.js');
      global_vars:
        TestData: &TestData
          tenantId: "tenantMigrationTenantId"
          # TODO (SERVER-50494): Implement proxy's retry logic for batch write commands.
          disableBatchWrites: true
      readMode: commands
  hooks:
  - class: ContinuousTenantMigration
    shell_options:
      global_vars:
        TestData: *TestData
  # The CheckReplDBHash hook waits until all operations have replicated to and have been applied
  # on the secondaries, so we run the ValidateCollections hook after it to ensure we're
  # validating the entire contents of the collection.
  - class: CheckReplOplogs
  - class: CheckReplDBHash
  - class: ValidateCollections
  - class: CleanEveryN
    # TODO (SERVER-49204): The ContinuousTenantMigration hook reuses TestData.tenantId hook for all
    # migrations. Therefore, it needs to run the donorForgetMigration command after each migration
    # (i.e. test) in order to make the subsequent migration not conflict with the one run by the
    # previous test. Until we have the donorForgetMigration command, we need to specify n: 1 to
    # clear the in-memory and persisted state for each migration.
    n: 1
  fixture:
    class: TenantMigrationFixture
    mongod_options:
      set_parameters:
        enableTestCommands: 1
        # TODO SERVER-51734: Remove the failpoint 'returnResponseOkForRecipientSyncDataCmd'.
        failpoint.returnResponseOkForRecipientSyncDataCmd:
            mode: alwaysOn
    num_replica_sets: 2
    num_nodes_per_replica_set: 3
    use_replica_set_connection_string: true