You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Levi Tamasi
db536ee045
Propagate errors from UpdateBoundaries ( #9851 )
...
Summary:
In `FileMetaData`, we keep track of the lowest-numbered blob file
referenced by the SST file in question for the purposes of BlobDB's
garbage collection in the `oldest_blob_file_number` field, which is
updated in `UpdateBoundaries`. However, with the current code,
`BlobIndex` decoding errors (or invalid blob file numbers) are swallowed
in this method. The patch changes this by propagating these errors
and failing the corresponding flush/compaction. (Note that since blob
references are generated by the BlobDB code and also parsed by
`CompactionIterator`, in reality this can only happen in the case of
memory corruption.)
This change necessitated updating some unit tests that involved
fake/corrupt `BlobIndex` objects. Some of these just used a dummy string like
`"blob_index"` as a placeholder; these were replaced with real `BlobIndex`es.
Some were relying on the earlier behavior to simulate corruption; these
were replaced with `SyncPoint`-based test code that corrupts a valid
blob reference at read time.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/9851
Test Plan: `make check`
Reviewed By: riversand963
Differential Revision: D35683671
Pulled By: ltamasi
fbshipit-source-id: f7387af9945c48e4d5c4cd864f1ba425c7ad51f6
3 years ago
..
backup
Fix remaining uses of "backupable" ( #9792 )
3 years ago
blob_db
Propagate errors from UpdateBoundaries ( #9851 )
3 years ago
cassandra
Restore Regex support for ObjectLibrary::Register, rename new APIs to allow old one to be deprecated in the future ( #9362 )
3 years ago
checkpoint
Add Temperature info in `NewSequentialFile()` ( #9499 )
3 years ago
compaction_filters
Make MergeOperator+CompactionFilter/Factory into Customizable Classes ( #8481 )
3 years ago
convenience
Add a SystemClock class to capture the time functions of an Env ( #7858 )
4 years ago
leveldb_options
Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE ( #6433 )
5 years ago
memory
Make types of Immutable/Mutable Options fields match that of the underlying Option ( #8176 )
4 years ago
merge_operators
Remove using namespace ( #9369 )
3 years ago
option_change_migration
Fix some typos in comments and HISTORY.md ( #9798 )
3 years ago
options
Allow WAL dir to change with db dir ( #8582 )
3 years ago
persistent_cache
Add rate limiter priority to ReadOptions ( #9424 )
3 years ago
simulator_cache
Update Cache::Release param from force_erase to erase_if_last_ref ( #9728 )
3 years ago
table_properties_collectors
Restore Regex support for ObjectLibrary::Register, rename new APIs to allow old one to be deprecated in the future ( #9362 )
3 years ago
trace
Add rate limiter priority to ReadOptions ( #9424 )
3 years ago
transactions
Meta-internal folly integration with F14FastMap ( #9546 )
3 years ago
ttl
Work around some new clang-analyze failures ( #9515 )
3 years ago
write_batch_with_index
Support WBWI for keys having timestamps ( #9603 )
3 years ago
cache_dump_load.cc
Introduce a mechanism to dump out blocks from block cache and re-insert to secondary cache ( #8912 )
3 years ago
cache_dump_load_impl.cc
New stable, fixed-length cache keys ( #9126 )
3 years ago
cache_dump_load_impl.h
Meta-internal folly integration with F14FastMap ( #9546 )
3 years ago
compaction_filters.cc
Restore Regex support for ObjectLibrary::Register, rename new APIs to allow old one to be deprecated in the future ( #9362 )
3 years ago
counted_fs.cc
Introduce a CountedFileSystem for counting file operations ( #9283 )
3 years ago
counted_fs.h
Introduce a CountedFileSystem for counting file operations ( #9283 )
3 years ago
debug.cc
In ParseInternalKey(), include corrupt key info in Status ( #7515 )
4 years ago
env_mirror.cc
Fix clang13 build error ( #9374 )
3 years ago
env_mirror_test.cc
Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE ( #6433 )
5 years ago
env_timed.cc
Make FileSystem a Customizable Class ( #8649 )
3 years ago
env_timed.h
Make FileSystem a Customizable Class ( #8649 )
3 years ago
env_timed_test.cc
Make env*_test work with ASSERT_STATUS_CHECKED ( #7176 )
4 years ago
fault_injection_env.cc
Protect existing files in `FaultInjectionTest{Env,FS}::ReopenWritableFile()` ( #8995 )
3 years ago
fault_injection_env.h
Make the Env class Customizable ( #9293 )
3 years ago
fault_injection_fs.cc
Skip directory fsync for filesystem btrfs ( #8903 )
3 years ago
fault_injection_fs.h
Fix a bug causing duplicate trailing entries in WritableFile (buffered IO) ( #9236 )
3 years ago
fault_injection_secondary_cache.cc
Prevent double caching in the compressed secondary cache ( #9747 )
3 years ago
fault_injection_secondary_cache.h
Prevent double caching in the compressed secondary cache ( #9747 )
3 years ago
memory_allocators.h
Make MemoryAllocator into a Customizable class ( #8980 )
3 years ago
merge_operators.cc
Restore Regex support for ObjectLibrary::Register, rename new APIs to allow old one to be deprecated in the future ( #9362 )
3 years ago
merge_operators.h
Make MergeOperator+CompactionFilter/Factory into Customizable Classes ( #8481 )
3 years ago
object_registry.cc
Plugin Registry ( #7949 )
3 years ago
object_registry_test.cc
Plugin Registry ( #7949 )
3 years ago
util_merge_operators_test.cc
Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE ( #6433 )
5 years ago
wal_filter.cc
Make WalFilter, SstPartitionerFactory, FileChecksumGenFactory, and TableProperties Customizable ( #8638 )
3 years ago