|
The scenario may be reproduced through the following sequence:
1. A migration with "nss: collName, from: shardId1, to: shardId2" starts; the MigrationSourceManager gets instantiated on shardId1, and placement information gets retrieved; at the time of the retrieval, shardId2 owns 1 collection chunk
2. A concurrent migration with "nss: collName, from: shardId2, to: anotherShardId" gets concurrently committed; shardId2 loses its last chunk (and the related op entry gets emitted)
3. The migration started on step 1 is resumed; since shardId2 reacquires its first collection chunk, a migrateChunkToNewShard should be emitted - but the placement information is stale at the time it gets evaluated
|