Support decoding multiple page byte dumps from a single file

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Tools
    • None

      Disagg pages can be fetched from SLS for decoding. These pages will be of varying sizes and unaligned to any byte boundary. We should support decoding multiple page dumps from a single file to inspect multiple pages such as a delta chain. This will also be useful should we choose to dump an entire delta chain if a single page in the chain is corrupted.
      Example delta chain from WiredTiger logs:

      [1765258643:985883][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: 111, 67, 0x16cc8b27}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 43 00 00 00 02 00 00 00 06 20 00 01 db 01 01 2c 27 8b cc 16 00 00 00 00 01 00 00 00 05 00 38 2a c0 24 a5 8a 8e 00 c0 24 81 c0 29 c0 28 c0 00 54 79 ba 6c 
      [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 
      [1765258643:986026][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, 63, 0xd449f224}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 3f 00 00 00 02 00 00 00 07 00 00 00 dd 01 01 2c 24 f2 49 d4 a1 53 4b 09 01 00 00 00 09 30 00 8c 28 c0 2d a2 80 89 87 62 62 62 30 2d 39 00 00 
      [1765258643:986052][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, 63, 0x94b53a1}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 3f 00 00 00 02 00 00 00 07 00 00 00 dd 01 01 2c a1 53 4b 09 53 28 77 5b 01 00 00 00 09 30 00 8c 28 c0 2c 9f 80 89 87 62 62 62 30 2d 38 00 00 
      [1765258643:986067][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, 63, 0x5b772853}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 3f 00 00 00 02 00 00 00 07 00 00 00 dd 01 01 2c 53 28 77 5b 68 87 7a 8a 01 00 00 00 09 30 00 8c 28 c0 2b 9c 80 89 87 62 62 62 30 2d 37 00 00 
      [1765258643:986082][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, 63, 0x8a7a8768}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 3f 00 00 00 02 00 00 00 07 00 00 00 dd 01 01 2c 68 87 7a 8a cb 3f 93 d2 01 00 00 00 09 30 00 8c 28 c0 2a 99 80 89 87 62 62 62 30 2d 36 00 00 
      [1765258643:986097][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, 63, 0xd2933fcb}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 3f 00 00 00 02 00 00 00 07 00 00 00 dd 01 01 2c cb 3f 93 d2 5a c3 21 0f 01 00 00 00 09 30 00 8c 28 c0 29 96 80 89 87 62 62 62 30 2d 35 00 00 
      [1765258643:986111][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, 63, 0xf21c35a}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 3f 00 00 00 02 00 00 00 07 00 00 00 dd 01 01 2c 5a c3 21 0f c3 d9 3c 3c 01 00 00 00 09 30 00 8c 28 c0 28 93 80 89 87 62 62 62 30 2d 34 00 00 
      [1765258643:986128][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, 63, 0x3c3cd9c3}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 3f 00 00 00 02 00 00 00 07 00 00 00 dd 01 01 2c c3 d9 3c 3c 49 77 0c 45 01 00 00 00 09 30 00 8c 28 c0 27 90 80 89 87 62 62 62 30 2d 33 00 00 
      [1765258643:986142][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, 63, 0x450c7749}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 3f 00 00 00 02 00 00 00 07 00 00 00 dd 01 01 2c 49 77 0c 45 db bb a1 49 01 00 00 00 09 30 00 8c 28 c0 26 8d 80 89 87 62 62 62 30 2d 32 00 00 
      [1765258643:986156][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, 63, 0x49a1bbdb}: (chunk 1 of 1): 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 3f 00 00 00 02 00 00 00 07 00 00 00 dd 01 01 2c db bb a1 49 8e 47 e2 ff 01 00 00 00 09 30 00 8c 28 c0 25 8a 80 89 87 62 62 62 30 2d 31 00 00 
      

            Assignee:
            Sean Watt
            Reporter:
            Sean Watt
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: