1706 lines
50 KiB
YAML
1706 lines
50 KiB
YAML
# Autogenerated tests that transient errors in a transaction unpin the session.
|
|
# See mongos-pin-auto-tests.py
|
|
|
|
description: mongos-pin-auto
|
|
|
|
schemaVersion: '1.4'
|
|
|
|
runOnRequirements:
|
|
- minServerVersion: "4.1.8"
|
|
# Note: tests utilize targetedFailPoint, which is incompatible with
|
|
# load-balanced and useMultipleMongoses:true
|
|
topologies: [ sharded ]
|
|
# serverless proxy doesn't append error labels to errors in transactions
|
|
# caused by failpoints (CLOUDP-88216)
|
|
serverless: "forbid"
|
|
|
|
createEntities:
|
|
- client:
|
|
id: &client0 client0
|
|
useMultipleMongoses: true
|
|
observeEvents: [ commandStartedEvent ]
|
|
- database:
|
|
id: &database0 database0
|
|
client: *client0
|
|
databaseName: &database_name transaction-tests
|
|
- collection:
|
|
id: &collection0 collection0
|
|
database: *database0
|
|
collectionName: &collection_name test
|
|
- session:
|
|
id: &session0 session0
|
|
client: *client0
|
|
|
|
initialData:
|
|
- collectionName: *collection_name
|
|
databaseName: *database_name
|
|
documents: &data
|
|
- { _id: 1 }
|
|
- { _id: 2 }
|
|
|
|
tests:
|
|
- description: remain pinned after non-transient Interrupted error on insertOne
|
|
operations:
|
|
- &startTransaction
|
|
object: session0
|
|
name: startTransaction
|
|
- &initialCommand
|
|
object: *collection0
|
|
name: insertOne
|
|
arguments:
|
|
session: *session0
|
|
document: { _id: 3 }
|
|
expectResult: { $$unsetOrMatches: { insertedId: { $$unsetOrMatches: 3 } } }
|
|
- object: testRunner
|
|
name: targetedFailPoint
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: { times: 1 }
|
|
data:
|
|
failCommands: [ "insert" ]
|
|
errorCode: 11601
|
|
- object: *collection0
|
|
name: insertOne
|
|
arguments:
|
|
session: *session0
|
|
document: { _id: 4 }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError", "UnknownTransactionCommitResult"]
|
|
errorCodeName: Interrupted
|
|
- &assertSessionPinned
|
|
object: testRunner
|
|
name: assertSessionPinned
|
|
arguments:
|
|
session: *session0
|
|
- &commitTransaction
|
|
object: *session0
|
|
name: commitTransaction
|
|
expectEvents:
|
|
- client: *client0
|
|
events:
|
|
- commandStartedEvent:
|
|
command:
|
|
insert: *collection_name
|
|
documents:
|
|
- { _id: 3 }
|
|
ordered: true
|
|
readConcern: { $$exists: false }
|
|
lsid: { $$sessionLsid: *session0 }
|
|
txnNumber: { $numberLong: '1' }
|
|
startTransaction: true
|
|
autocommit: false
|
|
writeConcern: { $$exists: false }
|
|
commandName: insert
|
|
databaseName: *database_name
|
|
- commandStartedEvent:
|
|
command:
|
|
insert: *collection_name
|
|
documents:
|
|
- { _id: 4 }
|
|
ordered: true
|
|
readConcern: { $$exists: false }
|
|
lsid: { $$sessionLsid: *session0 }
|
|
txnNumber: { $numberLong: '1' }
|
|
startTransaction: { $$exists: false }
|
|
autocommit: false
|
|
writeConcern: { $$exists: false }
|
|
commandName: insert
|
|
databaseName: *database_name
|
|
- commandStartedEvent:
|
|
command:
|
|
commitTransaction: 1
|
|
lsid: { $$sessionLsid: *session0 }
|
|
txnNumber: { $numberLong: '1' }
|
|
startTransaction: { $$exists: false }
|
|
autocommit: false
|
|
writeConcern: { $$exists: false }
|
|
recoveryToken: { $$exists: true }
|
|
commandName: commitTransaction
|
|
databaseName: admin
|
|
outcome:
|
|
- collectionName: *collection_name
|
|
databaseName: *database_name
|
|
documents:
|
|
- { _id: 1 }
|
|
- { _id: 2 }
|
|
- { _id: 3 }
|
|
|
|
- description: 'unpin after transient error within a transaction'
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- object: testRunner
|
|
name: targetedFailPoint
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: { times: 1 }
|
|
data:
|
|
failCommands: [ "insert" ]
|
|
closeConnection: true
|
|
- object: *collection0
|
|
name: insertOne
|
|
arguments:
|
|
session: *session0
|
|
document: { _id: 4 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
errorLabelsOmit: ["UnknownTransactionCommitResult"]
|
|
- &assertSessionUnpinned
|
|
object: testRunner
|
|
name: assertSessionUnpinned
|
|
arguments:
|
|
session: *session0
|
|
- &abortTransaction
|
|
object: *session0
|
|
name: abortTransaction
|
|
expectEvents:
|
|
- client: *client0
|
|
events:
|
|
- commandStartedEvent:
|
|
command:
|
|
insert: *collection_name
|
|
documents:
|
|
- { _id: 3 }
|
|
ordered: true
|
|
readConcern: { $$exists: false }
|
|
lsid: { $$sessionLsid: *session0 }
|
|
txnNumber: { $numberLong: '1' }
|
|
startTransaction: true
|
|
autocommit: false
|
|
writeConcern: { $$exists: false }
|
|
commandName: insert
|
|
databaseName: *database_name
|
|
- commandStartedEvent:
|
|
command:
|
|
insert: *collection_name
|
|
documents:
|
|
- { _id: 4 }
|
|
ordered: true
|
|
readConcern: { $$exists: false }
|
|
lsid: { $$sessionLsid: *session0 }
|
|
txnNumber: { $numberLong: '1' }
|
|
startTransaction: { $$exists: false }
|
|
autocommit: false
|
|
writeConcern: { $$exists: false }
|
|
commandName: insert
|
|
databaseName: *database_name
|
|
- commandStartedEvent:
|
|
command:
|
|
abortTransaction: 1
|
|
lsid: { $$sessionLsid: *session0 }
|
|
txnNumber: { $numberLong: '1' }
|
|
startTransaction: { $$exists: false }
|
|
autocommit: false
|
|
writeConcern: { $$exists: false }
|
|
recoveryToken: { $$exists: true }
|
|
commandName: abortTransaction
|
|
databaseName: admin
|
|
outcome: &outcome
|
|
- collectionName: *collection_name
|
|
databaseName: *database_name
|
|
documents: *data
|
|
|
|
# The rest of the tests in this file test every operation type against
|
|
# multiple types of transient errors (connection and error code).
|
|
|
|
- description: remain pinned after non-transient Interrupted error on insertOne insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
errorCode: 11601
|
|
- name: insertOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
document: { _id: 4 }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on insertMany insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
errorCode: 11601
|
|
- name: insertMany
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
documents: [ { _id: 4 }, { _id: 5 } ]
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on updateOne update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
errorCode: 11601
|
|
- name: updateOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
update: { $inc: { x: 1 } }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on replaceOne update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
errorCode: 11601
|
|
- name: replaceOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
replacement: { y: 1 }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on updateMany update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
errorCode: 11601
|
|
- name: updateMany
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: { $gte: 1 } }
|
|
update: {$set: { z: 1 } }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on deleteOne delete
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["delete"]
|
|
errorCode: 11601
|
|
- name: deleteOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on deleteMany delete
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["delete"]
|
|
errorCode: 11601
|
|
- name: deleteMany
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: { $gte: 1 } }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on findOneAndDelete findAndModify
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["findAndModify"]
|
|
errorCode: 11601
|
|
- name: findOneAndDelete
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on findOneAndUpdate findAndModify
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["findAndModify"]
|
|
errorCode: 11601
|
|
- name: findOneAndUpdate
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
update: { $inc: { x: 1 } }
|
|
returnDocument: Before
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on findOneAndReplace findAndModify
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["findAndModify"]
|
|
errorCode: 11601
|
|
- name: findOneAndReplace
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
replacement: { y: 1 }
|
|
returnDocument: Before
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on bulkWrite insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
errorCode: 11601
|
|
- name: bulkWrite
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
requests:
|
|
- insertOne:
|
|
document: { _id: 1 }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on bulkWrite update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
errorCode: 11601
|
|
- name: bulkWrite
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
requests:
|
|
- updateOne:
|
|
filter: { _id: 1 }
|
|
update: { $set: { x: 1 } }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on bulkWrite delete
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["delete"]
|
|
errorCode: 11601
|
|
- name: bulkWrite
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
requests:
|
|
- deleteOne:
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on find find
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["find"]
|
|
errorCode: 11601
|
|
- name: find
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on countDocuments aggregate
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["aggregate"]
|
|
errorCode: 11601
|
|
- name: countDocuments
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: {}
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on aggregate aggregate
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["aggregate"]
|
|
errorCode: 11601
|
|
- name: aggregate
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
pipeline: []
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on distinct distinct
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["distinct"]
|
|
errorCode: 11601
|
|
- name: distinct
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
fieldName: _id
|
|
filter: {}
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on runCommand insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
errorCode: 11601
|
|
- name: runCommand
|
|
object: *database0
|
|
arguments:
|
|
session: *session0
|
|
commandName: insert
|
|
command:
|
|
insert: *collection_name
|
|
documents:
|
|
- { _id : 1 }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: remain pinned after non-transient Interrupted error on clientBulkWrite bulkWrite
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["bulkWrite"]
|
|
errorCode: 11601
|
|
- name: clientBulkWrite
|
|
object: *client0
|
|
arguments:
|
|
session: *session0
|
|
models:
|
|
- insertOne:
|
|
namespace: database0.collection0
|
|
document: { _id: 8, x: 88 }
|
|
expectError:
|
|
errorLabelsOmit: ["TransientTransactionError"]
|
|
- *assertSessionPinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
runOnRequirements:
|
|
- minServerVersion: "8.0" # `bulkWrite` added to server 8.0"
|
|
|
|
- description: unpin after transient connection error on insertOne insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
closeConnection: true
|
|
- name: insertOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
document: { _id: 4 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on insertOne insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
errorCode: 91
|
|
- name: insertOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
document: { _id: 4 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on insertMany insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
closeConnection: true
|
|
- name: insertMany
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
documents: [ { _id: 4 }, { _id: 5 } ]
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on insertMany insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
errorCode: 91
|
|
- name: insertMany
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
documents: [ { _id: 4 }, { _id: 5 } ]
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on updateOne update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
closeConnection: true
|
|
- name: updateOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
update: { $inc: { x: 1 } }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on updateOne update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
errorCode: 91
|
|
- name: updateOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
update: { $inc: { x: 1 } }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on replaceOne update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
closeConnection: true
|
|
- name: replaceOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
replacement: { y: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on replaceOne update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
errorCode: 91
|
|
- name: replaceOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
replacement: { y: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on updateMany update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
closeConnection: true
|
|
- name: updateMany
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: { $gte: 1 } }
|
|
update: {$set: { z: 1 } }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on updateMany update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
errorCode: 91
|
|
- name: updateMany
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: { $gte: 1 } }
|
|
update: {$set: { z: 1 } }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on deleteOne delete
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["delete"]
|
|
closeConnection: true
|
|
- name: deleteOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on deleteOne delete
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["delete"]
|
|
errorCode: 91
|
|
- name: deleteOne
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on deleteMany delete
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["delete"]
|
|
closeConnection: true
|
|
- name: deleteMany
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: { $gte: 1 } }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on deleteMany delete
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["delete"]
|
|
errorCode: 91
|
|
- name: deleteMany
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: { $gte: 1 } }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on findOneAndDelete findAndModify
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["findAndModify"]
|
|
closeConnection: true
|
|
- name: findOneAndDelete
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on findOneAndDelete findAndModify
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["findAndModify"]
|
|
errorCode: 91
|
|
- name: findOneAndDelete
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on findOneAndUpdate findAndModify
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["findAndModify"]
|
|
closeConnection: true
|
|
- name: findOneAndUpdate
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
update: { $inc: { x: 1 } }
|
|
returnDocument: Before
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on findOneAndUpdate findAndModify
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["findAndModify"]
|
|
errorCode: 91
|
|
- name: findOneAndUpdate
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
update: { $inc: { x: 1 } }
|
|
returnDocument: Before
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on findOneAndReplace findAndModify
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["findAndModify"]
|
|
closeConnection: true
|
|
- name: findOneAndReplace
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
replacement: { y: 1 }
|
|
returnDocument: Before
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on findOneAndReplace findAndModify
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["findAndModify"]
|
|
errorCode: 91
|
|
- name: findOneAndReplace
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
replacement: { y: 1 }
|
|
returnDocument: Before
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on bulkWrite insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
closeConnection: true
|
|
- name: bulkWrite
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
requests:
|
|
- insertOne:
|
|
document: { _id: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on bulkWrite insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
errorCode: 91
|
|
- name: bulkWrite
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
requests:
|
|
- insertOne:
|
|
document: { _id: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on bulkWrite update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
closeConnection: true
|
|
- name: bulkWrite
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
requests:
|
|
- updateOne:
|
|
filter: { _id: 1 }
|
|
update: { $set: { x: 1 } }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on bulkWrite update
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["update"]
|
|
errorCode: 91
|
|
- name: bulkWrite
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
requests:
|
|
- updateOne:
|
|
filter: { _id: 1 }
|
|
update: { $set: { x: 1 } }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on bulkWrite delete
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["delete"]
|
|
closeConnection: true
|
|
- name: bulkWrite
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
requests:
|
|
- deleteOne:
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on bulkWrite delete
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["delete"]
|
|
errorCode: 91
|
|
- name: bulkWrite
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
requests:
|
|
- deleteOne:
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on find find
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["find"]
|
|
closeConnection: true
|
|
- name: find
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on find find
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["find"]
|
|
errorCode: 91
|
|
- name: find
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: { _id: 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on countDocuments aggregate
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["aggregate"]
|
|
closeConnection: true
|
|
- name: countDocuments
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: {}
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on countDocuments aggregate
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["aggregate"]
|
|
errorCode: 91
|
|
- name: countDocuments
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
filter: {}
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on aggregate aggregate
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["aggregate"]
|
|
closeConnection: true
|
|
- name: aggregate
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
pipeline: []
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on aggregate aggregate
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["aggregate"]
|
|
errorCode: 91
|
|
- name: aggregate
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
pipeline: []
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on distinct distinct
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["distinct"]
|
|
closeConnection: true
|
|
- name: distinct
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
fieldName: _id
|
|
filter: {}
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on distinct distinct
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["distinct"]
|
|
errorCode: 91
|
|
- name: distinct
|
|
object: *collection0
|
|
arguments:
|
|
session: *session0
|
|
fieldName: _id
|
|
filter: {}
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on runCommand insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
closeConnection: true
|
|
- name: runCommand
|
|
object: *database0
|
|
arguments:
|
|
session: *session0
|
|
commandName: insert
|
|
command:
|
|
insert: *collection_name
|
|
documents:
|
|
- { _id : 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient ShutdownInProgress error on runCommand insert
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["insert"]
|
|
errorCode: 91
|
|
- name: runCommand
|
|
object: *database0
|
|
arguments:
|
|
session: *session0
|
|
commandName: insert
|
|
command:
|
|
insert: *collection_name
|
|
documents:
|
|
- { _id : 1 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
|
|
- description: unpin after transient connection error on clientBulkWrite bulkWrite
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["bulkWrite"]
|
|
closeConnection: true
|
|
- name: clientBulkWrite
|
|
object: *client0
|
|
arguments:
|
|
session: *session0
|
|
models:
|
|
- insertOne:
|
|
namespace: database0.collection0
|
|
document: { _id: 8, x: 88 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
runOnRequirements:
|
|
- minServerVersion: "8.0" # `bulkWrite` added to server 8.0"
|
|
|
|
- description: unpin after transient ShutdownInProgress error on clientBulkWrite bulkWrite
|
|
operations:
|
|
- *startTransaction
|
|
- *initialCommand
|
|
- name: targetedFailPoint
|
|
object: testRunner
|
|
arguments:
|
|
session: *session0
|
|
failPoint:
|
|
configureFailPoint: failCommand
|
|
mode: {times: 1}
|
|
data:
|
|
failCommands: ["bulkWrite"]
|
|
errorCode: 91
|
|
- name: clientBulkWrite
|
|
object: *client0
|
|
arguments:
|
|
session: *session0
|
|
models:
|
|
- insertOne:
|
|
namespace: database0.collection0
|
|
document: { _id: 8, x: 88 }
|
|
expectError:
|
|
errorLabelsContain: ["TransientTransactionError"]
|
|
- *assertSessionUnpinned
|
|
- *abortTransaction
|
|
outcome: *outcome
|
|
runOnRequirements:
|
|
- minServerVersion: "8.0" # `bulkWrite` added to server 8.0"
|