Commit 40dae01
committed
[yugabyte#27594] docdb: sst_dump output and logging improvements for check_data_blocks command
Summary:
Implemented the following improvements for check_data_blocks command output and logging:
- Include data block number
- Include data block index key
- For generated `dd` commands distinguish between data blocks which are corrupt vs ones which are before/after corrupted region but consistent themselves
Jira: DB-17170
Test Plan:
Tested manually on artificially corrupted SST file:
```
[timur@dev-server-timur tablet-6e27439238ea4f4aa23c013d0ab55931]$ ./sst_dump --command=check_data_blocks --file=000046.sst 2>&1 | tee sst_dump.out
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0610 18:13:52.752576 204553 sst_dump_tool.cc:452] Checking data block #0 handle: BlockHandle { offset: 0 size: 3927 }
W0610 18:13:52.756827 204553 file_reader_writer.cc:101] Read attempt #1 failed in file 000046.sst.sblock.0 : Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 996452 size: 4024 }, expected checksum: 1118200703, actual checksum: 1023486239.
W0610 18:13:52.756884 204553 file_reader_writer.cc:101] Read attempt #2 failed in file 000046.sst.sblock.0 : Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 996452 size: 4024 }, expected checksum: 1118200703, actual checksum: 1023486239.
W0610 18:13:52.756889 204553 format.cc:466] ReadBlockContents: Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 996452 size: 4024 }, expected checksum: 1118200703, actual checksum: 1023486239.
W0610 18:13:52.756894 204553 sst_dump_tool.cc:460] Failed to read data block yugabyte#247 (index_key: 305482E7904980000000000024D107FFFFFFFFFFFFFF), block handle: BlockHandle { offset: 996452 size: 4024 }. Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 996452 size: 4024 }, expected checksum: 1118200703, actual checksum: 1023486239.
from [] to []
Process 000046.sst
Sst file format: block-based
dd if="000046.sst.sblock.0" bs=1 skip=992433 count=4014 of="000046.sst.sblock.0.block_246.offset_992433.size_4014.part.prev" # Data block yugabyte#246 index_key: 305482E7904980000000000024AB07FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=996452 count=4024 of="000046.sst.sblock.0.block_247.offset_996452.size_4024.part.corrupt" # Data block yugabyte#247 index_key: 305482E7904980000000000024D107FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=1000481 count=4019 of="000046.sst.sblock.0.block_248.offset_1000481.size_4019.part.next" # Data block yugabyte#248 index_key: 305482E7904980000000000024F707FFFFFFFFFFFFFF
W0610 18:13:53.201548 204553 file_reader_writer.cc:101] Read attempt #1 failed in file 000046.sst.sblock.0 : Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119695806 size: 11770 }, expected checksum: 2324967102, actual checksum: 2577758987.
W0610 18:13:53.201601 204553 file_reader_writer.cc:101] Read attempt #2 failed in file 000046.sst.sblock.0 : Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119695806 size: 11770 }, expected checksum: 2324967102, actual checksum: 2577758987.
W0610 18:13:53.201606 204553 format.cc:466] ReadBlockContents: Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119695806 size: 11770 }, expected checksum: 2324967102, actual checksum: 2577758987.
W0610 18:13:53.201610 204553 sst_dump_tool.cc:460] Failed to read data block yugabyte#27462 (index_key: 30C33B7F8D4980000000000F30EC07FFFFFFFFFFFFFF), block handle: BlockHandle { offset: 119695806 size: 11770 }. Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119695806 size: 11770 }, expected checksum: 2324967102, actual checksum: 2577758987.
dd if="000046.sst.sblock.0" bs=1 skip=119684040 count=11761 of="000046.sst.sblock.0.block_27461.offset_119684040.size_11761.part.prev" # Data block yugabyte#27461 index_key: 30C33B7F8D4980000000000F2D8707FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=119695806 count=11770 of="000046.sst.sblock.0.block_27462.offset_119695806.size_11770.part.corrupt" # Data block yugabyte#27462 index_key: 30C33B7F8D4980000000000F30EC07FFFFFFFFFFFFFF
W0610 18:13:53.201637 204553 file_reader_writer.cc:101] Read attempt #1 failed in file 000046.sst.sblock.0 : Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119707581 size: 11779 }, expected checksum: 2324967102, actual checksum: 4201726259.
W0610 18:13:53.201644 204553 file_reader_writer.cc:101] Read attempt #2 failed in file 000046.sst.sblock.0 : Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119707581 size: 11779 }, expected checksum: 2324967102, actual checksum: 4201726259.
W0610 18:13:53.201648 204553 format.cc:466] ReadBlockContents: Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119707581 size: 11779 }, expected checksum: 2324967102, actual checksum: 4201726259.
W0610 18:13:53.201651 204553 sst_dump_tool.cc:460] Failed to read data block yugabyte#27463 (index_key: 30C33B7F8D4980000000000F345207FFFFFFFFFFFFFF), block handle: BlockHandle { offset: 119707581 size: 11779 }. Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119707581 size: 11779 }, expected checksum: 2324967102, actual checksum: 4201726259.
dd if="000046.sst.sblock.0" bs=1 skip=119707581 count=11779 of="000046.sst.sblock.0.block_27463.offset_119707581.size_11779.part.corrupt" # Data block yugabyte#27463 index_key: 30C33B7F8D4980000000000F345207FFFFFFFFFFFFFF
W0610 18:13:53.201665 204553 file_reader_writer.cc:101] Read attempt #1 failed in file 000046.sst.sblock.0 : Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119719365 size: 11745 }, expected checksum: 632490478, actual checksum: 639140170.
W0610 18:13:53.201674 204553 file_reader_writer.cc:101] Read attempt #2 failed in file 000046.sst.sblock.0 : Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119719365 size: 11745 }, expected checksum: 632490478, actual checksum: 639140170.
W0610 18:13:53.201679 204553 format.cc:466] ReadBlockContents: Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119719365 size: 11745 }, expected checksum: 632490478, actual checksum: 639140170.
W0610 18:13:53.201684 204553 sst_dump_tool.cc:460] Failed to read data block yugabyte#27464 (index_key: 30C33B7F8D4980000000000F37B707FFFFFFFFFFFFFF), block handle: BlockHandle { offset: 119719365 size: 11745 }. Corruption (yb/rocksdb/table/format.cc:345): Block checksum mismatch in file: 000046.sst.sblock.0, block handle: BlockHandle { offset: 119719365 size: 11745 }, expected checksum: 632490478, actual checksum: 639140170.
dd if="000046.sst.sblock.0" bs=1 skip=119719365 count=11745 of="000046.sst.sblock.0.block_27464.offset_119719365.size_11745.part.corrupt" # Data block yugabyte#27464 index_key: 30C33B7F8D4980000000000F37B707FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=119731115 count=11781 of="000046.sst.sblock.0.block_27465.offset_119731115.size_11781.part.next" # Data block yugabyte#27465 index_key: 30C33B7F8D4980000000000F3B1C07FFFFFFFFFFFFFF
```
```
[timur@dev-server-timur tablet-6e27439238ea4f4aa23c013d0ab55931]$ cat sst_dump.out | grep dd
dd if="000046.sst.sblock.0" bs=1 skip=992433 count=4014 of="000046.sst.sblock.0.block_246.offset_992433.size_4014.part.prev" # Data block yugabyte#246 index_key: 305482E7904980000000000024AB07FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=996452 count=4024 of="000046.sst.sblock.0.block_247.offset_996452.size_4024.part.corrupt" # Data block yugabyte#247 index_key: 305482E7904980000000000024D107FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=1000481 count=4019 of="000046.sst.sblock.0.block_248.offset_1000481.size_4019.part.next" # Data block yugabyte#248 index_key: 305482E7904980000000000024F707FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=119684040 count=11761 of="000046.sst.sblock.0.block_27461.offset_119684040.size_11761.part.prev" # Data block yugabyte#27461 index_key: 30C33B7F8D4980000000000F2D8707FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=119695806 count=11770 of="000046.sst.sblock.0.block_27462.offset_119695806.size_11770.part.corrupt" # Data block yugabyte#27462 index_key: 30C33B7F8D4980000000000F30EC07FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=119707581 count=11779 of="000046.sst.sblock.0.block_27463.offset_119707581.size_11779.part.corrupt" # Data block yugabyte#27463 index_key: 30C33B7F8D4980000000000F345207FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=119719365 count=11745 of="000046.sst.sblock.0.block_27464.offset_119719365.size_11745.part.corrupt" # Data block yugabyte#27464 index_key: 30C33B7F8D4980000000000F37B707FFFFFFFFFFFFFF
dd if="000046.sst.sblock.0" bs=1 skip=119731115 count=11781 of="000046.sst.sblock.0.block_27465.offset_119731115.size_11781.part.next" # Data block yugabyte#27465 index_key: 30C33B7F8D4980000000000F3B1C07FFFFFFFFFFFFFF
```
Reviewers: arybochkin
Reviewed By: arybochkin
Subscribers: ybase
Tags: #jenkins-ready
Differential Revision: https://phorge.dev.yugabyte.com/D446921 parent 59d6f53 commit 40dae01
1 file changed
Lines changed: 42 additions & 22 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| 57 | + | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
| |||
337 | 338 | | |
338 | 339 | | |
339 | 340 | | |
| 341 | + | |
340 | 342 | | |
341 | 343 | | |
342 | 344 | | |
| |||
386 | 388 | | |
387 | 389 | | |
388 | 390 | | |
389 | | - | |
390 | | - | |
391 | | - | |
392 | | - | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
393 | 410 | | |
394 | 411 | | |
395 | 412 | | |
| |||
411 | 428 | | |
412 | 429 | | |
413 | 430 | | |
414 | | - | |
415 | | - | |
416 | | - | |
| 431 | + | |
| 432 | + | |
417 | 433 | | |
418 | 434 | | |
419 | | - | |
420 | | - | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
421 | 438 | | |
422 | 439 | | |
423 | | - | |
| 440 | + | |
424 | 441 | | |
425 | | - | |
426 | | - | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
427 | 446 | | |
428 | 447 | | |
429 | 448 | | |
430 | 449 | | |
431 | 450 | | |
432 | 451 | | |
433 | | - | |
434 | | - | |
| 452 | + | |
| 453 | + | |
435 | 454 | | |
436 | 455 | | |
437 | 456 | | |
438 | | - | |
439 | | - | |
| 457 | + | |
| 458 | + | |
440 | 459 | | |
441 | | - | |
442 | | - | |
443 | | - | |
444 | | - | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
445 | 465 | | |
446 | | - | |
| 466 | + | |
447 | 467 | | |
448 | 468 | | |
449 | 469 | | |
450 | | - | |
| 470 | + | |
451 | 471 | | |
452 | 472 | | |
453 | 473 | | |
| |||
0 commit comments