ExportXMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • WT12.0.0, 9.1.0-rc0
    • Affects Version/s: None
    • Component/s: Verify
    • None
    • Storage Engines, Storage Engines - Transactions
    • 0.006
    • None
    • None

      Symptom

      Disaggregated follower verification intermittently fails in test_verify_disagg.test_verify_disagg(empty.palite) with EINVAL: __time_value_validate_parent_stable reports "time window has a durable start time after the stable point with an empty parent aggregate time window". In BFG-3680460 the cell durable start is 26737; in BFG-3675814 it is 27034. The checkpoint-authored parent time aggregate is empty, and the follower has no stable timestamp set (0). These are distinct from the historical WT-15901 error where a value start precedes a non-empty parent aggregate oldest_start.

      Affected task IDs:

      • BFG-3680460: wiredtiger_ubuntu2004_nonstandalone_unit_test_bucket01_91f28f0e3befa4a368555687c0f998db675be980_26_09_25_16_42_51
      • BFG-3675814: wiredtiger_ubuntu2004_arm64_unit_test_3c946ab7f1cc3a06f742d222615c7ca5fc899eea_26_09_23_23_59_37

      Reproducer

      In the WT-15901 investigation worktree, test/suite/test_verify_disagg07.py creates a leader full image, checkpoints a leaf delta, advances the follower to the checkpoint without setting the follower stable timestamp, checks that a delta was written and that both leader verify and follower data reads work, then calls follower verify. Run from build/: python ../test/suite/run.py test_verify_disagg07. Full-image control passes; delta scenario fails with stable time (0, 0) and cell durable start 10 against an empty parent aggregate. This is a deterministic regression reproducer, not evidence of data corruption.

      Investigation and expected result

      The leaf verifier detects a delta-reconstructed page, but _wt_time_value_validate routes an empty parent aggregate to _time_value_validate_parent_stable, which compares with the follower connection's live stable timestamp (unset, 0). The exact reason the checkpoint writer emitted an empty aggregate while this reconstructed cell retained a timestamp has not yet been isolated; do not assume all such errors are harmless. Verify should accept legitimate delta-reconstructed checkpoint data without relaxing real-corruption checks on ordinary full pages. Investigate the checkpoint visibility context and add a regression test that fails before and passes after the fix. Related broader verification-policy work: WT-18675. WT-15901 tracks the separate historical non-empty-parent failure, reproduced on 5600e127 and no longer reproduced on current code.

            Assignee:
            Shoufu Du
            Reporter:
            Shoufu Du
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: