ExportXMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • WT12.0.0
    • Affects Version/s: None
    • Component/s: Checkpoints
    • None
    • Storage Engines, Storage Engines - Persistence
    • 0.008
    • StorEng - Defined Pipeline
    • None

      `__wt_checkpoint_file` establishes the checkpoint time before parsing the configuration:

      standalone = session->ckpt.current_sec == 0;
      if (standalone)
          __checkpoint_establish_time(session);
      
      WT_RET(__wt_config_gets_def(session, cfg, "force", 0, &cval));
      

      If the parse fails, `WT_RET` returns before the `done:` label, so `__checkpoint_clear_time` is not called and `session->ckpt.current_sec` is left set.

      A later file checkpoint on the same session then sees `standalone == false`, skips establishing a new time, and reuses the stale value (stored as the checkpoint's `sec`). A later `__checkpoint_establish_time` can also trip its `current_sec == 0` assertion.

      Fix: parse the configuration before establishing the time, or route the parse error through `done:`.

      Found while reviewing PR #14877 (WT-18064), which fixes this as a side effect by moving the parse earlier.

            Assignee:
            Etienne Petrel
            Reporter:
            Etienne Petrel
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: