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

moveChunk can return with an error for reasons that are not accurately logged

    XMLWordPrintableJSON

Details

    • Fully Compatible
    • ALL
    • Server 2.7.2

    Description

      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.

      Attachments

        Activity

          People

            david.hows David Hows
            william.zola@10gen.com William Zola
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: