-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
Sharding 2021-03-22, Sharding 2021-04-05
-
2
command: _flushReshardingStateChanges(nss for shard to refresh on)
context:
In resharding, _flushRoutingTableCacheUpdatesWithWriteConcern is not safe to call when in the critical section.
SERVER-53258 introduces the _shardsvrFinishReshardCollection for when the coordinator persists its decision in the success case.
However, when the coordinator errors, it is possible that the error will occur while the critical section is engaged.
This command should combine the logic for _shardsvrFinishReshardCollection and _flushRoutingTableCache++UpdatesWithWriteConcern so it is safe to call regardless of whether the shard refreshing is in the critical section.
logic inside command
if (critical section is held)
else
{ // ... do _flushRoutingTableCacheUpdates behavior }
- has to be done before
-
SERVER-55100 Test functionality of aborting a resharding operation while the critical section is held
- Closed
- related to
-
SERVER-55852 Shards first acquire LockManager locks before reacting to abortReshardCollection
- Closed