Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-24058

Connection pool asio doesn't honor setup timeouts

    • Fully Compatible
    • ALL
    • Platforms 14 (05/13/16)

      Issue Status as of Jun 03, 2016

      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).

            Assignee:
            mira.carey@mongodb.com Mira Carey
            Reporter:
            mira.carey@mongodb.com Mira Carey
            Votes:
            0 Vote for this issue
            Watchers:
            16 Start watching this issue

              Created:
              Updated:
              Resolved: