When migrated BSON objects hit size limit, i.e.:
a.len() + o.objsize() + 1024 > BSONObjMaxUserSize
the iterator is decremented. When this iterator is used to erase disk locations, as in:
_cloneLocs.erase( _cloneLocs.begin() , i )
the semantics is to erase from [beginning to end) (note open end of interval). Therefore, the last disk loc returned will not be removed from the list, and extra objects will be returned. In the worst case when the objects are individually very large, the migration will send unlimited amounts of data since the disk locations will never increment.