diff options
author | Pavi Vetriselvan <pvselvan@umich.edu> | 2020-03-16 11:13:36 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-05-14 12:42:24 +0000 |
commit | f4528563033d933ca920b3e4b2a5e3344e198a5c (patch) | |
tree | 8c20856b344e02483dceb1e13f35533e41db3ecd /buildscripts/resmokeconfig/suites/replica_sets_reconfig_kill_primary_jscore_passthrough.yml | |
parent | cd9fbb56900343e7b1193922a2c4b197895e7f56 (diff) | |
download | mongo-f4528563033d933ca920b3e4b2a5e3344e198a5c.tar.gz |
SERVER-45094 add disabled replica set reconfig passthroughs
SERVER-45094 add retryable read logic to network_error_and_txn_override.js
(cherry picked from commit f59f63db6c37c0d4657b57d559c95d830b0e34c2)
SERVER-45094 add replica_sets_reconfig_jscore_passthrough suite
(cherry picked from commit 4d91fac171cbe3f2af53d9258965399e648a1947)
SERVER-45094 use w:1 writes and remove causal consistency in reconfig passthrough
(cherry picked from commit a43cb23defc6182d08a7814e4731ef98f2d30b6a)
SERVER-45094 add replica_sets_reconfig_jscore_stepdown_passthrough
(cherry picked from commit 81e0ad27c280c02a49beb65ff4473d5dce62b089)
SERVER-45094 add replica_sets_reconfig_kill_primary_jscore_passthrough
(cherry picked from commit 2debab7987b24bf902f9a128654ce928441c29a2)
SERVER-47678 stepdown and kill primary reconfig passthroughs should ignore ReplicaSetMonitorErrors
(cherry picked from commit 91672e58f1169c7edd684b911f20f62b8a71f8d1)
SERVER-47544 always increase election timeout to 24 hours in passthrough suites
(cherry picked from commit 81d53a715f49827a9f2538d4572f9b01f2b12887)
Diffstat (limited to 'buildscripts/resmokeconfig/suites/replica_sets_reconfig_kill_primary_jscore_passthrough.yml')
-rw-r--r-- | buildscripts/resmokeconfig/suites/replica_sets_reconfig_kill_primary_jscore_passthrough.yml | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/buildscripts/resmokeconfig/suites/replica_sets_reconfig_kill_primary_jscore_passthrough.yml b/buildscripts/resmokeconfig/suites/replica_sets_reconfig_kill_primary_jscore_passthrough.yml new file mode 100644 index 00000000000..6c973e3dd06 --- /dev/null +++ b/buildscripts/resmokeconfig/suites/replica_sets_reconfig_kill_primary_jscore_passthrough.yml @@ -0,0 +1,214 @@ +test_kind: js_test +# This suite starts a 5-node replica set and runs both the DoReconfigInBackground and +# ContinuousStepdown hook with kill: true and background_reconfig: true to periodically run +# safe reconfigs and send kill signals to the primary. +# This tests that the concurrency between killing the primary and reconfigs is still +# ultimately safe. + +selector: + roots: + - jstests/core/**/*.js + exclude_files: + # Transactions do not support retryability of individual operations. + # TODO: Remove this once it is supported (SERVER-33952). + - jstests/core/txns/**/*.js + # These tests are not expected to pass with replica-sets: + - jstests/core/dbadmin.js + - jstests/core/opcounters_write_cmd.js + - jstests/core/read_after_optime.js + - jstests/core/capped_update.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 "transactionLifetimeLimitSeconds" + # server parameter. + - jstests/core/set_param1.js + + # No-op retries are not ignored by top, the profiler, or opcount. + - jstests/core/operation_latency_histogram.js + - jstests/core/profile2.js + - jstests/core/profile3.js + - jstests/core/profile_findandmodify.js + - jstests/core/top.js + - jstests/core/views/views_stats.js + + # TODO SERVER-31249: getLastError should not be affected by no-op retries. + - jstests/core/bulk_legacy_enforce_gle.js + + # TODO SERVER-31242: findAndModify no-op retry should respect the fields option. + - jstests/core/crud_api.js + - jstests/core/find_and_modify.js + - jstests/core/find_and_modify2.js + - jstests/core/find_and_modify_pipeline_update.js + - jstests/core/find_and_modify_server6865.js + + # These test run commands using legacy queries, which are not supported on sessions. + - jstests/core/comment_field.js + - jstests/core/exhaust.js + - jstests/core/validate_cmd_ns.js + + # Stepdown commands during fsync lock will fail. + - jstests/core/currentop.js + - jstests/core/fsync.js + - jstests/core/killop_drop_collection.js + + # Assert on the ismaster field of an isMaster response. If a primary steps down after accepting + # an isMaster command and returns before its connection is closed, the response can contain + # ismaster: false. + - jstests/core/dbadmin.js + - jstests/core/ismaster.js + + # Spawns new mongo shells, which don't retry connecting on stepdown errors. + - jstests/core/shell_connection_strings.js + + # Expect drops/creates to fail or have a certain response: + - jstests/core/drop.js + - jstests/core/dropdb.js + - jstests/core/explain_upsert.js + - jstests/core/indexes_multiple_commands.js + + # Expect certain responses, but retries of successfully completed commands may return + # different values: + - jstests/core/create_indexes.js + - jstests/core/objid5.js + + # Unacknowledged writes prohibited in an explicit session. + - jstests/core/batch_write_command_w0.js + + - jstests/core/bench_test*.js # benchRun() used for writes + - jstests/core/benchrun_pipeline_updates.js # benchRun() used for writes + - jstests/core/connection_string_validation.js # Does not expect a replica set connection string. + - jstests/core/list_collections_filter.js # Temporary collections are dropped on failover. + - jstests/core/top.js # Tests read commands (including getMore) against the secondary + - jstests/core/drop3.js # getMore is not causally consistent if collection is dropped + - jstests/core/validate_cmd_ns.js # Calls _exec() directly, not retryable. + - jstests/core/list_collections_filter.js # Temporary collections are dropped on failover. + - jstests/core/explain_large_bounds.js # Stepdown can timeout waiting for global lock. + + # Tests that fail for Causal Consistency as they have statements that do not support + # non-local read concern. + - jstests/core/collation.js + # Starts a parallel shell but won't restart it after unclean shutdown. + # TODO SERVER-33229: Remove these exclusions + - jstests/core/compact_keeps_indexes.js + - jstests/core/benchrun_pipeline_updates.js + - jstests/core/find_and_modify_concurrent_update.js + - jstests/core/shellstartparallel.js + + # Inserts enough data that recovery takes more than 8 seconds, so we never get a working primary. + - jstests/core/geo_s2ordering.js + + exclude_with_any_tags: + ## + # The next four tags correspond to the special errors thrown by the auto_retry_on_network_error.js + # override when it refuses to run a certain command. Above each tag are the message(s) that cause + # the tag to be warranted. + ## + # "Refusing to run a test that issues a getMore command since if a network error occurs during + # it then we won't know whether the cursor was advanced or not" + - requires_getmore + # "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 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 two tags correspond to the special errors thrown by the + # set_read_and_write_concerns.js override when it refuses to replace the readConcern or + # writeConcern of a particular command. Above each tag are the message(s) that cause the tag to be + # warranted. + ## + # "Cowardly refusing to override read concern of command: ..." + - assumes_read_concern_unchanged + # "Cowardly refusing to override write concern of command: ..." + - assumes_write_concern_unchanged + ## + # The next three tags corresponds 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 + ## The next tag corresponds to long running-operations, as they may exhaust their number + # of retries and result in a network error being thrown. + - operations_longer_than_stepdown_interval + +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/fail_unclean_shutdown_incompatible_commands.js"); + load("jstests/libs/override_methods/fail_unclean_shutdown_start_parallel_shell.js"); + global_vars: + TestData: + alwaysInjectTransactionNumber: true + defaultReadConcernLevel: "majority" + logRetryAttempts: true + networkErrorAndTxnOverrideConfig: + retryOnNetworkErrors: true + backgroundReconfigs: true + overrideRetryAttempts: 3 + sessionOptions: + writeConcern: + w: "majority" + readConcern: + level: "majority" + # Force DBClientRS to find the primary for non-write commands. + readPreference: + mode: "primary" + 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: "" + readMode: commands + hooks: + - class: DoReconfigInBackground + shell_options: + nodb: "" + - class: ContinuousStepdown + kill: true + background_reconfig: true + # 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 + n: 20 + fixture: + class: ReplicaSetFixture + mongod_options: + enableMajorityReadConcern: '' + set_parameters: + enableTestCommands: 1 + logComponentVerbosity: + replication: + heartbeats: 2 + all_nodes_electable: true + num_nodes: 5 |