Unable to run wt tool to verify palite-backed database

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Engines - Foundations
    • 949.846
    • None
    • None

      Unable to run wt tool to verify the palite-backed database on this patch task: Spruce logs. Patch-linked run appears affected.

      Summary

      Palite materialization filter uses steady_clock; DBs unreadable after reboot

      Description

      After a host reboot, opening a palite-backed disagg database can fail even though page-log data is intact. plh_get returns 0 entries for pages that exist in SQLite, and open/verify aborts.

      Root cause

      GET_PAGES filters with timestamp_materialized_us <= now_us(), and now_us() uses steady_clock (boot-relative). Timestamps from the previous uptime are larger than the post-reboot clock, so every page looks unmaterialized.

      Example: stored ~1.49e10 vs now_us() ~1.3e9 → 0 rows, despite the page being present in pages_*.db.

      Existing knobs do not help:

      • disaggregated.last_materialized_lsn — WT frontier only
      • materialization_delay_ms — writes only
      • palite last_materialized_lsn — unused on get

      Impact

      wt verify, wt list, and format -v -R cannot reopen intact palite RUNDIRs after reboot.

      Acceptance

      Post-reboot open/verify works on an intact palite DB without mutating page-log files. 

      Workaround

      None via config. Manually zeroing timestamp_materialized_us in pages_*.db restores reads but mutates the DB.

            Assignee:
            Sean Watt
            Reporter:
            Sid Mahajan
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: