...
1
2description: "operation-id"
3
4schemaVersion: "1.14"
5
6runOnRequirements:
7 - topologies:
8 - single
9
10createEntities:
11 - client:
12 id: &client client
13 uriOptions:
14 retryWrites: false # so we don't retry after hitting a failpoint
15 heartbeatFrequencyMS: 500
16 appName: &appName loggingClient
17 serverSelectionTimeoutMS: 2000 # avoid hanging for 30s in test expecting SS failure due to timeout
18 observeLogMessages:
19 serverSelection: debug
20 observeEvents:
21 - serverDescriptionChangedEvent
22 - topologyDescriptionChangedEvent
23 - database:
24 id: &database database
25 client: *client
26 databaseName: &databaseName logging-tests
27 - collection:
28 id: &collection collection
29 database: *database
30 collectionName: &collectionName server-selection
31 - client:
32 id: &failPointClient failPointClient
33
34tests:
35 - description: "Successful bulkWrite operation: log messages have operationIds"
36 operations:
37 # ensure we've discovered the server so it is immediately available
38 # and no extra "waiting for suitable server" messages are emitted.
39 # expected topology events reflect initial server discovery and server connect event.
40 - name: waitForEvent
41 object: testRunner
42 arguments:
43 client: *client
44 event:
45 topologyDescriptionChangedEvent: {}
46 count: 2
47 - name: bulkWrite
48 object: *collection
49 arguments:
50 requests:
51 - insertOne:
52 document: { x: 1 }
53 expectLogMessages:
54 - client: *client
55 messages:
56 - level: debug
57 component: serverSelection
58 data:
59 message: "Server selection started"
60 operationId: { $$type: [int, long] }
61 operation: insert
62 - level: debug
63 component: serverSelection
64 data:
65 message: "Server selection succeeded"
66 operationId: { $$type: [int, long] }
67 operation: insert
68
69 - description: "Failed bulkWrite operation: log messages have operationIds"
70 runOnRequirements:
71 - minServerVersion: "4.4" # failCommand appname support
72 operations:
73 # fail all hello/legacy hello commands for the main client.
74 - name: failPoint
75 object: testRunner
76 arguments:
77 client: *failPointClient
78 failPoint:
79 configureFailPoint: failCommand
80 mode: alwaysOn
81 data:
82 failCommands: ["hello", "ismaster"]
83 appName: *appName
84 closeConnection: true
85 # wait until we've marked the server unknown due
86 # to a failed heartbeat.
87 - name: waitForEvent
88 object: testRunner
89 arguments:
90 client: *client
91 event:
92 serverDescriptionChangedEvent:
93 newDescription:
94 type: Unknown
95 count: 1
96 - name: bulkWrite
97 object: *collection
98 arguments:
99 requests:
100 - insertOne:
101 document: { x: 1 }
102 expectError:
103 isClientError: true # server selection timeout
104 expectLogMessages:
105 - client: *client
106 messages:
107 - level: debug
108 component: serverSelection
109 data:
110 message: "Server selection started"
111 operationId: { $$type: [int, long] }
112 operation: insert
113 - level: info
114 component: serverSelection
115 data:
116 message: "Waiting for suitable server to become available"
117 operationId: { $$type: [int, long] }
118 operation: insert
119 - level: debug
120 component: serverSelection
121 data:
122 message: "Server selection failed"
123 operationId: { $$type: [int, long] }
124 operation: insert
View as plain text