rocksdb/util
Mike Kolupaev 397ab11152 Improve Status message for block checksum mismatches
Summary:
We've got some DBs where iterators return Status with message "Corruption: block checksum mismatch" all the time. That's not very informative. It would be much easier to investigate if the error message contained the file name - then we would know e.g. how old the corrupted file is, which would be very useful for finding the root cause. This PR adds file name, offset and other stuff to some block corruption-related status messages.

It doesn't improve all the error messages, just a few that were easy to improve. I'm mostly interested in "block checksum mismatch" and "Bad table magic number" since they're the only corruption errors that I've ever seen in the wild.
Closes https://github.com/facebook/rocksdb/pull/2507

Differential Revision: D5345702

Pulled By: al13n321

fbshipit-source-id: fc8023d43f1935ad927cef1b9c55481ab3cb1339
2017-06-28 21:27:01 -07:00
..
aligned_buffer.h Make direct I/O write use incremental buffer 2017-06-13 04:41:37 -07:00
allocator.h Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
arena.cc Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
arena.h Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
arena_test.cc Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
auto_roll_logger.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
auto_roll_logger.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
auto_roll_logger_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
autovector.h Address MS Visual Studio 2017 issue with autovector 2017-05-22 10:57:06 -07:00
autovector_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
bloom.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
bloom_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
build_version.cc.in Makefile: generate util/build_version.cc from .in file (#1384) 2016-10-25 11:31:39 -07:00
build_version.h fixed typo 2017-06-05 11:27:34 -07:00
channel.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
coding.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
coding.h Avoid unsupported attributes when not building with UBSAN 2017-05-30 11:13:01 -07:00
coding_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
compaction_job_stats_impl.cc Single Delete Mismatch and Fallthrough statistics 2016-08-16 08:21:43 -07:00
comparator.cc do not read next datablock if upperbound is reached 2017-05-05 23:20:01 -07:00
compression.h Remove use of deprecated LZ4 function 2016-11-21 12:24:14 -08:00
concurrent_arena.cc Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
concurrent_arena.h Improve write buffer manager (and allow the size to be tracked in block cache) 2017-06-02 14:26:56 -07:00
core_local.h Core-local statistics 2017-05-23 10:42:59 -07:00
crc32c.cc cross-platform compatibility improvements 2017-05-15 16:15:38 -07:00
crc32c.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
crc32c_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
delete_scheduler.cc Limit trash directory to be 25% of total DB 2017-06-12 16:57:21 -07:00
delete_scheduler.h Limit trash directory to be 25% of total DB 2017-06-12 16:57:21 -07:00
delete_scheduler_test.cc Limit trash directory to be 25% of total DB 2017-06-12 16:57:21 -07:00
dynamic_bloom.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
dynamic_bloom.h fixed typo in util/dynamic_bloom.h 2017-06-13 16:41:36 -07:00
dynamic_bloom_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
event_logger.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
event_logger.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
event_logger_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
fault_injection_test_env.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
fault_injection_test_env.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
file_reader_writer.cc Call RateLimiter for compaction reads 2017-06-13 14:56:46 -07:00
file_reader_writer.h Improve Status message for block checksum mismatches 2017-06-28 21:27:01 -07:00
file_reader_writer_test.cc Make direct I/O write use incremental buffer 2017-06-13 04:41:37 -07:00
file_util.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
file_util.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
filelock_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
filename.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
filename.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
filter_policy.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
hash.cc Avoid unsupported attributes when not building with UBSAN 2017-05-30 11:13:01 -07:00
hash.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
hash_map.h Use more efficient hash map for deadlock detection 2016-11-19 11:39:15 -08:00
heap.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
heap_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
kv_map.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
log_buffer.cc travis: add Windows cross-compilation 2017-05-05 23:20:01 -07:00
log_buffer.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
log_write_bench.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
logging.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
memory_usage.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
mpsc.h Blob storage pr 2017-05-10 15:14:44 -07:00
murmurhash.cc Optimize for serial commits in 2PC 2017-06-24 14:11:29 -07:00
murmurhash.h Optimize for serial commits in 2PC 2017-06-24 14:11:29 -07:00
mutexlock.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
random.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
random.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
rate_limiter.cc Call RateLimiter for compaction reads 2017-06-13 14:56:46 -07:00
rate_limiter.h Call RateLimiter for compaction reads 2017-06-13 14:56:46 -07:00
rate_limiter_test.cc Do not run RateLimiterTest.Rate test on Travis+Mac OSX. 2017-06-14 14:58:02 -07:00
slice.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
slice_transform_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
sst_file_manager_impl.cc Limit trash directory to be 25% of total DB 2017-06-12 16:57:21 -07:00
sst_file_manager_impl.h Limit trash directory to be 25% of total DB 2017-06-12 16:57:21 -07:00
status.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
status_message.cc Limit maximum memory used in the WriteBatch representation 2017-04-10 15:42:26 -07:00
stderr_logger.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
stop_watch.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
string_util.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
string_util.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
sync_point.cc disable direct reads for log and manifest and add direct io to tests 2017-05-22 18:41:28 -07:00
sync_point.h disable direct reads for log and manifest and add direct io to tests 2017-05-22 18:41:28 -07:00
testharness.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
testharness.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
testutil.cc Improve Status message for block checksum mismatches 2017-06-28 21:27:01 -07:00
testutil.h Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
thread_list_test.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
thread_local.cc Add GPLv2 as an alternative license. 2017-04-27 18:06:12 -07:00
thread_local.h cross-platform compatibility improvements 2017-05-15 16:15:38 -07:00
thread_local_test.cc revert perf_context and io_stats to __thread 2017-06-26 15:27:17 -07:00
thread_operation.h Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
threadpool_imp.cc New API for background work in single thread pool 2017-05-23 11:12:27 -07:00
threadpool_imp.h fixed typo 2017-06-13 16:58:01 -07:00
timer_queue.h Implement ReopenWritibaleFile on Windows and other fixes 2017-06-20 10:31:13 -07:00
timer_queue_test.cc Blob storage pr 2017-05-10 15:14:44 -07:00
transaction_test_util.cc Optimize for serial commits in 2PC 2017-06-24 14:11:29 -07:00
transaction_test_util.h Optimize for serial commits in 2PC 2017-06-24 14:11:29 -07:00
xxhash.cc fixed typo 2017-06-05 11:27:34 -07:00
xxhash.h Prevent xxhash symbols from polluting global namespace 2015-03-12 12:07:10 -07:00