Skip to content

Commit

Permalink
Merge bitcoin#20589: log: Clarify that failure to read/write fee_esti…
Browse files Browse the repository at this point in the history
…mates.dat is non-fatal

fa0d835 log: Clarify that failure to read fee_estimates.dat is non-fatal (MarcoFalke)
faefa5d log: Clarify that failure to write fee_estimates.dat is non-fatal (MarcoFalke)

Pull request description:

  two minor logging fixups

ACKs for top commit:
  practicalswift:
    ACK fa0d835: patch looks correct
  laanwj:
    Code review ACK fa0d835

Tree-SHA512: d1e7e595d3b4a5e497ee7ab70f3be5783dafec2726ef8e012db836c15e8e622022859a4472d6b516fe19d327737b25fdfb509cd9aeb022ca847b13c54e55800a
  • Loading branch information
laanwj committed Dec 10, 2020
2 parents eb53c03 + fa0d835 commit dcff2ee
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions src/policy/fees.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
#include <policy/fees.h>

#include <clientversion.h>
#include <fs.h>
#include <logging.h>
#include <streams.h>
#include <txmempool.h>
#include <util/system.h>
Expand Down Expand Up @@ -872,7 +874,7 @@ void CBlockPolicyEstimator::Flush() {
fs::path est_filepath = GetDataDir() / FEE_ESTIMATES_FILENAME;
CAutoFile est_file(fsbridge::fopen(est_filepath, "wb"), SER_DISK, CLIENT_VERSION);
if (est_file.IsNull() || !Write(est_file)) {
LogPrintf("Failed to write fee estimates to %s\n", est_filepath.string());
LogPrintf("Failed to write fee estimates to %s. Continue anyway.\n", est_filepath.string());
}
}

Expand Down Expand Up @@ -907,8 +909,9 @@ bool CBlockPolicyEstimator::Read(CAutoFile& filein)
LOCK(m_cs_fee_estimator);
int nVersionRequired, nVersionThatWrote;
filein >> nVersionRequired >> nVersionThatWrote;
if (nVersionRequired > CLIENT_VERSION)
return error("CBlockPolicyEstimator::Read(): up-version (%d) fee estimate file", nVersionRequired);
if (nVersionRequired > CLIENT_VERSION) {
throw std::runtime_error(strprintf("up-version (%d) fee estimate file", nVersionRequired));
}

// Read fee estimates file into temporary variables so existing data
// structures aren't corrupted if there is an exception.
Expand All @@ -926,8 +929,9 @@ bool CBlockPolicyEstimator::Read(CAutoFile& filein)
std::vector<double> fileBuckets;
filein >> fileBuckets;
size_t numBuckets = fileBuckets.size();
if (numBuckets <= 1 || numBuckets > 1000)
if (numBuckets <= 1 || numBuckets > 1000) {
throw std::runtime_error("Corrupt estimates file. Must have between 2 and 1000 feerate buckets");
}

std::unique_ptr<TxConfirmStats> fileFeeStats(new TxConfirmStats(buckets, bucketMap, MED_BLOCK_PERIODS, MED_DECAY, MED_SCALE));
std::unique_ptr<TxConfirmStats> fileShortStats(new TxConfirmStats(buckets, bucketMap, SHORT_BLOCK_PERIODS, SHORT_DECAY, SHORT_SCALE));
Expand Down

0 comments on commit dcff2ee

Please sign in to comment.