The collection chunk loading code uses the _exhaustiveFindOnConfig call, which applies 30 seconds of timeout to the entire fetch (not just the individual getMore invocations).
If there is a large number of chunks and the config server fetches take more than 30 seconds in total, the initial chunk loading will never succeed, because each attempt will fail with ExceededTimeLimit and will throw out whatever data was partially loaded on the previous attempt, thus effectively starting from the beginning.
SERVER-22611 ChunkManager refresh can occasionally cause a full reload
- is documented by
DOCS-13659 Investigate changes in SERVER-26755: Collection chunk loading is aborted entirely if fetching all the chunks takes more than 30 seconds