diff options
author | Howard Chu <hyc@symas.com> | 2017-03-19 12:27:03 +0000 |
---|---|---|
committer | Howard Chu <hyc@symas.com> | 2017-03-19 12:27:03 +0000 |
commit | d3aaf74080cbad3ad25fc808c862883134385b5a (patch) | |
tree | feef80e21095367e534ceae960fd9aaf852abb4d /src/blockchain_db/lmdb/db_lmdb.cpp | |
parent | Merge pull request #1887 (diff) | |
download | monero-d3aaf74080cbad3ad25fc808c862883134385b5a.tar.xz |
Partial fix #1876, check thread in block_txn_start()
Don't allow use of existing batch txn if it's from the wrong thread
Diffstat (limited to 'src/blockchain_db/lmdb/db_lmdb.cpp')
-rw-r--r-- | src/blockchain_db/lmdb/db_lmdb.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/blockchain_db/lmdb/db_lmdb.cpp b/src/blockchain_db/lmdb/db_lmdb.cpp index c7266f19e..dab09e8f4 100644 --- a/src/blockchain_db/lmdb/db_lmdb.cpp +++ b/src/blockchain_db/lmdb/db_lmdb.cpp @@ -2503,7 +2503,8 @@ void BlockchainLMDB::block_txn_start(bool readonly) throw0(DB_ERROR_TXN_START(lmdb_error("Failed to create a transaction for the db: ", mdb_res).c_str())); } memset(&m_wcursors, 0, sizeof(m_wcursors)); - } + } else if (m_writer != boost::this_thread::get_id()) + throw0(DB_ERROR_TXN_START((std::string("Attempted to start new write txn when batch txn already exists in ")+__FUNCTION__).c_str())); } void BlockchainLMDB::block_txn_stop() |