Page MenuHomePhabricator

init: Use size_t consistently for cache sizes
ClosedPublic

Authored by PiRK on Sep 9 2025, 13:58.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Commits
rABC6016718c9217: init: Use size_t consistently for cache sizes
Summary

This avoids having to rely on implicit casts when passing them to the
various functions allocating the caches.

This also ensures that if the requested amount of db_cache does not fit
in a size_t, it is clamped to the maximum value of a size_t.

Also take this opportunity to make the total amounts of cache in the
chainstate manager a size_t too.

This concludes backport of core#31483
https://github.com/bitcoin/bitcoin/pull/31483/commits/2a92702bafca5c78b270a9502a22cb9deac02cfc
Depends on D18583

Test Plan

ninja all check-all

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

PiRK requested review of this revision.Sep 9 2025, 13:58
PiRK planned changes to this revision.Sep 9 2025, 14:22

Tail of the build log:

[400/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/coins.cpp.o
[401/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[402/586] Building CXX object src/CMakeFiles/server.dir/rest.cpp.o
[403/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[404/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/random.cpp.o
[405/586] Building CXX object src/CMakeFiles/server.dir/rpc/txoutproof.cpp.o
[406/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[407/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[408/586] Building CXX object src/CMakeFiles/server.dir/script/scriptcache.cpp.o
[409/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[410/586] Building CXX object src/CMakeFiles/server.dir/rpc/mempool.cpp.o
[411/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[412/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[413/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[414/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[415/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[416/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[417/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[418/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[419/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[420/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[421/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[422/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[423/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[424/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[425/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[426/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[427/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[428/586] Building CXX object src/CMakeFiles/server.dir/rpc/misc.cpp.o
[429/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[430/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[431/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[432/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[433/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[434/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[435/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[436/586] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[437/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[438/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[439/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[440/586] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[441/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[442/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[443/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[444/586] Linking CXX executable src/iguana/iguana
[445/586] Linking CXX static library src/wallet/libwallet.a
[446/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[447/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[448/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[449/586] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[450/586] Building CXX object src/CMakeFiles/server.dir/rpc/net.cpp.o
[451/586] Building CXX object src/CMakeFiles/server.dir/rpc/avalanche.cpp.o
[452/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[453/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[454/586] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[455/586] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[456/586] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[457/586] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1

Tail of the build log:

[399/584] Linking C executable src/secp256k1/ecmult-bench
[400/584] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[401/584] Linking CXX executable src/bitcoin-cli
[402/584] Building CXX object src/CMakeFiles/bitcoind.dir/bitcoind.cpp.o
[403/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockindex.cpp.o
[404/584] Building CXX object src/CMakeFiles/server.dir/txmempool.cpp.o
[405/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[406/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[407/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/coins.cpp.o
[408/584] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[409/584] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[410/584] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[411/584] Linking CXX executable src/bitcoin-tx
[412/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/random.cpp.o
[413/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[414/584] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o
[415/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[416/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[417/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[418/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[419/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[420/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[421/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[422/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[423/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[424/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[425/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[426/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[427/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[428/584] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
[429/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[430/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[431/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[432/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[433/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[434/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[435/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[436/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[437/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[438/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[439/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[440/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[441/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[442/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[443/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[444/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[445/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[446/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[447/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[448/584] Linking CXX executable src/iguana/iguana
[449/584] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[450/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[451/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[452/584] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[453/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[454/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[455/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[456/584] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1
Fabien requested changes to this revision.Sep 10 2025, 09:31
Fabien added a subscriber: Fabien.
Fabien added inline comments.
src/node/caches.cpp
10 ↗(On Diff #55558)

?

This revision now requires changes to proceed.Sep 10 2025, 09:31

rebase, remove now useless cstdint in caches.h, remove unneeded other include (bad rebase conflict resolution)

This revision is now accepted and ready to land.Sep 10 2025, 10:53