-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: 3.2.0
-
Component/s: Networking
-
Fully Compatible
-
ALL
-
Platforms 14 (05/13/16)
-
(copied to CRM)
ISSUE SUMMARY
The connection pool supports a timeout for setup, but the glue code that attaches it to asio doesn't actually honor this timeout. This means requests may hang forever behind connect. Even a series of requests repeat this workflow (because new connections aren't created in the pool because one is connecting forever).
USER IMPACT
This issue may cause symptoms that mimic a network partition. In particular, this issue is the most likely explanation if the hosts of two replica set members can successfully ping each other, but only one mongod is able is able to receive heartbeats. This error may be logged as
[ReplicationExecutor] Error in heartbeat request to xxxx:27000; ExceededTimeLimit: Couldn't get a connection within the time limit
WORKAROUNDS
On the affected mongod execute to trigger a hostname caching refresh and re-resolved the hostname
rs.reconfig(rs.config())
AFFECTED VERSIONS
MongoDB 3.2.0 through 3.2.6
FIX VERSION
The fix is included in the 3.2.7 production release.
Original description
The connection pool supports a timeout for setup, but the glue code that attaches it to asio doesn't actually honor this timeout. In practice, this means requests can hang forever behind connect. Even a series of requests repeat this workflow (because new connections aren't created in the pool because one is connecting forever).
- is depended on by
-
SERVER-24711 ASIO connections that have already timed out before setup should not error
- Closed
- is duplicated by
-
SERVER-23522 Replica set recovery doesn't happen immediately at boot with 3.2 as it did with <3.2
- Closed