• L
    Fix data races in BlobDB (#5698) · 0a97125e
    Levi Tamasi 提交于
    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
    0a97125e
blob_db_impl.cc 65.3 KB