Audit and update network vs not-network handshake error classification

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Works as Designed
    • Priority: Unknown
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • None
    • Go Drivers
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?
    • None
    • None
    • None
    • None
    • None
    • None

      Context

      GODRIVER-3646 adds the "SystemOverloadedError" label for all but a few errors that happen during handshake. When handling handshake errors with that label, the Go Driver doesn't clear the connection pool. The SDAM spec pseudocode says that drivers shouldn't clear the connection pool for any network error. However, the list of errors that the Go Driver treats as network errors seems to incorrectly classify DNS errors as non-network errors (see here).

      We should audit and update that list of errors that the Go Driver doesn't add the "ServerOverloadedError" label for, to make sure we always label network errors.

      Definition of done

      • Update wrapConnectionError to add the "SystemOverloadedError" label to DNS network errors.
        • It's not clear if all DNS errors should be treated as network errors, or only those with Timeout() == true.

      Pitfalls

      It's not practical to classify all possible errors as network or non-network. Should we bias more toward classifying more errors as network errors, or more errors as non-network errors? What is the effect of each?

            Assignee:
            Unassigned
            Reporter:
            Matt Dale
            None
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: