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

Verify log file versions before opening logging subsystem

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 3.6.6, 4.0.0-rc0, WT3.1.0
    • Component/s: None
    • Labels:
      None
    • Sprint:
      Storage Non-NYC 2018-05-21
    • Backport Requested:
      v3.6

      Description

      It would be helpful to detect that a binary cannot read the log files before it opens the logging subsystem and this restart creates the new log. We now have the infrastructure in the code to verify the log files from WT-4056.

      One problematic scenario motivating this work:

      • User running at MongoDB 4.0 (i.e. WT version 3.1) with compatibility required 3.1. Shutdown MongoDB.
      • User starts database with a 3.6 binary (i.e. WT version 3.0). WT currently creates a version 3.0 log file before recovery opens and detects the version 3.1 log file is newer and in the future and errors.
      • Restarting database on MongoDB 4.0 with compatibilty req 3.1 fails due to the version 3.0 log file that was created.
      • End result is that no binary can now start on the database in this situation.

      In wt_log_open we call log_open_verify only if we're validating a minimum required compatibility version. Relax that to always call the verify function.

        Attachments

          Activity

            People

            Assignee:
            sue.loverso Susan LoVerso
            Reporter:
            sue.loverso Susan LoVerso
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: