...
1runOn:
2 -
3 minServerVersion: "4.0"
4 topology: ["single", "replicaset"]
5 -
6 minServerVersion: "4.1.7"
7 topology: ["sharded", "load-balanced"]
8
9database_name: &database_name "retryable-reads-tests"
10bucket_name: "fs"
11
12data:
13 fs.files:
14 -
15 _id: { $oid : "000000000000000000000001" }
16 length: 1
17 chunkSize: 4
18 uploadDate: { $date : "1970-01-01T00:00:00.000Z" }
19 filename: abc
20 metadata: {}
21 fs.chunks:
22 - { _id: { $oid: "000000000000000000000002" }, files_id: { $oid: "000000000000000000000001" }, n: 0, data: { $binary: { base64: "EQ==", subType: "00" } } }
23
24tests:
25 -
26 description: "Download succeeds on first attempt"
27 operations:
28 - &retryable_operation
29 name: download
30 object: gridfsbucket
31 arguments: { id: { "$oid" : "000000000000000000000001" } }
32 expectations:
33 - &retryable_command_started_event
34 command_started_event:
35 command:
36 find: fs.files
37 filter: { _id: {$oid : "000000000000000000000001" }}
38 database_name: *database_name
39 - &find_chunks_command_started_event
40 command_started_event:
41 command:
42 find: fs.chunks
43 filter: { files_id: {$oid : "000000000000000000000001" }}
44 sort: { n: 1 }
45 database_name: *database_name
46 -
47 description: "Download succeeds on second attempt"
48 failPoint: &failCommand_failPoint
49 configureFailPoint: failCommand
50 mode: { times: 1 }
51 data:
52 failCommands: [find]
53 closeConnection: true
54 operations: [*retryable_operation]
55 expectations:
56 - *retryable_command_started_event
57 - *retryable_command_started_event
58 - *find_chunks_command_started_event
59 -
60 description: "Download fails on first attempt"
61 clientOptions:
62 retryReads: false
63 failPoint: *failCommand_failPoint
64 operations:
65 - &retryable_operation_fails
66 <<: *retryable_operation
67 error: true
68 expectations:
69 - *retryable_command_started_event
70 -
71 description: "Download fails on second attempt"
72 failPoint:
73 <<: *failCommand_failPoint
74 mode: { times: 2 }
75 operations: [*retryable_operation_fails]
76 expectations:
77 - *retryable_command_started_event
78 - *retryable_command_started_event
79
View as plain text