PipelineD::createRandomCursorExecutor takes a ScopedCollectionShardingState, which holds the CSS RESOURCE_MUTEX, and still holds it when it constructs the PlanExecutor. The PlanExecutor constructor may actually execute a TrialStage, during which it can yield/restore the locks. RESOURCE_MUTEXes are not yielded, so on restore a lock inversion can happen.
- is caused by
-
SERVER-69435 Make the CSS acquisition a RAII
- Closed