Details
-
Bug
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
None
Description
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
|
}
|
// ...
|
Attachments
Issue Links
- 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
-