Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-21694

mongodump --repair --dbpath omits many records

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Critical - P2
    • Resolution: Fixed
    • Affects Version/s: 2.6.11
    • Fix Version/s: 2.6.13
    • Component/s: Storage, Tools
    • Labels:
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Sprint:
      Integration 13 (04/22/16)

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                1 Vote for this issue
                Watchers:
                13 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: