blockstorage: switch from CAutoFile to AutoFile

Also bump includes per suggestions from iwyu.
This commit is contained in:
Anthony Towns
2023-11-15 13:07:28 +10:00
parent c72ddf04db
commit bbd4646a2e
6 changed files with 34 additions and 25 deletions

View File

@@ -79,7 +79,7 @@ bool TxIndex::FindTx(const uint256& tx_hash, uint256& block_hash, CTransactionRe
return false; return false;
} }
CAutoFile file{m_chainstate->m_blockman.OpenBlockFile(postx, true)}; AutoFile file{m_chainstate->m_blockman.OpenBlockFile(postx, true)};
if (file.IsNull()) { if (file.IsNull()) {
return error("%s: OpenBlockFile failed", __func__); return error("%s: OpenBlockFile failed", __func__);
} }

View File

@@ -4,23 +4,32 @@
#include <node/blockstorage.h> #include <node/blockstorage.h>
#include <arith_uint256.h>
#include <chain.h> #include <chain.h>
#include <clientversion.h> #include <consensus/params.h>
#include <consensus/validation.h> #include <consensus/validation.h>
#include <dbwrapper.h> #include <dbwrapper.h>
#include <flatfile.h> #include <flatfile.h>
#include <hash.h> #include <hash.h>
#include <kernel/chain.h> #include <kernel/blockmanager_opts.h>
#include <kernel/chainparams.h> #include <kernel/chainparams.h>
#include <kernel/messagestartchars.h> #include <kernel/messagestartchars.h>
#include <kernel/notifications_interface.h>
#include <logging.h> #include <logging.h>
#include <pow.h> #include <pow.h>
#include <primitives/block.h>
#include <primitives/transaction.h>
#include <reverse_iterator.h> #include <reverse_iterator.h>
#include <serialize.h>
#include <signet.h> #include <signet.h>
#include <span.h>
#include <streams.h> #include <streams.h>
#include <sync.h> #include <sync.h>
#include <tinyformat.h>
#include <uint256.h>
#include <undo.h> #include <undo.h>
#include <util/batchpriority.h> #include <util/batchpriority.h>
#include <util/check.h>
#include <util/fs.h> #include <util/fs.h>
#include <util/signalinterrupt.h> #include <util/signalinterrupt.h>
#include <util/strencodings.h> #include <util/strencodings.h>
@@ -656,7 +665,7 @@ CBlockFileInfo* BlockManager::GetBlockFileInfo(size_t n)
bool BlockManager::UndoWriteToDisk(const CBlockUndo& blockundo, FlatFilePos& pos, const uint256& hashBlock) const bool BlockManager::UndoWriteToDisk(const CBlockUndo& blockundo, FlatFilePos& pos, const uint256& hashBlock) const
{ {
// Open history file to append // Open history file to append
CAutoFile fileout{OpenUndoFile(pos)}; AutoFile fileout{OpenUndoFile(pos)};
if (fileout.IsNull()) { if (fileout.IsNull()) {
return error("%s: OpenUndoFile failed", __func__); return error("%s: OpenUndoFile failed", __func__);
} }
@@ -691,7 +700,7 @@ bool BlockManager::UndoReadFromDisk(CBlockUndo& blockundo, const CBlockIndex& in
} }
// Open history file to read // Open history file to read
CAutoFile filein{OpenUndoFile(pos, true)}; AutoFile filein{OpenUndoFile(pos, true)};
if (filein.IsNull()) { if (filein.IsNull()) {
return error("%s: OpenUndoFile failed", __func__); return error("%s: OpenUndoFile failed", __func__);
} }
@@ -810,15 +819,15 @@ FlatFileSeq BlockManager::UndoFileSeq() const
return FlatFileSeq(m_opts.blocks_dir, "rev", UNDOFILE_CHUNK_SIZE); return FlatFileSeq(m_opts.blocks_dir, "rev", UNDOFILE_CHUNK_SIZE);
} }
CAutoFile BlockManager::OpenBlockFile(const FlatFilePos& pos, bool fReadOnly) const AutoFile BlockManager::OpenBlockFile(const FlatFilePos& pos, bool fReadOnly) const
{ {
return CAutoFile{BlockFileSeq().Open(pos, fReadOnly), CLIENT_VERSION}; return AutoFile{BlockFileSeq().Open(pos, fReadOnly)};
} }
/** Open an undo file (rev?????.dat) */ /** Open an undo file (rev?????.dat) */
CAutoFile BlockManager::OpenUndoFile(const FlatFilePos& pos, bool fReadOnly) const AutoFile BlockManager::OpenUndoFile(const FlatFilePos& pos, bool fReadOnly) const
{ {
return CAutoFile{UndoFileSeq().Open(pos, fReadOnly), CLIENT_VERSION}; return AutoFile{UndoFileSeq().Open(pos, fReadOnly)};
} }
fs::path BlockManager::GetBlockPosFilename(const FlatFilePos& pos) const fs::path BlockManager::GetBlockPosFilename(const FlatFilePos& pos) const
@@ -950,7 +959,7 @@ bool BlockManager::FindUndoPos(BlockValidationState& state, int nFile, FlatFileP
bool BlockManager::WriteBlockToDisk(const CBlock& block, FlatFilePos& pos) const bool BlockManager::WriteBlockToDisk(const CBlock& block, FlatFilePos& pos) const
{ {
// Open history file to append // Open history file to append
CAutoFile fileout{OpenBlockFile(pos)}; AutoFile fileout{OpenBlockFile(pos)};
if (fileout.IsNull()) { if (fileout.IsNull()) {
return error("WriteBlockToDisk: OpenBlockFile failed"); return error("WriteBlockToDisk: OpenBlockFile failed");
} }
@@ -1016,7 +1025,7 @@ bool BlockManager::ReadBlockFromDisk(CBlock& block, const FlatFilePos& pos) cons
block.SetNull(); block.SetNull();
// Open history file to read // Open history file to read
CAutoFile filein{OpenBlockFile(pos, true)}; AutoFile filein{OpenBlockFile(pos, true)};
if (filein.IsNull()) { if (filein.IsNull()) {
return error("ReadBlockFromDisk: OpenBlockFile failed for %s", pos.ToString()); return error("ReadBlockFromDisk: OpenBlockFile failed for %s", pos.ToString());
} }
@@ -1059,7 +1068,7 @@ bool BlockManager::ReadRawBlockFromDisk(std::vector<uint8_t>& block, const FlatF
{ {
FlatFilePos hpos = pos; FlatFilePos hpos = pos;
hpos.nPos -= 8; // Seek back 8 bytes for meta header hpos.nPos -= 8; // Seek back 8 bytes for meta header
CAutoFile filein{OpenBlockFile(hpos, true)}; AutoFile filein{OpenBlockFile(hpos, true)};
if (filein.IsNull()) { if (filein.IsNull()) {
return error("%s: OpenBlockFile failed for %s", __func__, pos.ToString()); return error("%s: OpenBlockFile failed for %s", __func__, pos.ToString());
} }
@@ -1151,7 +1160,7 @@ void ImportBlocks(ChainstateManager& chainman, std::vector<fs::path> vImportFile
if (!fs::exists(chainman.m_blockman.GetBlockPosFilename(pos))) { if (!fs::exists(chainman.m_blockman.GetBlockPosFilename(pos))) {
break; // No block files left to reindex break; // No block files left to reindex
} }
CAutoFile file{chainman.m_blockman.OpenBlockFile(pos, true)}; AutoFile file{chainman.m_blockman.OpenBlockFile(pos, true)};
if (file.IsNull()) { if (file.IsNull()) {
break; // This error is logged in OpenBlockFile break; // This error is logged in OpenBlockFile
} }
@@ -1172,7 +1181,7 @@ void ImportBlocks(ChainstateManager& chainman, std::vector<fs::path> vImportFile
// -loadblock= // -loadblock=
for (const fs::path& path : vImportFiles) { for (const fs::path& path : vImportFiles) {
CAutoFile file{fsbridge::fopen(path, "rb"), CLIENT_VERSION}; AutoFile file{fsbridge::fopen(path, "rb")};
if (!file.IsNull()) { if (!file.IsNull()) {
LogPrintf("Importing blocks file %s...\n", fs::PathToString(path)); LogPrintf("Importing blocks file %s...\n", fs::PathToString(path));
chainman.LoadExternalBlockFile(file); chainman.LoadExternalBlockFile(file);

View File

@@ -8,21 +8,26 @@
#include <attributes.h> #include <attributes.h>
#include <chain.h> #include <chain.h>
#include <dbwrapper.h> #include <dbwrapper.h>
#include <flatfile.h>
#include <kernel/blockmanager_opts.h> #include <kernel/blockmanager_opts.h>
#include <kernel/chain.h>
#include <kernel/chainparams.h> #include <kernel/chainparams.h>
#include <kernel/cs_main.h> #include <kernel/cs_main.h>
#include <kernel/messagestartchars.h> #include <kernel/messagestartchars.h>
#include <primitives/block.h>
#include <streams.h>
#include <sync.h> #include <sync.h>
#include <uint256.h>
#include <util/fs.h> #include <util/fs.h>
#include <util/hasher.h> #include <util/hasher.h>
#include <array>
#include <atomic> #include <atomic>
#include <cstdint> #include <cstdint>
#include <functional> #include <functional>
#include <limits> #include <limits>
#include <map> #include <map>
#include <memory> #include <memory>
#include <optional>
#include <set> #include <set>
#include <string> #include <string>
#include <unordered_map> #include <unordered_map>
@@ -30,14 +35,9 @@
#include <vector> #include <vector>
class BlockValidationState; class BlockValidationState;
class CAutoFile;
class CBlock;
class CBlockUndo; class CBlockUndo;
class CChainParams;
class Chainstate; class Chainstate;
class ChainstateManager; class ChainstateManager;
struct CCheckpointData;
struct FlatFilePos;
namespace Consensus { namespace Consensus {
struct Params; struct Params;
} }
@@ -162,7 +162,7 @@ private:
FlatFileSeq BlockFileSeq() const; FlatFileSeq BlockFileSeq() const;
FlatFileSeq UndoFileSeq() const; FlatFileSeq UndoFileSeq() const;
CAutoFile OpenUndoFile(const FlatFilePos& pos, bool fReadOnly = false) const; AutoFile OpenUndoFile(const FlatFilePos& pos, bool fReadOnly = false) const;
bool WriteBlockToDisk(const CBlock& block, FlatFilePos& pos) const; bool WriteBlockToDisk(const CBlock& block, FlatFilePos& pos) const;
bool UndoWriteToDisk(const CBlockUndo& blockundo, FlatFilePos& pos, const uint256& hashBlock) const; bool UndoWriteToDisk(const CBlockUndo& blockundo, FlatFilePos& pos, const uint256& hashBlock) const;
@@ -350,7 +350,7 @@ public:
void UpdatePruneLock(const std::string& name, const PruneLockInfo& lock_info) EXCLUSIVE_LOCKS_REQUIRED(::cs_main); void UpdatePruneLock(const std::string& name, const PruneLockInfo& lock_info) EXCLUSIVE_LOCKS_REQUIRED(::cs_main);
/** Open a block file (blk?????.dat) */ /** Open a block file (blk?????.dat) */
CAutoFile OpenBlockFile(const FlatFilePos& pos, bool fReadOnly = false) const; AutoFile OpenBlockFile(const FlatFilePos& pos, bool fReadOnly = false) const;
/** Translation to a filesystem path */ /** Translation to a filesystem path */
fs::path GetBlockPosFilename(const FlatFilePos& pos) const; fs::path GetBlockPosFilename(const FlatFilePos& pos) const;

View File

@@ -28,7 +28,7 @@ FUZZ_TARGET(load_external_block_file, .init = initialize_load_external_block_fil
{ {
FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()}; FuzzedDataProvider fuzzed_data_provider{buffer.data(), buffer.size()};
FuzzedFileProvider fuzzed_file_provider{fuzzed_data_provider}; FuzzedFileProvider fuzzed_file_provider{fuzzed_data_provider};
CAutoFile fuzzed_block_file{fuzzed_file_provider.open(), CLIENT_VERSION}; AutoFile fuzzed_block_file{fuzzed_file_provider.open()};
if (fuzzed_block_file.IsNull()) { if (fuzzed_block_file.IsNull()) {
return; return;
} }

View File

@@ -4649,7 +4649,7 @@ bool Chainstate::LoadGenesisBlock()
} }
void ChainstateManager::LoadExternalBlockFile( void ChainstateManager::LoadExternalBlockFile(
CAutoFile& file_in, AutoFile& file_in,
FlatFilePos* dbp, FlatFilePos* dbp,
std::multimap<uint256, FlatFilePos>* blocks_with_unknown_parent) std::multimap<uint256, FlatFilePos>* blocks_with_unknown_parent)
{ {

View File

@@ -1137,7 +1137,7 @@ public:
* (only used for reindex) * (only used for reindex)
* */ * */
void LoadExternalBlockFile( void LoadExternalBlockFile(
CAutoFile& file_in, AutoFile& file_in,
FlatFilePos* dbp = nullptr, FlatFilePos* dbp = nullptr,
std::multimap<uint256, FlatFilePos>* blocks_with_unknown_parent = nullptr); std::multimap<uint256, FlatFilePos>* blocks_with_unknown_parent = nullptr);