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

Replication relies on storage engines reporting a non-zero size for correctness

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 3.2.6, 3.3.5
    • WiredTiger
    • Fully Compatible
    • ALL

    Description

      The new inMemory storage engine does not necessarily return a non-zero storage size for collections, even when they contain data. The replication sub-system assumes that the size will be non-zero when there is content.

      Further analysis from sue.loverso:
      I think it is the primary looking at the on-disk size to determine what to send to a secondary on a resync.
      I believe the code in mongo/db/repl/master_slave.cpp:423:forceResync() is the code in question. The listDatabases() command in mongo/db/commands/list_databases.cpp adds an empty boolean of true if the size on disk returned is 0. Then the forceResync code calls resyncDrop if it is empty. There are no comments nearby for that decision.

      Attachments

        Issue Links

          Activity

            People

              alexander.gorrod@mongodb.com Alexander Gorrod
              alexander.gorrod@mongodb.com Alexander Gorrod
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: