Info
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
Top User Comments
xgen-internal-githook commented on Tue, 5 Mar 2019 15:06:45 +0000:
Author:
{'name': 'Jason Carey', 'email': 'jcarey@argv.me', 'username': 'hanumantmk'}
Message: SERVER-39427 Modify interrupt semantics for opCtx
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.
Branch: master
https://github.com/mongodb/mongo/commit/32a067938731d184b271ba3d7f43ca6727e3109c