-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: Backpressure, Retryability
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-3906is 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.
- related to
-
GODRIVER-3906 Exclude non-I/O TLS errors from backpressure labels
-
- Closed
-