...
1description: "connection-logging"
2
3schemaVersion: "1.13"
4
5runOnRequirements:
6 - topologies:
7 - single # The number of log messages is different for each topology since there is a connection pool per host.
8
9createEntities:
10 - client:
11 id: &failPointClient failPointClient
12
13tests:
14 - description: "Create a client, run a command, and close the client"
15 operations:
16 - name: createEntities
17 object: testRunner
18 arguments:
19 entities:
20 - client:
21 id: &client client
22 observeLogMessages:
23 connection: debug
24 - name: listDatabases
25 object: *client
26 arguments:
27 filter: {}
28 - name: close
29 object: *client
30 expectLogMessages:
31 - client: *client
32 messages:
33 - level: debug
34 component: connection
35 data:
36 message: "Connection pool created"
37 serverHost: { $$type: string }
38 serverPort: { $$type: [int, long] }
39
40 - level: debug
41 component: connection
42 data:
43 message: "Connection pool ready"
44 serverHost: { $$type: string }
45 serverPort: { $$type: [int, long] }
46
47 - level: debug
48 component: connection
49 data:
50 message: "Connection checkout started"
51 serverHost: { $$type: string }
52 serverPort: { $$type: [int, long] }
53
54 - level: debug
55 component: connection
56 data:
57 message: "Connection created"
58 driverConnectionId: { $$type: [int, long] }
59 serverHost: { $$type: string }
60 serverPort: { $$type: [int, long] }
61
62 - level: debug
63 component: connection
64 data:
65 message: "Connection ready"
66 driverConnectionId: { $$type: [int, long] }
67 serverHost: { $$type: string }
68 serverPort: { $$type: [int, long] }
69 durationMS: { $$type: [double, int, long] }
70
71 - level: debug
72 component: connection
73 data:
74 message: "Connection checked out"
75 driverConnectionId: { $$type: [int, long] }
76 serverHost: { $$type: string }
77 serverPort: { $$type: [int, long] }
78 durationMS: { $$type: [double, int, long] }
79
80 - level: debug
81 component: connection
82 data:
83 message: "Connection checked in"
84 driverConnectionId: { $$type: [int, long] }
85 serverHost: { $$type: string }
86 serverPort: { $$type: [int, long] }
87
88 # The next three expected logs are for ending a session.
89 - level: debug
90 component: connection
91 data:
92 message: "Connection checkout started"
93 serverHost: { $$type: string }
94 serverPort: { $$type: [int, long] }
95
96 - level: debug
97 component: connection
98 data:
99 message: "Connection checked out"
100 driverConnectionId: { $$type: [int, long] }
101 serverHost: { $$type: string }
102 serverPort: { $$type: [int, long] }
103 durationMS: { $$type: [double, int, long] }
104
105 - level: debug
106 component: connection
107 data:
108 message: "Connection checked in"
109 driverConnectionId: { $$type: [int, long] }
110 serverHost: { $$type: string }
111 serverPort: { $$type: [int, long] }
112
113 - level: debug
114 component: connection
115 data:
116 message: "Connection closed"
117 driverConnectionId: { $$type: [int, long] }
118 serverHost: { $$type: string }
119 serverPort: { $$type: [int, long] }
120 reason: "Connection pool was closed"
121
122 - level: debug
123 component: connection
124 data:
125 message: "Connection pool closed"
126 serverHost: { $$type: string }
127 serverPort: { $$type: [int, long] }
128
129 # This test exists to provide coverage of checkout failed and pool cleared events.
130 - description: "Connection checkout fails due to error establishing connection"
131 runOnRequirements:
132 - auth: true
133 minServerVersion: "4.0" # failCommand was added to mongod in 4.0
134 operations:
135 - name: createEntities
136 object: testRunner
137 arguments:
138 entities:
139 - client:
140 id: &client client
141 uriOptions:
142 retryReads: false
143 appname: &clientAppName clientAppName
144 # use a high heartbeatFrequencyMS to avoid a successful monitor check marking the pool as
145 # ready (and emitting another event) during the course of test execution.
146 heartbeatFrequencyMS: 10000
147 observeLogMessages:
148 connection: debug
149 - name: failPoint
150 object: testRunner
151 arguments:
152 client: *failPointClient
153 failPoint:
154 configureFailPoint: failCommand
155 mode: { times: 1 }
156 data:
157 failCommands: ["saslContinue"]
158 closeConnection: true
159 appName: *clientAppName
160 - name: listDatabases
161 object: *client
162 arguments:
163 filter: {}
164 expectError:
165 isClientError: true
166
167 expectLogMessages:
168 - client: *client
169 messages:
170 - level: debug
171 component: connection
172 data:
173 message: "Connection pool created"
174 serverHost: { $$type: string }
175 serverPort: { $$type: [int, long] }
176
177 - level: debug
178 component: connection
179 data:
180 message: "Connection pool ready"
181 serverHost: { $$type: string }
182 serverPort: { $$type: [int, long] }
183
184 - level: debug
185 component: connection
186 data:
187 message: "Connection checkout started"
188 serverHost: { $$type: string }
189 serverPort: { $$type: [int, long] }
190
191 - level: debug
192 component: connection
193 data:
194 message: "Connection created"
195 driverConnectionId: { $$type: [int, long] }
196 serverHost: { $$type: string }
197 serverPort: { $$type: [int, long] }
198
199 - level: debug
200 component: connection
201 data:
202 message: "Connection pool cleared"
203 serverHost: { $$type: string }
204 serverPort: { $$type: [int, long] }
205
206 - level: debug
207 component: connection
208 data:
209 message: "Connection closed"
210 driverConnectionId: { $$type: [int, long] }
211 serverHost: { $$type: string }
212 serverPort: { $$type: [int, long] }
213 reason: "An error occurred while using the connection"
214 error: { $$exists: true }
215 unordered: true
216
217 - level: debug
218 component: connection
219 data:
220 message: "Connection checkout failed"
221 serverHost: { $$type: string }
222 serverPort: { $$type: [int, long] }
223 reason: "An error occurred while trying to establish a new connection"
224 error: { $$exists: true }
225 durationMS: { $$type: [double, int, long] }
226 unordered: true
View as plain text