-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Component/s: Retryability
-
None
-
Needed - No Spec Changes
Summary
DRIVERS-2884 introduced logic to retry operations that fail while attempting to drain the response from a connection that experienced a socket timeout. We should add tests to ensure that we actually (1) retry in such cases and (2) that this retry goes through the appropriate server-selection layer.
See PR comment for more context.
Motivation
Testing completeness
Acceptance Criteria
We should duplicate the two tests that in client-side-operation-timeouts/tests/pending-response.yml that check for case (1):
- write op retries when connection closes server-side while draining response
- read op retries when connection closes server-side while draining response
And extend them to use logging to confirm that a successful retry doesn't happen at the pooling layer:
- connectionPendingResponseStarted: {} # Pending read fails on first find - connectionPendingResponseFailed: reason: error - connectionClosedEvent: reason: error - serverSelectionStarted - serverSelectionFinished - connectionCheckedOutEvent: {} - connectionCheckedInEvent: {} # Find finishes.
This has to be done with logging since event monitoring doesn't include server selection.
- is related to
-
DRIVERS-2884 CSOT avoid connection churn when operations timeout
-
- In Review
-
- related to
-
DRIVERS-2883 Add OIDC Support for Azure Functions and ASE
-
- Backlog
-