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

Refresh and Setup timeouts in the ASIO connpool can prematurely time out an operation

    XMLWordPrintable

    Details

    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v3.4, v3.2
    • Sprint:
      Platforms 2017-01-23

      Description

      Initial connects and later refreshes have a timeout associated with them in ASIO that isn't linked to any user generated timeout. These timeouts, when they trigger, are registered as general failures however. And general failures cause us to dump all connections from the pool (propagating that error to all consumers currently waiting for a connection).

      That scheme is sound for actual io errors (because a failure to rpc on one connection almost certainly means something is badly wrong with all other open connections), but causes us to fail early and often when applied to timeouts.

      The fix is to treat timeouts on connect and refresh lightly (start connecting a new connection on timeout) and allow the general request timeouts to handle timing out user requests

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                12 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: