rocksdb/env
anand76 ee258619be Fix missing cases of corruption retries (#13122)
Summary:
This PR fixes a few cases where RocksDB was not retrying checksum failure/corruption of file reads with the `verify_and_reconstruct_read` IO option. After fixing these cases, we can almost always successfully open the DB and execute reads even if we see transient corruptions, provided the `FileSystem` supports the `verify_and_reconstruct_read` option. The specific cases fixed in this PR are -
1. CURRENT file
2. IDENTITY file
3. OPTIONS file
4. SST footer

Pull Request resolved: https://github.com/facebook/rocksdb/pull/13122

Test Plan: Unit test in `db_io_failure_test.cc` that injects corruption at various stages of DB open and reads

Reviewed By: jaykorean

Differential Revision: D65617982

Pulled By: anand1976

fbshipit-source-id: 4324b88cc7eee5501ab5df20ef7a95bb12ed3ea7
2024-11-08 12:43:21 -08:00
..
composite_env.cc
composite_env_wrapper.h
emulated_clock.h
env.cc
env_basic_test.cc
env_chroot.cc
env_chroot.h
env_encryption.cc
env_encryption_ctr.h
env_posix.cc
env_test.cc
file_system.cc
file_system_tracer.cc
file_system_tracer.h
fs_on_demand.cc
fs_on_demand.h
fs_posix.cc
fs_readonly.h
fs_remap.cc
fs_remap.h
io_posix.cc
io_posix.h
io_posix_test.cc
mock_env.cc
mock_env.h
mock_env_test.cc
unique_id_gen.cc
unique_id_gen.h