Context of when and why the failure occurred:
The CMAP spec requires interrupting in-use connections on a monitor timeout because otherwise a dead connection’s response time can block for the OS’s TCP retransmission timeout, and only a socket timeout and interruptInUseConnections can abort.
Stack trace:
N/A
Detailed steps to reproduce the problem?
- SDAM dedication connection is connection B; Cursor blocks on getMore for connection A
- The network breaks all existing connection but new connections still work, e.g. LB4 failover
- Heartbeat on B times out, closes
- Monitor creates connection C, retry concludes healthy, no clear / interupt
- Nothing interrupts A and it waits minutes for the TCP transmission / socket timeout
Definition of done: what must be done to consider the task complete?
Clear with interruptInUseConnections=true on the first monitor timeout (resolve the GODRIVER-2577 delay) without reintroducing the FaaS regression (see comments).
Unskip these tests:
TestUnifiedSpec/server-discovery-and-monitoring/tests/unified/interruptInUse-pool-clear.json/Connection_pool_clear_uses_interruptInUseConnections=true_after_monitor_timeout TestUnifiedSpec/server-discovery-and-monitoring/tests/unified/interruptInUse-pool-clear.json/Error_returned_from_connection_pool_clear_with_interruptInUseConnections=true_is_retryable TestUnifiedSpec/server-discovery-and-monitoring/tests/unified/interruptInUse-pool-clear.json/Error_returned_from_connection_pool_clear_with_interruptInUseConnections=true_is_retryable_for_write
The exact Go version used, with patch level:
N/A
The exact version of the Go driver used:
N/A
Describe how MongoDB is set up. Local vs Hosted, version, topology, load balanced, etc.
N/A
The operating system and version (e.g. Windows 7, OSX 10.8, ...)
N/A
Security Vulnerabilities
N/A
- is related to
-
GODRIVER-3975 Fix test gap in interrupting in-use connections on a monitor timeout
-
- Backlog
-
- related to
-
GODRIVER-2577 Heartbeat build up with streaming protocol when driver process is stopped (FAAS)
-
- Closed
-
-
GODRIVER-2855 Include "ConnectionPoolCleared" in "isUnorderedLog" logger verification
-
- Closed
-