From d44cd7ed4b494b64f93b395abc2476ef3f1b5028 Mon Sep 17 00:00:00 2001 From: Sjors Provoost Date: Sun, 11 Feb 2018 12:14:08 +0100 Subject: [PATCH] Reset pblocktree before deleting LevelDB file Github-Pull: #12401 Rebased-From: a8b5d20f4f171828b2bd70ab2405c42b1e452e5b Tree-SHA512: 3a87b6113283c3588f46bb5c725ec33ac639e2f91c589b5c0eb4375e3d23bd6c18e7ba96faf70be2afea86d8e6252bf4dbcf9c9ed166ce2d49846ff947a36d2e --- src/init.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/init.cpp b/src/init.cpp index c02917aac1abd..0896ad0d29a7e 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1425,6 +1425,9 @@ bool AppInitMain() pcoinsTip.reset(); pcoinsdbview.reset(); pcoinscatcher.reset(); + // new CBlockTreeDB tries to delete the existing file, which + // fails if it's still open from the previous loop. Close it first: + pblocktree.reset(); pblocktree.reset(new CBlockTreeDB(nBlockTreeDBCache, false, fReset)); if (fReset) {