-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Tools
-
None
-
Storage Engines, Storage Engines - Persistence
-
SE Persistence - 2025-12-19
-
3
The wt_binary_decode tool added a --disagg option to decode disagg pages. However, the header decoding has not been updated to reflect the latest data format changes. We need to update the header decoding to correctly decode WT_BLOCK_DISAGG_HEADER.
Example delta page:
[1765258643:986002][7884:0x7fa6eefc4540], file:test_layered18.wt_stable/WiredTigerCheckpoint.11, WT_CURSOR.search: [WT_VERB_DEFAULT][ERROR]: int __wt_bm_corrupt_dump(WT_SESSION_IMPL *, WT_ITEM *, uint32_t, wt_off_t, uint32_t, uint32_t), 91: {0: 100, 64, 0x6cba7954}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 40 00 00 00 02 00 00 00 07 00 00 00 dd 01 01 2c 54 79 ba 6c 24 f2 49 d4 01 00 00 00 09 30 00 8c 28 c0 2e a5 80 8a 88 62 62 62 30 2d 31 30 00 00
Current output:
./wt_binary_decode.py --disagg --dumpin --verbose ../page.txt
LINE (len=128): 00000000000000001600000000000000400000000200000007000000dd01012c5479ba6c24f249d4010000000930008c28c02ea5808a88626262302d31300000 first=0, last=0 Decode at 0 (0x0) Page Header: recno: 0 writegen: 22 memsize: 64 ncells (oflow len): 2 page type: 7 (WT_PAGE_ROW_LEAF) page flags: 0x0 version: 0 Block Header: disk_size: 64 checksum: 0x6cba7954 block flags: 0x0 0: desc: 0x9 short key 2 bytes: "0" 1: desc: 0x8c extra: 0x28 cell has timestamps: start ts: 0x6e start txn: 0x25 runlength/addr: 0 (0x0) val 10 bytes: "<packed 8 (0x8)> bbb0-10"