mirror of
https://github.com/monero-project/monero.git
synced 2024-12-29 07:36:16 -05:00
db_bdb: move log_set_config call before open
This is a precaution for older Berkeley DB versions. - smooth reports an issue running with 4.7: DB_ENV->log_set_config: DB_LOG_IN_MEMORY: method not permitted after handle's open method - this works just fine with 5.3 - we do not use DB_LOG_IN_MEMORY, but we use DB_LOG_AUTO_REMOVE - libdb docs say some flags must be set before open, and some may be set at any time, but never say some must be set after open - moving the call to log_set_config before open works with 5.3 Therefore, it seems best to move the call before open.
This commit is contained in:
parent
0252ffc37b
commit
1c8262c527
@ -780,13 +780,13 @@ void BlockchainBDB::open(const std::string& filename, const int db_flags)
|
|||||||
m_env->set_lk_max_lockers(DB_MAX_LOCKS);
|
m_env->set_lk_max_lockers(DB_MAX_LOCKS);
|
||||||
m_env->set_lk_max_objects(DB_MAX_LOCKS);
|
m_env->set_lk_max_objects(DB_MAX_LOCKS);
|
||||||
|
|
||||||
|
if(m_auto_remove_logs)
|
||||||
|
m_env->log_set_config(DB_LOG_AUTO_REMOVE, 1);
|
||||||
|
|
||||||
// last parameter left 0, files will be created with default rw access
|
// last parameter left 0, files will be created with default rw access
|
||||||
m_env->open(filename.c_str(), db_env_open_flags, 0);
|
m_env->open(filename.c_str(), db_env_open_flags, 0);
|
||||||
m_env->set_flags(db_flags, 1);
|
m_env->set_flags(db_flags, 1);
|
||||||
|
|
||||||
if(m_auto_remove_logs)
|
|
||||||
m_env->log_set_config(DB_LOG_AUTO_REMOVE, 1);
|
|
||||||
|
|
||||||
// begin transaction to init dbs
|
// begin transaction to init dbs
|
||||||
bdb_txn_safe txn;
|
bdb_txn_safe txn;
|
||||||
m_env->txn_begin(NULL, txn, 0);
|
m_env->txn_begin(NULL, txn, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user