DRIVERS-3416 test overload retry when retryReads/Writes=false#1909
DRIVERS-3416 test overload retry when retryReads/Writes=false#1909kevinAlbs merged 12 commits intomongodb:masterfrom
Conversation
Drive-by fix. Ran: `pre-commit run --all-files mdformat`.
|
Changes have been extended to all tested operations. And a test for @connorsmacd here is a rough draft of changes in the C driver to validate the tests: kevinAlbs/mongo-c-driver@eb46d92. This was intended as "just enough" to get tests passing, but that might help as a starting point. |
To fix observed error in C driver tests: ``` error: database backpressure-db not found ``` The `*database_name` is used in initialData, creating the database before the test.
|
fed5e1f intends to address this C driver test failure on sharded clusters: |
|
All tests are passing in the C Driver PR as of 4087eb0. |
| any customers experiencing degraded performance can simply disable `retryableReads`. | ||
|
|
||
| ## Changelog | ||
|
|
There was a problem hiding this comment.
Is this empty line a placeholder for an eventual changelog update?
There was a problem hiding this comment.
That was a drive-by fix to address failing lint tasks on master. That has since been fixed by #1908 so I will git merge master before merging.
| retryWrites is not true would be inconsistent with the server and potentially confusing to developers. | ||
|
|
||
| ## Changelog | ||
|
|
There was a problem hiding this comment.
Summary
retryReads/retryWritesis disabled.aggregatewith a write stage.Background & Motivation
Review of the C driver discovered operations were retried on overload errors when
retryReads=falseorretryWrites=false, contradicting this spec requirement:A test case for
aggregatewith ($out/$merge) is added as a possible edge case. Unlike otheraggregateread operations, Retryable Writes suggests it would be a write operation:Please complete the following before merging:
[ ] Update changelog.Test changes only.clusters). (Not-yet done)