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

ServiceContext::setKillAllOperations should be replaced with an operation that interrupts running operations

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.4.4, 3.5.6
    • Component/s: Internal Code
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Backport Requested:
      v3.4
    • Sprint:
      Sharding 2017-04-17
    • Linked BF Score:
      0

      Description

      During shutdown, mongod and mongos call ServiceContext::setKillAllOperations to prevent new operations from meaningfully starting, and to interrupt existing running operations. Unfortunately, the latter class of operation may not be interrupted if they're blocked in an interruptible condition variable wait because setKillAllOperations does not wake such threads.

      ServiceContext::setKillAllOperations should be replaced with a behavior that more aggressively prevents the creation of new OperationContexts (say by throwing in their constructor) as well as sending kill messages to running operations.

        Attachments

          Issue Links

            Activity

              People

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

                Dates

                • Created:
                  Updated:
                  Resolved: