0a97125ec0
Summary: Some accesses to blob_files_ and open_ttl_files_ in BlobDBImpl, as well as to expiration_range_ in BlobFile were not properly synchronized. The patch fixes this and also makes sure the invariant that obsolete_files_ is a subset of blob_files_ holds even when an attempt to delete an obsolete blob file fails. Pull Request resolved: https://github.com/facebook/rocksdb/pull/5698 Test Plan: COMPILE_WITH_TSAN=1 make blob_db_test gtest-parallel --repeat=1000 ./blob_db_test --gtest_filter="*ShutdownWait*" The test fails with TSAN errors ~20 times out of 1000 without the patch but completes successfully 1000 out of 1000 times with the fix. Differential Revision: D16793235 Pulled By: ltamasi fbshipit-source-id: 8034b987598d4fdc9f15098d4589cc49cde484e9 |
||
---|---|---|
.. | ||
blob_compaction_filter.cc | ||
blob_compaction_filter.h | ||
blob_db_impl_filesnapshot.cc | ||
blob_db_impl.cc | ||
blob_db_impl.h | ||
blob_db_iterator.h | ||
blob_db_listener.h | ||
blob_db_test.cc | ||
blob_db.cc | ||
blob_db.h | ||
blob_dump_tool.cc | ||
blob_dump_tool.h | ||
blob_file.cc | ||
blob_file.h | ||
blob_index.h | ||
blob_log_format.cc | ||
blob_log_format.h | ||
blob_log_reader.cc | ||
blob_log_reader.h | ||
blob_log_writer.cc | ||
blob_log_writer.h |