CSOT retries should return server error on timeout, not timeout error

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • 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

      Detailed steps to reproduce the problem?

      The specifications requires that

      For exceptions that originate from the driver (e.g. no socket available from the connection pool), we should raise the previous error if there was one.

      The Go Driver is not compliant, and is updating prevIndefiniteErr for timeout errors.

      Definition of Done

      Only track server errors in prevIndefiniteErr. Per the spec, only update previousError if the current error is not a DriverException, does not have NoWritesPerformed, and is not a CSOT timeout.

      This is likely the fix: https://github.com/prestonvasquez/mongo-go-driver/commit/71bbdd126155bef0c957a6d7354301efb482fad1#diff-490a6369c25d838f3cbdcb7bec2c0f750b5319831509b0d7a1a53e0933245d24R611-R628

      Ignore all non-highlighted changes in that commit.

      Need to verify it's spec compliant w/ retryable-writes.md.

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

              Created:
              Updated: