Skip to content

Commit b6f0b4d

Browse files
wallet: Improve logging when BerkeleyDB environment fails to close
1 parent 264c643 commit b6f0b4d

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/wallet/db.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ void BerkeleyEnvironment::Close()
102102

103103
int ret = dbenv->close(0);
104104
if (ret != 0)
105-
LogPrintf("BerkeleyEnvironment::EnvShutdown: Error %d shutting down database environment: %s\n", ret, DbEnv::strerror(ret));
105+
LogPrintf("BerkeleyEnvironment::Close: Error %d closing database environment: %s\n", ret, DbEnv::strerror(ret));
106106
if (!fMockDb)
107107
DbEnv((u_int32_t)0).remove(strPath.c_str(), 0);
108108
}
@@ -168,9 +168,12 @@ bool BerkeleyEnvironment::Open(bool retry)
168168
nEnvFlags,
169169
S_IRUSR | S_IWUSR);
170170
if (ret != 0) {
171-
dbenv->close(0);
172-
Reset();
173171
LogPrintf("BerkeleyEnvironment::Open: Error %d opening database environment: %s\n", ret, DbEnv::strerror(ret));
172+
int ret2 = dbenv->close(0);
173+
if (ret2 != 0) {
174+
LogPrintf("BerkeleyEnvironment::Open: Error %d closing failed database environment: %s\n", ret2, DbEnv::strerror(ret2));
175+
}
176+
Reset();
174177
if (retry) {
175178
// try moving the database env out of the way
176179
fs::path pathDatabaseBak = pathIn / strprintf("database.%d.bak", GetTime());

0 commit comments

Comments
 (0)