-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
Currently we will clear the driver connection pool if we encounter any error during new connection handshake (see topology.Server#ProcessHandshakeError). If the error encountered is a driver-side timeout (e.g. a Context cancellation), that doesn't indicate a problem with connections in the pool like a network error does. Don't clear the connection pool in the case that the error encountered during new connection handshake is a driver-side timeout.
E.g. similar logic from topology.Server#ProcessError:
// ... if wrappedConnErr == context.Canceled || wrappedConnErr == context.DeadlineExceeded { return driver.NoChange } // ...
- related to
-
GODRIVER-2024 Connection pool, long semaphore wait causes connection close
- Closed
-
GODRIVER-2068 Replace all uses of isPoolCleared() and clearPoolChan() in tests with testPoolMonitor
- Closed
-
GODRIVER-2138 Remove unnecessary operation Context parameter from ProcessHandshakeError
- Closed