Skip to content

Commit d3345ee

Browse files
committed
node/chainstate: Reduce coupling of LogPrintf
1 parent a141f5d commit d3345ee

File tree

2 files changed

+55
-49
lines changed

2 files changed

+55
-49
lines changed

src/init.cpp

+53-41
Original file line numberDiff line numberDiff line change
@@ -1865,39 +1865,45 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
18651865

18661866
uiInterface.InitMessage(_("Loading block index…").translated);
18671867
const auto load_block_index_start_time{SteadyClock::now()};
1868-
auto rv = LoadChainstate(fReset,
1869-
chainman,
1870-
*node.govman,
1871-
*node.mn_metaman,
1872-
*node.mn_sync,
1873-
*node.sporkman,
1874-
node.mn_activeman,
1875-
node.chain_helper,
1876-
node.cpoolman,
1877-
node.dmnman,
1878-
node.evodb,
1879-
node.mnhf_manager,
1880-
llmq::chainLocksHandler,
1881-
llmq::quorumInstantSendManager,
1882-
llmq::quorumSnapshotManager,
1883-
node.llmq_ctx,
1884-
Assert(node.mempool.get()),
1885-
fPruneMode,
1886-
args.GetBoolArg("-addressindex", DEFAULT_ADDRESSINDEX),
1887-
is_governance_enabled,
1888-
args.GetBoolArg("-spentindex", DEFAULT_SPENTINDEX),
1889-
args.GetBoolArg("-timestampindex", DEFAULT_TIMESTAMPINDEX),
1890-
args.GetBoolArg("-txindex", DEFAULT_TXINDEX),
1891-
chainparams,
1892-
fReindexChainState,
1893-
nBlockTreeDBCache,
1894-
nCoinDBCache,
1895-
nCoinCacheUsage,
1896-
[]() {
1897-
uiInterface.ThreadSafeMessageBox(
1898-
_("Error reading from database, shutting down."),
1899-
"", CClientUIInterface::MSG_ERROR);
1900-
});
1868+
std::optional<ChainstateLoadingError> rv;
1869+
try {
1870+
rv = LoadChainstate(fReset,
1871+
chainman,
1872+
*node.govman,
1873+
*node.mn_metaman,
1874+
*node.mn_sync,
1875+
*node.sporkman,
1876+
node.mn_activeman,
1877+
node.chain_helper,
1878+
node.cpoolman,
1879+
node.dmnman,
1880+
node.evodb,
1881+
node.mnhf_manager,
1882+
llmq::chainLocksHandler,
1883+
llmq::quorumInstantSendManager,
1884+
llmq::quorumSnapshotManager,
1885+
node.llmq_ctx,
1886+
Assert(node.mempool.get()),
1887+
fPruneMode,
1888+
args.GetBoolArg("-addressindex", DEFAULT_ADDRESSINDEX),
1889+
is_governance_enabled,
1890+
args.GetBoolArg("-spentindex", DEFAULT_SPENTINDEX),
1891+
args.GetBoolArg("-timestampindex", DEFAULT_TIMESTAMPINDEX),
1892+
args.GetBoolArg("-txindex", DEFAULT_TXINDEX),
1893+
chainparams,
1894+
fReindexChainState,
1895+
nBlockTreeDBCache,
1896+
nCoinDBCache,
1897+
nCoinCacheUsage,
1898+
[]() {
1899+
uiInterface.ThreadSafeMessageBox(
1900+
_("Error reading from database, shutting down."),
1901+
"", CClientUIInterface::MSG_ERROR);
1902+
});
1903+
} catch (const std::exception& e) {
1904+
LogPrintf("%s\n", e.what());
1905+
rv = ChainstateLoadingError::ERROR_GENERIC_BLOCKDB_OPEN_FAILED;
1906+
}
19011907
if (rv.has_value()) {
19021908
switch (rv.value()) {
19031909
case ChainstateLoadingError::ERROR_LOADING_BLOCK_DB:
@@ -1951,14 +1957,20 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
19511957
break;
19521958
}
19531959
} else {
1954-
uiInterface.InitMessage(_("Verifying blocks…").translated);
1955-
auto rv2 = VerifyLoadedChainstate(chainman,
1956-
*Assert(node.evodb.get()),
1957-
fReset,
1958-
fReindexChainState,
1959-
chainparams,
1960-
args.GetArg("-checkblocks", DEFAULT_CHECKBLOCKS),
1961-
args.GetArg("-checklevel", DEFAULT_CHECKLEVEL));
1960+
std::optional<ChainstateLoadVerifyError> rv2;
1961+
try {
1962+
uiInterface.InitMessage(_("Verifying blocks…").translated);
1963+
rv2 = VerifyLoadedChainstate(chainman,
1964+
*Assert(node.evodb.get()),
1965+
fReset,
1966+
fReindexChainState,
1967+
chainparams,
1968+
args.GetArg("-checkblocks", DEFAULT_CHECKBLOCKS),
1969+
args.GetArg("-checklevel", DEFAULT_CHECKLEVEL));
1970+
} catch (const std::exception& e) {
1971+
LogPrintf("%s\n", e.what());
1972+
rv2 = ChainstateLoadVerifyError::ERROR_GENERIC_FAILURE;
1973+
}
19621974
if (rv2.has_value()) {
19631975
switch (rv2.value()) {
19641976
case ChainstateLoadVerifyError::ERROR_BLOCK_FROM_FUTURE:

src/node/chainstate.cpp

+2-8
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
5656
return fReset || fReindexChainState || chainstate->CoinsTip().GetBestBlock().IsNull();
5757
};
5858

59-
try {
59+
{
6060
LOCK(cs_main);
6161

6262
int64_t nEvoDbCache{64 * 1024 * 1024}; // TODO
@@ -223,9 +223,6 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
223223
if (!mnhf_manager->ForceSignalDBUpdate()) {
224224
return ChainstateLoadingError::ERROR_UPGRADING_SIGNALS_DB;
225225
}
226-
} catch (const std::exception& e) {
227-
LogPrintf("%s\n", e.what());
228-
return ChainstateLoadingError::ERROR_GENERIC_BLOCKDB_OPEN_FAILED;
229226
}
230227

231228
return std::nullopt;
@@ -243,7 +240,7 @@ std::optional<ChainstateLoadVerifyError> VerifyLoadedChainstate(ChainstateManage
243240
return fReset || fReindexChainState || chainstate->CoinsTip().GetBestBlock().IsNull();
244241
};
245242

246-
try {
243+
{
247244
LOCK(cs_main);
248245

249246
for (CChainState* chainstate : chainman.GetAll()) {
@@ -293,9 +290,6 @@ std::optional<ChainstateLoadVerifyError> VerifyLoadedChainstate(ChainstateManage
293290
}
294291
}
295292
}
296-
} catch (const std::exception& e) {
297-
LogPrintf("%s\n", e.what());
298-
return ChainstateLoadVerifyError::ERROR_GENERIC_FAILURE;
299293
}
300294

301295
return std::nullopt;

0 commit comments

Comments
 (0)