Add retryability tests for pending response reads

XMLWordPrintableJSON

    • 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.

            Assignee:
            Unassigned
            Reporter:
            Preston Vasquez
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: