-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
v5.0
-
Sharding 2021-05-17, Sharding 2021-06-14, Sharding 2021-06-28, Sharding 2021-05-31
-
1
Do the following on the recipient first – unsure at this time if the donor is ready for this.
- Make userCanceled a class member of participants of type boost::optional<bool>.
- This class member will be populated from two different sources, either the onReshardingFieldsChanges() or abort() directly from the shard's abortReshardCollection command. Both of these sources go through the abort() command eventually, so you can populate the class member there.
- Refer to userCanceled here, where you will indicate kCanceled if aborted == true && userCanceled == true, kFailure if aborted == true && userCanceled == false, and kSuccess otherwise.
- Try removing this call to onCompletion. If tests fail, keep it for now.
- depends on
-
SERVER-55511 Handle recovery for resharding recipients
- Closed
-
SERVER-56567 Add boolean field to reshardingFields to indicate whether an abort came from a user cancelation
- Closed
- has to be done after
-
SERVER-57260 Plumb through userCanceled to the _shardsvrAbortReshardCollection command and participant machine abort functions
- Closed