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

Two-phase index builds aborted due to rollback should leave the index unfinished in the catalog

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.3.3
    • Affects Version/s: None
    • Component/s: None
    • None
    • Fully Compatible
    • Execution Team 2019-12-16

      During rollback, we abort any active index builds. The build cleans itself up and removes the durable catalog entry by calling tearDownIndexBuild() here. Because we are not primary, we assign ghost timestamps when cleaning up unfinished indexes.

      This is mostly okay, because rollback will always roll-back that write. However it could be possible to take a stable checkpoint between tearing down the build and actually rolling-back. If the server crashed at this point, on startup, the index build won't get rebuilt at all.

      It would be more correct to just leave the index build unfinished to avoid ghost timestamping the index build cleanup.

            Assignee:
            louis.williams@mongodb.com Louis Williams
            Reporter:
            louis.williams@mongodb.com Louis Williams
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: