The MigrationChunkClonerSourceLegacy is using the average object size to estimate how many objects a full chunk would be able to contain. However, the current semantic is disallowing moving chunks containing exactly one document whose size is greater than collection's max chunk size.
Trivial scenario to reproduce the bug:
- Set the default chunk size to 1MB
- Create a collection with 100 chunks each containing one documents of 1.1 MB
- Balancing will never happen because maxRecsWhenFull will be set to zero so it's not even possible to pad some slack