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

Modify interrupt semantics for opCtx

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 4.1.9
    • None
    • Internal Code
    • None
    • Fully Compatible
    • ALL
    • Service Arch 2019-03-11
    • 28

    Description

      Currently, runWithoutInterruption still allows interruption at global shutdown, which is a required semantic for some current callers (index builds)

      Separately, we need access to true uninterruptibility,

      • rename opCtx->runWithoutInterruption to runWithoutInterruptionExceptAtGlobalShutdown
      • add a opCtx->setIsExecutingShutdown method which makes the op immune to all forms of interruption, including global shutdown

      This clarifies what opCtx->runWithoutInterruption actually did and offers an escape hatch that turns off interruption at process exit for the thread doing cleanup.

      This also sets the isExecutingShutdown flag on the ops called from the shutdown task to prevent those ops from getting killed / killing themselves

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: