blob: 048f20abce558618875c3707c4f93750482b47ec (
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
|
test_kind: parallel_fsm_workload_test
selector:
roots:
- jstests/concurrency/fsm_workloads/**/*.js
exclude_files:
# These workloads implicitly assume that their tid ranges are [0, $config.threadCount). This
# isn't guaranteed to be true when they are run in parallel with other workloads.
- jstests/concurrency/fsm_workloads/findAndModify_inc_pipeline.js
- jstests/concurrency/fsm_workloads/list_indexes.js
- jstests/concurrency/fsm_workloads/update_inc_capped.js
- jstests/concurrency/fsm_workloads/update_inc_pipeline.js
# These workloads uses >100MB of data, which can overwhelm test hosts.
- jstests/concurrency/fsm_workloads/agg_group_external.js
- jstests/concurrency/fsm_workloads/agg_sort_external.js
# The findAndModify_update_grow.js workload can cause OOM kills on test hosts.
- jstests/concurrency/fsm_workloads/findAndModify_update_grow.js
# convertToCapped requires a global lock and any background operations on the database causes it
# to fail due to not finishing quickly enough.
- jstests/concurrency/fsm_workloads/convert_to_capped_collection.js
- jstests/concurrency/fsm_workloads/convert_to_capped_collection_index.js
# This workload kills random cursors which takes a collection lock.
# TODO: SERVER-35567.
- jstests/concurrency/fsm_workloads/snapshot_read_kill_operations.js
# This workload kills random sessions and a different FSM workload wouldn't be able to handle
# the error response from the op being killed.
- jstests/concurrency/fsm_workloads/multi_statement_transaction_kill_sessions_atomicity_isolation.js
- jstests/concurrency/fsm_workloads/multi_statement_transaction_simple_kill_sessions.js
# This workload may restart running transactions on a different client, causing deadlock if
# there is a concurrent dropDatabase waiting for the global X lock.
# TODO: SERVER-37876
- jstests/concurrency/fsm_workloads/multi_statement_transaction_all_commands_same_session.js
# This workload assumes no locks are taken outside of the workload.
- jstests/concurrency/fsm_workloads/access_collection_in_transaction_after_catalog_changes.js
# SERVER-43053 These workloads set a failpoint that causes intermittent WriteConflict errors,
# which presently can cause other simultaneous workloads to fail.
- jstests/concurrency/fsm_workloads/collmod_writeconflict.js
- jstests/concurrency/fsm_workloads/reindex_writeconflict.js
exclude_with_any_tags:
- requires_sharding
group_size: 10
group_count_multiplier: 1.0
executor:
archive:
hooks:
- CheckReplDBHashInBackground
- CheckReplDBHash
- ValidateCollections
tests: true
config:
shell_options:
readMode: commands
global_vars:
TestData:
skipDropDatabaseOnDatabaseDropPending: true
setShellParameter: skipShellCursorFinalize=true
hooks:
# 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: CheckReplDBHashInBackground
- class: CheckReplDBHash
- class: ValidateCollections
- class: CleanupConcurrencyWorkloads
fixture:
class: ReplicaSetFixture
mongod_options:
oplogSize: 1024
set_parameters:
# Increase the timeout of the cursor so that the cursor will continue to stay alive even
# when there is a delay in lock acquisition during a getMore command.
cursorTimeoutMillis: 3600000
enableTestCommands: 1
# We have historically had deadlocks occur due to lock acquisition issues involving the
# system running out of WiredTiger write tickets. We intentionally lower the number of
# WiredTiger write tickets available to below the maximum number of database clients to
# trigger this situation at least some of the time.
wiredTigerConcurrentWriteTransactions: 64
# Setting this parameter to "1" disables cursor caching in WiredTiger, and sets the cache
# size to "1" in MongoDB. This forces all resources to be released when done.
wiredTigerCursorCacheSize: 1
# Lower the time after all references to a file in WiredTiger have been released before it
# is closed.
wiredTigerFileHandleCloseIdleTime: 1
# Lower the interval at which WiredTiger checks for file handles to close.
wiredTigerFileHandleCloseScanInterval: 1
# Lower the number of files open before WiredTiger starts looking for cursors to close. At
# least 1 file should always be open, so cursor sweeps will always run when scheduled.
wiredTigerFileHandleCloseMinimum: 1
num_nodes: 3
|