-
Type:
Bug
-
Resolution: Done
-
Priority:
Major - P3
-
Affects Version/s: 2.4.8
-
Component/s: Sharding
-
Fully Compatible
-
ALL
-
Server 2.7.2
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
storeCurrentLocs can print error messages of the form:
warning: can't move chunk of size (approximately) 50789556 because maximum size allowed to move is 67108864 ns: test.test { tu: 6587309, _id: 156274579 } -> { tu: 6593669, _id: 109335516 }
Note that 50789556 is less than 67108864.
This is due to a confusing error message in lines 533-540 of d_migrate.cpp. This error condition is triggered when the number of records seen in the chunk is larger than maxRecsWhenFull. In turn, maxRecsWhenFull is set to the smaller of
- 1.3 * (maxChunkSize / avgRecSize)
- 250000
This means that if the average record size is small, storeCurrentLocs() will error out due to exceeding the maximum number of records in a chunk, and will produce the confusing error message shown.
At the least, the error message should be changed so that we display the correct reason for the moveChunk command failing.
- links to