Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-8074

Panic in reconciliation if inserting content into the history fails

    XMLWordPrintable

Details

    • Improvement
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • WT10.0.1, 5.2.0, 5.0.7, 4.4.14
    • None
    • None
    • 5
    • Storage - Ra 2021-09-20, Storage - Ra 2021-11-01, Storage - Ra 2021-11-15, Storage - Ra 2021-11-29
    • v5.1, v5.0, v4.4

    Description

      Splitting work off from WT-7853 to make the intent of the change a bit more specific and allow for deliberate back-porting of one half and not the other half or vice versa. We would like to be able to panic in reconciliation if we fail to insert content to the history store in all cases, and possible in further code paths in reconciliation after we've done history store inserts.

      The actual time we panic and what scenarios we panic in should be clearly defined on this ticket and implemented as part of it.

      Currently I have two suggestions:

      1. Panic after failing to do any history store insertion.
      2. Set a flag on reconciliation that will panic if it fails during the history store insertion or after it, e.g. in the page split code.

      Suggestion 1 implies that it's okay to fail later in reconciliation and not panic as we've successfully done all of the history work, which should avoid and uncertainty about whether we've flagged WT_UPDATE_DS or WT_UPDATE_HS successfully.

      Suggestion 2 is more of a catch all failure suggestion in that if we did do any history store work its not okay to fail the reconciliation ever subsequently.

      Attachments

        Issue Links

          Activity

            People

              luke.pearson@mongodb.com Luke Pearson
              luke.pearson@mongodb.com Luke Pearson
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: