Make the TLS record header error check and test work on Windows

XMLWordPrintableJSON

    • Go Drivers
    • None
    • None
    • None
    • None
    • None
    • None

      Context

      With GODRIVER-3906 we updated the connection error handler to not consider a TLS record header error as a "system overloaded" error. However, the logic doesn't work on Windows because .indows doesn't return a wrapped tls.RecordHeaderError. Instead, the error condition on returns:

      *net.OpError: read tcp 127.0.0.1:46242->127.0.0.1:46241: wsarecv: An established connection was aborted by the software in your host machine.
      

      We should update the

      Definition of done

      • Make the connection error check logic work the same way on Windows that it does on Linux and macOS.
        • Determine if we can simply match the error string "wsarecv: An established connection was aborted by the software in your host machine." or if we need to do more. Is it possible for that error string to be returned by other conditions, or does it only happen for TLS record header errors?

      Pitfalls

      • It's possible that the error condition detected by GODRIVER-3906 is not possible to detect in Go on Windows.
      • It's possible that resolving the issue on Windows is more effort than it's worth to fix.

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

              Created:
              Updated: