Page MenuHomePhabricator

kernel: De-globalize script execution cache
ClosedPublic

Authored by PiRK on Fri, Oct 31, 14:58.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Commits
rABCc6018810283f: kernel: De-globalize script execution cache
Summary

Move its ownership to the ChainstateManager class.

Next to simplifying usage of the kernel library by no longer requiring
manual setup of the cache prior to using validation code, it also slims
down the amount of memory allocated by BasicTestingSetup.

This is a partial backport of core#30141
https://github.com/bitcoin/bitcoin/pull/30141/commits/13a3661aba95b54b822c99ecbb695b14a22536d2
Depends on D18855

Test Plan

ninja all check-all

Diff Detail

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

Event Timeline

fix redefinition of constexpr (we keep the sig cache and script cache default sizees in different header files)

Tail of the build log:

[413/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[414/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[415/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[416/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[417/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[418/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[419/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[420/586] Building CXX object src/CMakeFiles/server.dir/rpc/mempool.cpp.o
[421/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.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/encrypt.cpp.o
[424/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.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/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[429/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[430/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[431/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[432/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[433/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[434/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[435/586] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[436/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.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 static library src/wallet/libwallet.a
[445/586] Linking CXX executable src/iguana/iguana
[446/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.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/mining.cpp.o
[449/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
FAILED: src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o 
/usr/bin/ccache /usr/bin/clang++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/abc-ci-builds/build-clang/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-clang/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wgnu -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Woverloaded-virtual -Wshadow -Wshadow-field -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++17 -MD -MT src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o -MF src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o.d -o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o -c /work/src/test/util/setup_common.cpp
In file included from /work/src/test/util/setup_common.cpp:26:
In file included from /work/src/./node/chainstate.h:8:
In file included from /work/src/./validation.h:28:
In file included from /work/src/./kernel/chainstatemanager_opts.h:14:
/work/src/./script/scriptcache.h:104:25: error: redefinition of 'DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES'
static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{32 << 20};
                        ^
/work/src/./script/sigcache.h:18:25: note: previous definition is here
static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{
                        ^
1 error generated.
[450/586] Building CXX object src/CMakeFiles/server.dir/rpc/misc.cpp.o
[451/586] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[452/586] Building CXX object src/CMakeFiles/server.dir/rpc/net.cpp.o
[453/586] Building CXX object src/CMakeFiles/server.dir/rpc/avalanche.cpp.o
[454/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.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/rawtransaction.cpp.o
[457/586] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.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:

[414/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[415/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[416/586] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[417/586] Building CXX object src/CMakeFiles/server.dir/rpc/avalanche.cpp.o
[418/586] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[419/586] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o
[420/586] Linking CXX executable src/bitcoin-tx
[421/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[422/586] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[423/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[424/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[425/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[426/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
FAILED: src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/abc-ci-builds/build-diff/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-diff/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++17 -MD -MT src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o -MF src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o.d -o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o -c /work/src/test/util/setup_common.cpp
In file included from /work/src/./kernel/chainstatemanager_opts.h:14,
                 from /work/src/./validation.h:28,
                 from /work/src/./node/chainstate.h:8,
                 from /work/src/test/util/setup_common.cpp:26:
/work/src/./script/scriptcache.h:104:25: error: redefinition of ‘constexpr const size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES’
  104 | static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{32 << 20};
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/./kernel/validation_cache_sizes.h:8,
                 from /work/src/test/util/setup_common.cpp:8:
/work/src/./script/sigcache.h:18:25: note: ‘constexpr const size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES’ previously defined here
   18 | static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[427/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[428/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[429/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[430/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[431/586] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[432/586] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[433/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[434/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[435/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[436/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[437/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[438/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[439/586] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[440/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[441/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[442/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[443/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[444/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[445/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[446/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[447/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[448/586] Linking CXX executable src/iguana/iguana
[449/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[450/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[451/586] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[452/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[453/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[454/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[455/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[456/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[457/586] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Tail of the build log:

[414/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/random.cpp.o
[415/586] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o
[416/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[417/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[418/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[419/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[420/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[421/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[422/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[423/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[424/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[425/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[426/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[427/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[428/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
FAILED: src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DABORT_ON_FAILED_ASSUME -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DDEBUG -DDEBUG_LOCKORDER -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/abc-ci-builds/build-debug/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-debug/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -O0 -fPIC -fvisibility=hidden -g3 -ftrapv -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++17 -MD -MT src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o -MF src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o.d -o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o -c /work/src/test/util/setup_common.cpp
In file included from /work/src/./kernel/chainstatemanager_opts.h:14,
                 from /work/src/./validation.h:28,
                 from /work/src/./node/chainstate.h:8,
                 from /work/src/test/util/setup_common.cpp:26:
/work/src/./script/scriptcache.h:104:25: error: redefinition of ‘constexpr const size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES’
  104 | static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{32 << 20};
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/./kernel/validation_cache_sizes.h:8,
                 from /work/src/test/util/setup_common.cpp:8:
/work/src/./script/sigcache.h:18:25: note: ‘constexpr const size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES’ previously defined here
   18 | static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[429/586] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[430/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[431/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[432/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[433/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[434/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[435/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[436/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[437/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[438/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[439/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[440/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[441/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[442/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[443/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[444/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[445/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[446/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[447/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[448/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[449/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[450/586] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[451/586] Linking CXX executable src/iguana/iguana
[452/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[453/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[454/586] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[455/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[456/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[457/586] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-debug failed with exit code 1

Tail of the build log:

/work /work/abc-ci-builds/lint-circular-dependencies
A new circular dependency in the form of "kernel/chainstatemanager_opts -> script/scriptcache -> validation -> kernel/chainstatemanager_opts" appears to have been introduced.

/work/abc-ci-builds/lint-circular-dependencies
Build lint-circular-dependencies failed with exit code 1

Tail of the build log:

/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_CONFIG_H -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/src/leveldb/helpers/memenv -I/work/abc-ci-builds/build-without-wallet/src -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/univalue/include -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -Werror -g -O2 -fPIE -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++17 -MD -MT src/CMakeFiles/bitcoin-chainstate.dir/bitcoin-chainstate.cpp.o -MF src/CMakeFiles/bitcoin-chainstate.dir/bitcoin-chainstate.cpp.o.d -o src/CMakeFiles/bitcoin-chainstate.dir/bitcoin-chainstate.cpp.o -c /work/src/bitcoin-chainstate.cpp
In file included from /work/src/./kernel/validation_cache_sizes.h:8,
                 from /work/src/bitcoin-chainstate.cpp:18:
/work/src/./script/sigcache.h:18:25: error: redefinition of ‘constexpr const size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES’
   18 | static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/./kernel/chainstatemanager_opts.h:14,
                 from /work/src/bitcoin-chainstate.cpp:15:
/work/src/./script/scriptcache.h:104:25: note: ‘constexpr const size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES’ previously defined here
  104 | static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{32 << 20};
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[546/664] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[547/664] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[548/664] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[549/664] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[550/664] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[551/664] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[552/664] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[553/664] Linking CXX executable src/iguana/iguana
[554/664] Building CXX object src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o
FAILED: src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_CONFIG_H -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/src/leveldb/helpers/memenv -I/work/abc-ci-builds/build-without-wallet/src -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/univalue/include -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++17 -MD -MT src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o -MF src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o.d -o src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o -c /work/src/validation.cpp
In file included from /work/src/validation.cpp:50:
/work/src/./script/sigcache.h:18:25: error: redefinition of ‘constexpr const size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES’
   18 | static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/./kernel/chainstatemanager_opts.h:14,
                 from /work/src/./validation.h:28,
                 from /work/src/validation.cpp:7:
/work/src/./script/scriptcache.h:104:25: note: ‘constexpr const size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES’ previously defined here
  104 | static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{32 << 20};
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[555/664] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[556/664] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[557/664] Building CXX object src/CMakeFiles/bitcoinkernel.dir/avalanche/proof.cpp.o
[558/664] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[559/664] Building CXX object src/CMakeFiles/bitcoinkernel.dir/node/blockstorage.cpp.o
[560/664] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[561/664] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[562/664] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
FAILED: src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/abc-ci-builds/build-without-wallet/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++17 -MD -MT src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o -MF src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o.d -o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o -c /work/src/test/util/setup_common.cpp
In file included from /work/src/./kernel/chainstatemanager_opts.h:14,
                 from /work/src/./validation.h:28,
                 from /work/src/./node/chainstate.h:8,
                 from /work/src/test/util/setup_common.cpp:26:
/work/src/./script/scriptcache.h:104:25: error: redefinition of ‘constexpr const size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES’
  104 | static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{32 << 20};
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /work/src/./kernel/validation_cache_sizes.h:8,
                 from /work/src/test/util/setup_common.cpp:8:
/work/src/./script/sigcache.h:18:25: note: ‘constexpr const size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES’ previously defined here
   18 | static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[563/664] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[564/664] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[565/664] Building CXX object src/CMakeFiles/bitcoinkernel.dir/avalanche/peermanager.cpp.o
[566/664] Building CXX object src/CMakeFiles/bitcoinkernel.dir/avalanche/processor.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Tail of the build log:

[424/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[425/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[426/596] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[427/596] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[428/596] Linking CXX executable src/bitcoin-tx
[429/596] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[430/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[431/596] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
FAILED: src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o 
/usr/bin/cmake -E __run_co_compile --launcher=/usr/bin/ccache --tidy="/usr/bin/clang-tidy-16;-warnings-as-errors=*;--extra-arg-before=--driver-mode=g++" --source=/work/src/test/util/setup_common.cpp -- /usr/bin/clang++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/abc-ci-builds/build-clang-tidy/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-clang-tidy/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/chronik -I/work/abc-ci-builds/build-clang-tidy/cargo/build/x86_64-unknown-linux-gnu/cxxbridge -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -g -O2 -fPIC -fvisibility=hidden -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wgnu -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Woverloaded-virtual -Wshadow -Wshadow-field -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++17 -MD -MT src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o -MF src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o.d -o src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o -c /work/src/test/util/setup_common.cpp
/work/src/./script/scriptcache.h:104:25: error: redefinition of 'DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES' [clang-diagnostic-error]
static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{32 << 20};
                        ^
/work/src/./script/sigcache.h:18:25: note: previous definition is here
static constexpr size_t DEFAULT_SCRIPT_EXECUTION_CACHE_BYTES{
                        ^
2256 warnings and 1 error generated.
Error while processing /work/src/test/util/setup_common.cpp.
Suppressed 2256 warnings (2256 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler error(s).
[432/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[433/596] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o
[434/596] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[435/596] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[436/596] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[437/596] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[438/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[439/596] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[440/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[441/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[442/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[443/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[444/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[445/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[446/596] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[447/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[448/596] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[449/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[450/596] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[451/596] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[452/596] Linking CXX static library chronik/libchronik-bridge.a
[453/596] Linking CXX static library chronik/libchronik.a
[454/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[455/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[456/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[457/596] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[458/596] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[459/596] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[460/596] Linking CXX executable src/iguana/iguana
[461/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[462/596] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[463/596] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[464/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[465/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[466/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[467/596] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[468/596] 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

Tail of the build log:

[207/540] Test Bitcoin utilities...
[208/540] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/__/wallet/test/wallet_tests.cpp.o
[209/540] Building CXX object src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o
[210/540] avalanche: testing voterecord_tests
[211/540] Running utility command for check-avalanche-voterecord_tests
[212/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/compattests.cpp.o
[213/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/bitcoinaddressvalidatortests.cpp.o
[214/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_bitcoin-qt_autogen/mocs_compilation.cpp.o
[215/540] avalanche: testing peermanager_tests
[216/540] Running utility command for check-avalanche-peermanager_tests
[217/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/util.cpp.o
[218/540] avalanche: testing processor_tests
[219/540] Running utility command for check-avalanche-processor_tests
[220/540] Running avalanche test suite
PASSED: avalanche test suite
[221/540] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/util_tests.cpp.o
[222/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/guiutiltests.cpp.o
[223/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/uritests.cpp.o
[224/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/optiontests.cpp.o
[225/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_main.cpp.o
[226/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/apptests.cpp.o
[227/540] Building CXX object src/pow/test/CMakeFiles/test-pow.dir/fixture.cpp.o
[228/540] Linking CXX executable src/pow/test/test-pow
[229/540] pow: testing daa_tests
[230/540] Running utility command for check-pow-daa_tests
[231/540] pow: testing eda_tests
[232/540] Running utility command for check-pow-eda_tests
[233/540] pow: testing grasberg_tests
[234/540] Running utility command for check-pow-grasberg_tests
[235/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[236/540] pow: testing aserti32d_tests
[237/540] Running utility command for check-pow-aserti32d_tests
[238/540] Running pow test suite
PASSED: pow test suite
[239/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[240/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[241/540] Building CXX object src/seeder/test/CMakeFiles/test-seeder.dir/fixture.cpp.o
[242/540] Linking CXX executable src/seeder/test/test-seeder
[243/540] seeder: testing message_writer_tests
[244/540] seeder: testing db_tests
[245/540] seeder: testing parse_name_tests
[246/540] seeder: testing options_tests
[247/540] seeder: testing p2p_messaging_tests
[248/540] seeder: testing write_name_tests
[249/540] Running utility command for check-seeder-message_writer_tests
[250/540] Running utility command for check-seeder-db_tests
[251/540] Running utility command for check-seeder-parse_name_tests
[252/540] Running utility command for check-seeder-options_tests
[253/540] Running utility command for check-seeder-write_name_tests
[254/540] Running utility command for check-seeder-p2p_messaging_tests
[255/540] Running seeder test suite
PASSED: seeder test suite
[256/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[257/540] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[258/540] Linking CXX executable src/qt/test/test_bitcoin-qt
[259/540] bitcoin-qt: testing test_bitcoin-qt
[260/540] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1

Tail of the build log:

/work /work/abc-ci-builds/lint-circular-dependencies
A new circular dependency in the form of "kernel/chainstatemanager_opts -> script/scriptcache -> validation -> kernel/chainstatemanager_opts" appears to have been introduced.

/work/abc-ci-builds/lint-circular-dependencies
Build lint-circular-dependencies failed with exit code 1

Tail of the build log:


============================== 20 passed in 0.77s ==============================
[208/545] Automatic MOC for target test_bitcoin-qt
[209/545] Building CXX object src/pow/test/CMakeFiles/test-pow.dir/grasberg_tests.cpp.o
[210/545] Building CXX object src/seeder/test/CMakeFiles/test-seeder.dir/fixture.cpp.o
[211/545] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/__/__/chronik/test/chronikbridge_tests.cpp.o
[212/545] Linking CXX executable src/pow/test/test-pow
[213/545] Building CXX object src/seeder/test/CMakeFiles/test-seeder.dir/parse_name_tests.cpp.o
[214/545] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/__/wallet/test/walletdb_tests.cpp.o
[215/545] pow: testing daa_tests
[216/545] Building CXX object src/seeder/test/CMakeFiles/test-seeder.dir/write_name_tests.cpp.o
[217/545] Running utility command for check-pow-daa_tests
[218/545] pow: testing eda_tests
[219/545] Building CXX object src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o
[220/545] Running utility command for check-pow-eda_tests
[221/545] Test Bitcoin utilities...
[222/545] pow: testing grasberg_tests
[223/545] Running utility command for check-pow-grasberg_tests
[224/545] Linking CXX executable src/seeder/test/test-seeder
[225/545] seeder: testing db_tests
[226/545] Running utility command for check-seeder-db_tests
[227/545] seeder: testing message_writer_tests
[228/545] Running utility command for check-seeder-message_writer_tests
[229/545] seeder: testing options_tests
[230/545] Running utility command for check-seeder-options_tests
[231/545] seeder: testing p2p_messaging_tests
[232/545] Running utility command for check-seeder-p2p_messaging_tests
[233/545] seeder: testing parse_name_tests
[234/545] Running utility command for check-seeder-parse_name_tests
[235/545] seeder: testing write_name_tests
[236/545] Running utility command for check-seeder-write_name_tests
[237/545] Running seeder test suite
PASSED: seeder test suite
[238/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/util.cpp.o
[239/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_bitcoin-qt_autogen/mocs_compilation.cpp.o
[240/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/bitcoinaddressvalidatortests.cpp.o
[241/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/compattests.cpp.o
[242/545] pow: testing aserti32d_tests
[243/545] Running utility command for check-pow-aserti32d_tests
[244/545] Running pow test suite
PASSED: pow test suite
[245/545] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/__/__/chronik/test/bridgeprimitives_tests.cpp.o
[246/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/uritests.cpp.o
[247/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/guiutiltests.cpp.o
[248/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/optiontests.cpp.o
[249/545] Building CXX object src/test/CMakeFiles/test_bitcoin.dir/__/wallet/test/wallet_tests.cpp.o
[250/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/test_main.cpp.o
[251/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/paymentservertests.cpp.o
[252/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/apptests.cpp.o
[253/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/rpcnestedtests.cpp.o
[254/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/__/__/wallet/test/wallet_test_fixture.cpp.o
[255/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/addressbooktests.cpp.o
[256/545] Building CXX object src/qt/test/CMakeFiles/test_bitcoin-qt.dir/wallettests.cpp.o
[257/545] Linking CXX executable src/qt/test/test_bitcoin-qt
[258/545] bitcoin-qt: testing test_bitcoin-qt
[259/545] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1

add a temporary exception for circular dependency, remove AssertLockHeld because of some sort of false positive (the test calling these static functions does hold cs_main)

PiRK published this revision for review.Fri, Oct 31, 15:50
PiRK added inline comments.
src/script/scriptcache.cpp
18 ↗(On Diff #56385)

we can move this to validation.cpp in the next commit when g_scriptExecutionCacheHasher is removed, which will solve a couple of circular dependencies

Fabien requested changes to this revision.Fri, Oct 31, 20:50
Fabien added a subscriber: Fabien.

The lock issue is due to missing clang annotations, if you add them you should be fine

This revision now requires changes to proceed.Fri, Oct 31, 20:50

add lock annotation and add back compile time assertion for IsKeyInScriptCache and AddKeyInScriptCache

In D18856#430056, @PiRK wrote:

add lock annotation and add back compile time assertion for IsKeyInScriptCache and AddKeyInScriptCache

The AssertLockHeld is a run-time assertion, but it also indicates the lock is needed which can trigger clang thread safety analysis hence the annotation requirement.

This revision is now accepted and ready to land.Mon, Nov 3, 08:45