diff --git a/src/wallet/db.cpp b/src/wallet/db.cpp --- a/src/wallet/db.cpp +++ b/src/wallet/db.cpp @@ -117,8 +117,8 @@ int ret = dbenv->close(0); if (ret != 0) { - LogPrintf("BerkeleyEnvironment::EnvShutdown: Error %d shutting down " - "database environment: %s\n", + LogPrintf("BerkeleyEnvironment::Close: Error %d closing database " + "environment: %s\n", ret, DbEnv::strerror(ret)); } if (!fMockDb) { @@ -186,10 +186,16 @@ DB_INIT_TXN | DB_THREAD | DB_RECOVER | nEnvFlags, S_IRUSR | S_IWUSR); if (ret != 0) { - dbenv->close(0); LogPrintf("BerkeleyEnvironment::Open: Error %d opening database " "environment: %s\n", ret, DbEnv::strerror(ret)); + int ret2 = dbenv->close(0); + if (ret2 != 0) { + LogPrintf("BerkeleyEnvironment::Open: Error %d closing failed " + "database environment: %s\n", + ret2, DbEnv::strerror(ret2)); + } + Reset(); if (retry) { // try moving the database env out of the way fs::path pathDatabaseBak =