As part of the critical section in a migration, the donor shard will send _configsvrCommitChunkMigration to the config server to complete the migration. If the command fails and the donor shard is in FCV 4.2, the donor attempts to recover the migration's outcome by doing a write on the config server to recover the latest configOpTime. If this recovery fails, the donor will fassert.
The same operation context is used to send the commit and for the recovery operations, so if it is interrupted (e.g. by a killOp command), the commit and recovery will both fail leading to a crash.
Notably in FCV >= 4.4, the donor shard instead recovers from a failed commit by repeatedly sending _configsvrEnsureChunkVersionIsGreaterThan, which also reuses the commit's operation context but checks for interrupt, so the migration aborts instead of crashes on interruption.
- is depended on by
-
SERVER-26886 Config server shuts down while a migration is in the critical section, causing the shard to fassert on critical command failure.
- Closed