Details
-
Bug
-
Status: Closed
-
Major - P3
-
Resolution: Fixed
-
None
-
None
-
Fully Compatible
-
ALL
-
v3.6
-
TIG 2018-1-15
-
0
Description
Depending on the number of write errors in the server's response, we may spend >10 minutes in the for-loop to filter out successful write operations due to serializing the server's response as a JSON string. This leads to the assert.soon() timeout expiring without actually ever being able to perform a single retry.
// We filter out operations that didn't produce a write error to avoid causing a
|
// duplicate key error when retrying the operations.
|
for (let writeError of res.writeErrors) { |
assert.lt(writeError.index,
|
opsExecuted.length,
|
"A write error was returned for an operation outside the list" + |
" of operations executed: " + tojson(res)); |
opsToRetry.push(opsExecuted[writeError.index]);
|
}
|
We should change the way the assertion is written to avoid calling tojson(res) so many times.
Attachments
Issue Links
- related to
-
SERVER-33034 Change assertion functions to accept a function returning a string as the message parameter
-
- Closed
-