Always flush block and undo when switching to new file
Previously, the undo weren't being flushed during a reindex because fKnown was set to true in FindBlockPos. That is the correct behaviour for block files as they aren't being touched, but undo files are touched. This changes the behaviour to always flush when switching to a new file (even for block files, though that isn't really necessary). Rebased-From: 22e780737db57bcb18b3824eb8158e19a4775cb6 Github-Pull: #6948
This commit is contained in:
parent
6c31ac019f
commit
4e895b08da
11
src/main.cpp
11
src/main.cpp
|
@ -2625,8 +2625,6 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd
|
||||||
|
|
||||||
if (!fKnown) {
|
if (!fKnown) {
|
||||||
while (vinfoBlockFile[nFile].nSize + nAddSize >= MAX_BLOCKFILE_SIZE) {
|
while (vinfoBlockFile[nFile].nSize + nAddSize >= MAX_BLOCKFILE_SIZE) {
|
||||||
LogPrintf("Leaving block file %i: %s\n", nFile, vinfoBlockFile[nFile].ToString());
|
|
||||||
FlushBlockFile(true);
|
|
||||||
nFile++;
|
nFile++;
|
||||||
if (vinfoBlockFile.size() <= nFile) {
|
if (vinfoBlockFile.size() <= nFile) {
|
||||||
vinfoBlockFile.resize(nFile + 1);
|
vinfoBlockFile.resize(nFile + 1);
|
||||||
|
@ -2636,7 +2634,14 @@ bool FindBlockPos(CValidationState &state, CDiskBlockPos &pos, unsigned int nAdd
|
||||||
pos.nPos = vinfoBlockFile[nFile].nSize;
|
pos.nPos = vinfoBlockFile[nFile].nSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
nLastBlockFile = nFile;
|
if (nFile != nLastBlockFile) {
|
||||||
|
if (!fKnown) {
|
||||||
|
LogPrintf("Leaving block file %i: %s\n", nFile, vinfoBlockFile[nFile].ToString());
|
||||||
|
}
|
||||||
|
FlushBlockFile(!fKnown);
|
||||||
|
nLastBlockFile = nFile;
|
||||||
|
}
|
||||||
|
|
||||||
vinfoBlockFile[nFile].AddBlock(nHeight, nTime);
|
vinfoBlockFile[nFile].AddBlock(nHeight, nTime);
|
||||||
if (fKnown)
|
if (fKnown)
|
||||||
vinfoBlockFile[nFile].nSize = std::max(pos.nPos + nAddSize, vinfoBlockFile[nFile].nSize);
|
vinfoBlockFile[nFile].nSize = std::max(pos.nPos + nAddSize, vinfoBlockFile[nFile].nSize);
|
||||||
|
|
Loading…
Reference in New Issue