Details
-
Task
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
Fully Compatible
-
Sharding 2020-10-19
-
14
Description
// If this operation is holding any database locks, then it must have opted into getting
|
// interrupted at stepdown to prevent deadlocks.
|
invariant(!opCtx->lockState()->isLocked() || opCtx->shouldAlwaysInterruptAtStepDownOrUp());
|
OperationContext::setAlwaysInterruptAtStepDownOrUp() isn't called in the write command codepath and so the invariant in PrimaryOnlyService::lookupInstance() would get triggered. However, those operations are still interruptible at stepdown because they'll have acquire the global IX lock.
Attachments
Issue Links
- is depended on by
-
SERVER-51209 Fill in missing gaps in Resharding workflow to complete Milestone 1
-
- Closed
-
- is related to
-
SERVER-50982 PrimaryOnlyService::lookupInstance should take an OperationContext and use interruptible waits
-
- Closed
-
-
SERVER-51096 PrimaryOnlyService::getOrCreateInstance should take an OperationContext and use interruptible waits
-
- Closed
-
- related to
-
SERVER-51650 Primary-Only Service's _rebuildCV should be notified even if stepdown happens quickly after stepup
-
- Closed
-