summaryrefslogtreecommitdiff
path: root/jstests/concurrency/fsm_workloads/multi_statement_transaction_simple_kill_sessions.js
blob: 94b595825cc74f10383d9544b55f6f9ea9a0c685 (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
'use strict';

/**
 * Tests periodically killing sessions that are running transactions. The base workload runs
 * transactions with two writes, which will require two phase commit in a sharded cluster if each
 * write targets a different shard.
 *
 * @tags: [uses_transactions, assumes_snapshot_transactions, kills_random_sessions]
 */

load('jstests/concurrency/fsm_libs/extend_workload.js');           // for extendWorkload
load('jstests/concurrency/fsm_workload_helpers/kill_session.js');  // for killSession
load('jstests/concurrency/fsm_workloads/multi_statement_transaction_simple.js');  // for $config

var $config = extendWorkload($config, ($config, $super) => {
    $config.data.retryOnKilledSession = true;

    $config.states.killSession = killSession;

    $config.transitions = {
        init: {transferMoney: 1},
        transferMoney: {transferMoney: 0.8, checkMoneyBalance: 0.1, killSession: 0.1},
        checkMoneyBalance: {transferMoney: 0.9, killSession: 0.1},
        killSession: {transferMoney: 0.8, checkMoneyBalance: 0.1, killSession: 0.1}
    };

    return $config;
});