rocksdb/utilities/transactions
Maysam Yabandeh f0e8216197 WritePrepared: Fix deadlock in WriteRecoverableState (#5306)
Summary:
The recent improvement in https://github.com/facebook/rocksdb/pull/3661 could cause a deadlock: When writing recoverable state, we also commit its sequence number to commit table, which could result into evicting existing commit entry, which could result into advancing max_evicted_seq_, which would need to get snapshots from database, which requires obtaining db mutex. The patch releases db_mutex before calling the callback in WriteRecoverableState to avoid the potential deadlock. It also improves the stress tests to let the issue be manifested in the tests.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5306

Differential Revision: D15341458

Pulled By: maysamyabandeh

fbshipit-source-id: 05dcbed7e21b789fd1e5fd5ee8eea08077162323
2019-05-15 13:53:54 -07:00
..
optimistic_transaction_db_impl.cc Refactor PessimisticTransaction 2017-08-07 16:12:29 -07:00
optimistic_transaction_db_impl.h Make Optimistic Tx database stackable 2018-04-03 15:28:40 -07:00
optimistic_transaction_test.cc Apply modernize-use-override (2nd iteration) 2019-02-14 14:41:36 -08:00
optimistic_transaction.cc Extend Transaction::GetForUpdate with do_validate (#4680) 2018-12-06 17:49:00 -08:00
optimistic_transaction.h Extend Transaction::GetForUpdate with do_validate (#4680) 2018-12-06 17:49:00 -08:00
pessimistic_transaction_db.cc Use pre-increment instead of post-increment for iterators (#5296) 2019-05-15 13:19:15 -07:00
pessimistic_transaction_db.h WriteUnPrepared: Implement unprepared batches for transactions (#4104) 2018-07-24 00:13:18 -07:00
pessimistic_transaction.cc Remove extraneous call to TrackKey (#5173) 2019-04-12 16:37:12 -07:00
pessimistic_transaction.h WritePrepared: snapshot should be larger than max_evicted_seq_ (#4886) 2019-01-15 18:11:52 -08:00
snapshot_checker.cc WriteUnPrepared: less virtual in iterator callback (#5049) 2019-04-02 14:47:16 -07:00
transaction_base.cc Extend MultiGet batching to Transactions (#5210) 2019-04-23 14:11:26 -07:00
transaction_base.h Extend MultiGet batching to Transactions (#5210) 2019-04-23 14:11:26 -07:00
transaction_db_mutex_impl.cc Apply modernize-use-override (2nd iteration) 2019-02-14 14:41:36 -08:00
transaction_db_mutex_impl.h Change RocksDB License 2017-07-15 16:11:23 -07:00
transaction_lock_mgr.cc Improve transaction lock details (#5193) 2019-04-15 10:44:03 -07:00
transaction_lock_mgr.h Improve transaction lock details (#5193) 2019-04-15 10:44:03 -07:00
transaction_test.cc WritePrepared: Fix deadlock in WriteRecoverableState (#5306) 2019-05-15 13:53:54 -07:00
transaction_test.h WritePrepared: Fix deadlock in WriteRecoverableState (#5306) 2019-05-15 13:53:54 -07:00
transaction_util.cc WritePrepared: fix ValidateSnapshot with long-running txn (#4961) 2019-02-08 18:01:25 -08:00
transaction_util.h WritePrepared: fix ValidateSnapshot with long-running txn (#4961) 2019-02-08 18:01:25 -08:00
write_prepared_transaction_test.cc Use pre-increment instead of post-increment for iterators (#5296) 2019-05-15 13:19:15 -07:00
write_prepared_txn_db.cc Use pre-increment instead of post-increment for iterators (#5296) 2019-05-15 13:19:15 -07:00
write_prepared_txn_db.h WritePrepared: fix race condition in reading batch with duplicate keys (#5147) 2019-04-12 14:40:41 -07:00
write_prepared_txn.cc WritePrepared: fix race condition in reading batch with duplicate keys (#5147) 2019-04-12 14:40:41 -07:00
write_prepared_txn.h WriteUnPrepared: less virtual in iterator callback (#5049) 2019-04-02 14:47:16 -07:00
write_unprepared_transaction_test.cc Unordered Writes (#5218) 2019-05-13 17:47:21 -07:00
write_unprepared_txn_db.cc Use pre-increment instead of post-increment for iterators (#5296) 2019-05-15 13:19:15 -07:00
write_unprepared_txn_db.h Mark logs with prepare in PreReleaseCallback (#5121) 2019-04-02 15:17:47 -07:00
write_unprepared_txn.cc WritePrepared: fix race condition in reading batch with duplicate keys (#5147) 2019-04-12 14:40:41 -07:00
write_unprepared_txn.h WritePrepared: fix race condition in reading batch with duplicate keys (#5147) 2019-04-12 14:40:41 -07:00