63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
runOn:
 | 
						|
    -
 | 
						|
        minServerVersion: "3.6"
 | 
						|
        topology: ["replicaset"]
 | 
						|
 | 
						|
data:
 | 
						|
    - { _id: 1, x: 11 }
 | 
						|
    - { _id: 2, x: 22 }
 | 
						|
 | 
						|
tests:
 | 
						|
    -
 | 
						|
        description: "FindOneAndUpdate is committed on first attempt"
 | 
						|
        failPoint:
 | 
						|
            configureFailPoint: onPrimaryTransactionalWrite
 | 
						|
            mode: { times: 1 }
 | 
						|
        operation:
 | 
						|
            name: "findOneAndUpdate"
 | 
						|
            arguments:
 | 
						|
                filter: { _id: 1 }
 | 
						|
                update: { $inc: { x : 1 }}
 | 
						|
                returnDocument: "Before"
 | 
						|
        outcome:
 | 
						|
            result: { _id: 1, x: 11 }
 | 
						|
            collection:
 | 
						|
                data:
 | 
						|
                    - { _id: 1, x: 12 }
 | 
						|
                    - { _id: 2, x: 22 }
 | 
						|
    -
 | 
						|
        description: "FindOneAndUpdate is not committed on first attempt"
 | 
						|
        failPoint:
 | 
						|
            configureFailPoint: onPrimaryTransactionalWrite
 | 
						|
            mode: { times: 1 }
 | 
						|
            data: { failBeforeCommitExceptionCode: 1 }
 | 
						|
        operation:
 | 
						|
            name: "findOneAndUpdate"
 | 
						|
            arguments:
 | 
						|
                filter: { _id: 1 }
 | 
						|
                update: { $inc: { x : 1 }}
 | 
						|
                returnDocument: "Before"
 | 
						|
        outcome:
 | 
						|
            result: { _id: 1, x: 11 }
 | 
						|
            collection:
 | 
						|
                data:
 | 
						|
                    - { _id: 1, x: 12 }
 | 
						|
                    - { _id: 2, x: 22 }
 | 
						|
    -
 | 
						|
        description: "FindOneAndUpdate is never committed"
 | 
						|
        failPoint:
 | 
						|
            configureFailPoint: onPrimaryTransactionalWrite
 | 
						|
            mode: { times: 2 }
 | 
						|
            data: { failBeforeCommitExceptionCode: 1 }
 | 
						|
        operation:
 | 
						|
            name: "findOneAndUpdate"
 | 
						|
            arguments:
 | 
						|
                filter: { _id: 1 }
 | 
						|
                update: { $inc: { x : 1 }}
 | 
						|
        outcome:
 | 
						|
            error: true
 | 
						|
            collection:
 | 
						|
                data:
 | 
						|
                    - { _id: 1, x: 11 }
 | 
						|
                    - { _id: 2, x: 22 }
 |