-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: 6.2.0-rc6
-
Component/s: None
-
None
-
Fully Compatible
-
ALL
-
v6.2
-
Sharding EMEA 2023-02-06
-
130
During stepUp of RangeDeleterService we call _joinAndResetState() without the class mutex. As part of this function we also clear _rangeDeletionTasks.
In general the public API of this service calls _acquireMutexFailIfServiceNotUp so we would expect that no external thread would access the _rangeDeletionTasks before the service initialization is completed and the _state is set to kUp.
There are two special public API that uses _acquireMutexUnconditionally and then access the _rangeDeletionTasks object:
This means that these two functions can access the _rangeDeletionTasks object while the service is still down and potentially at the same time that the _joinAndResetState() is clearing it.
- is caused by
-
SERVER-70964 Do not wait for range deletion thread on stepdown
- Closed