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

Connpool HostTimeout races with callback lock acquire/release

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.2.18, 3.4.11, 3.6.0-rc4
    • Component/s: Networking
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v3.4, v3.2
    • Steps To Reproduce:
      Hide

      Add a small timeout before any call to lock() in connection_pool.cpp

      Show
      Add a small timeout before any call to lock() in connection_pool.cpp
    • Sprint:
      Platforms 2017-10-23, Platforms 2017-11-13
    • Linked BF Score:
      0

      Description

      The executor connection pool host timeout is racy with respect to other code that's unlocked the parent mutex to allow for callback execution.

      While effort was spent to protect against background threads with active requests and those participating in refresh, after those tasks have been executed we race with callbacks in how quickly they can return. When we lose that race, we destroy the specific pool out from under those callbacks.

        Attachments

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: