rocksdb/db/db_impl
Yanqin Jin 4ae8687e88 Fix TSAN caused by calling rend() and pop_front(). (#9698)
Summary:
PR9686 makes `WriteToWAL()` call `assert(...!=rend())` while not holding
db mutex or log mutex. Another thread may concurrently call
`pop_front()`, causing race condition.
To fix, assert only if mutex is held.

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

Test Plan: COMPILE_WITH_TSAN=1 make check

Reviewed By: jay-zhuang

Differential Revision: D34898535

Pulled By: riversand963

fbshipit-source-id: 1ddfa5bf1b6ae8d409cab6ff6e1b5321c6803da9
2022-03-29 12:43:09 -07:00
..
compacted_db_impl.cc Fix a timer crash caused by invalid memory management (#9656) 2022-03-12 22:10:28 -08:00
compacted_db_impl.h Move compacted_db_impl.[c|h] to db/db_impl (#8082) 2021-03-23 13:49:26 -07:00
db_impl_compaction_flush.cc Fix a race condition when disable and enable manual compaction (#9694) 2022-03-29 12:36:27 -07:00
db_impl_debug.cc Fix a silent data loss for write-committed txn (#9571) 2022-02-16 23:08:58 -08:00
db_impl_experimental.cc Get DBTest passing Assert Status Checked (#7737) 2021-12-09 11:00:17 -08:00
db_impl_files.cc Fix a silent data loss for write-committed txn (#9571) 2022-02-16 23:08:58 -08:00
db_impl_open.cc Fix a TSAN-reported bug caused by concurrent accesss to std::deque (#9686) 2022-03-29 12:42:09 -07:00
db_impl_readonly.cc Fix PinSelf() read-after-free in DB::GetMergeOperands() (#9507) 2022-02-15 12:25:18 -08:00
db_impl_readonly.h RocksJava - Add errorIfLogFileExists parameter to RocksDB.openReadOnly (#7046) 2020-09-17 15:41:25 -07:00
db_impl_secondary.cc Fix PinSelf() read-after-free in DB::GetMergeOperands() (#9507) 2022-02-15 12:25:18 -08:00
db_impl_secondary.h Add commit marker with timestamp (#9266) 2021-12-10 11:05:35 -08:00
db_impl_write.cc Fix TSAN caused by calling rend() and pop_front(). (#9698) 2022-03-29 12:43:09 -07:00
db_impl.cc Fix a timer crash caused by invalid memory management (#9656) 2022-03-12 22:10:28 -08:00
db_impl.h Fix a TSAN-reported bug caused by concurrent accesss to std::deque (#9686) 2022-03-29 12:42:09 -07:00