Details
Description
During chunk migration the recipient shard is not notified when the metadata reflecting the move is committed. This is not necessary because the recipient will be forced to refresh its metadata the first time it receives the new shard version from a mongos.
Because of this property of the protocol, the recipient shard is free in turn to donate some other chunk as soon as the donor has entered the critical section and has requested that the recipient flushes all received documents.
If a former recipient manages to donate a new chunk before the original migration commits, due to the incremental metadata refresh, this recipient will never have the originally donated chunk in its metadata and will keep filtering out documents for a chunk which it in fact owns.