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

Validate during rollback can cause count mismatch

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.2.1, 4.3.1, 4.0.14
    • Component/s: Replication, Storage
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Backport Requested:
      v4.2, v4.0
    • Sprint:
      Repl 2019-08-26, Repl 2019-09-09, Repl 2019-09-23, Repl 2019-10-07
    • Linked BF Score:
      16

      Description

      When validate is run, it marks a collection as always needing size adjustment. This causes rollback to assume that oplog application will correct the record store sizes, even though it won't if we have rolled back any inserts or deletes that change the size (and don't account for those).

      If validate is called after we call RTT, then it should be marked for size adjustment, and if it is called before RTT it shouldn't be. We clear the "mark for size adjustment" state before each rollback, so it can really only be relevant to validates that happen during the rollback. I think we shouldn't allow validate while we're rolling back, and we should not mark collections for size adjustment on validate since it's unnecessary.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: