diff options
author | Wladimir J. van der Laan <laanwj@protonmail.com> | 2020-12-10 12:00:08 +0100 |
---|---|---|
committer | Wladimir J. van der Laan <laanwj@protonmail.com> | 2020-12-10 12:00:18 +0100 |
commit | dcff2ee1fbf4f84dde271ed6c486b157d416a6a5 (patch) | |
tree | 5aa0ba105ab748c22fc0dba2eb5c5f10ec76ba64 | |
parent | eb53c03b3680358e2f3c702b7a6b221887ef4762 (diff) | |
parent | fa0d8359b351fd179a0a2f458671a4d7828c9a80 (diff) |
Merge #20589: log: Clarify that failure to read/write fee_estimates.dat is non-fatal
fa0d8359b351fd179a0a2f458671a4d7828c9a80 log: Clarify that failure to read fee_estimates.dat is non-fatal (MarcoFalke)
faefa5db5f1d95b772873f4429e8a8fbb4e71cf3 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 fa0d8359b351fd179a0a2f458671a4d7828c9a80: patch looks correct
laanwj:
Code review ACK fa0d8359b351fd179a0a2f458671a4d7828c9a80
Tree-SHA512: d1e7e595d3b4a5e497ee7ab70f3be5783dafec2726ef8e012db836c15e8e622022859a4472d6b516fe19d327737b25fdfb509cd9aeb022ca847b13c54e55800a
-rw-r--r-- | src/policy/fees.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/policy/fees.cpp b/src/policy/fees.cpp index f6e378866c..cfa4cf8421 100644 --- a/src/policy/fees.cpp +++ b/src/policy/fees.cpp @@ -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> @@ -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()); } } @@ -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. @@ -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)); |