aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Zumsande <mzumsande@gmail.com>2022-05-06 14:07:51 +0200
committerMartin Zumsande <mzumsande@gmail.com>2022-05-19 13:20:55 +0200
commit7171ebc7cbd911fa7ccad732ea7f73bce30928ee (patch)
tree1fcac72e8b75fbf0cd3e34dd0a25b2b33cf17099
parent59ac8bacd573891d84e8ab96ff43ea12bd266f26 (diff)
index: Don't commit a best block before indexing it during sync
Committing a block prior to indexing would leave the index database in an inconsistent state until it is indexed, which could corrupt the index in case of a unclean shutdown. Thus commit its predecessor. Co-authored-by: Luke Dashjr <luke-jr+git@utopios.org>
-rw-r--r--src/index/base.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/index/base.cpp b/src/index/base.cpp
index f3c9395928..09f76adad9 100644
--- a/src/index/base.cpp
+++ b/src/index/base.cpp
@@ -168,7 +168,7 @@ void BaseIndex::ThreadSync()
}
if (last_locator_write_time + SYNC_LOCATOR_WRITE_INTERVAL < current_time) {
- SetBestBlockIndex(pindex);
+ SetBestBlockIndex(pindex->pprev);
last_locator_write_time = current_time;
// No need to handle errors in Commit. See rationale above.
Commit();