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
|
runOn:
-
minServerVersion: "4.0"
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
data: []
tests:
- description: start insert start
operations:
- name: startTransaction
object: session0
- name: insertOne
object: collection
arguments:
session: session0
document:
_id: 1
result:
insertedId: 1
- name: startTransaction
object: session0
result:
# Client-side error.
errorContains: transaction already in progress
# Just to clean up.
- name: commitTransaction
object: session0
- description: start twice
operations:
- name: startTransaction
object: session0
- name: startTransaction
object: session0
result:
# Client-side error.
errorContains: transaction already in progress
- description: commit and start twice
operations:
- name: startTransaction
object: session0
- name: insertOne
object: collection
arguments:
session: session0
document:
_id: 1
result:
insertedId: 1
- name: commitTransaction
object: session0
- name: startTransaction
object: session0
- name: startTransaction
object: session0
result:
# Client-side error.
errorContains: transaction already in progress
- description: write conflict commit
operations:
- name: startTransaction
object: session0
- name: insertOne
object: collection
arguments:
session: session0
document:
_id: 1
result:
insertedId: 1
- name: startTransaction
object: session1
- name: insertOne
object: collection
arguments:
session: session1
document:
_id: 1
result:
errorCodeName: WriteConflict
errorLabelsContain: ["TransientTransactionError"]
errorLabelsOmit: ["UnknownTransactionCommitResult"]
- name: commitTransaction
object: session0
- name: commitTransaction
object: session1
result:
errorCodeName: NoSuchTransaction
errorLabelsContain: ["TransientTransactionError"]
errorLabelsOmit: ["UnknownTransactionCommitResult"]
- description: write conflict abort
operations:
- name: startTransaction
object: session0
- name: insertOne
object: collection
arguments:
session: session0
document:
_id: 1
result:
insertedId: 1
- name: startTransaction
object: session1
- name: insertOne
object: collection
arguments:
session: session1
document:
_id: 1
result:
errorCodeName: WriteConflict
errorLabelsContain: ["TransientTransactionError"]
errorLabelsOmit: ["UnknownTransactionCommitResult"]
- name: commitTransaction
object: session0
# Driver ignores "NoSuchTransaction" error.
- name: abortTransaction
object: session1
|