The scan loop in mongodump repair terminates on this condition in _repairExtent in dump.cpp::
// break when new loc is outside current extent boundary if ( ( forward && loc.compare( e->lastRecord ) > 0 ) || ( ! forward && loc.compare( e->firstRecord ) < 0 ) ) { break; }
This is meant to be a check that the record is within the extent boundaries, however instead it is checking firstRecord and lastRecord, which are pointers to the start and end of the linked list, not the extent boundaries.
- is related to
-
SERVER-21701 mongod --repair and db.repairDatabase() fail due to a single bad document
- Closed