Page MenuHomePhabricator

sync.h: Make runtime lock checks require compile-time lock checks
ClosedPublic

Authored by PiRK on Sep 20 2021, 10:30.

Details

Summary
Test Plan

With TSAN:
ninja check check-functional

Event Timeline

PiRK requested review of this revision.Sep 20 2021, 10:30

Tail of the build log:

[338/509] Linking C executable src/secp256k1/recover-bench
[339/509] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[340/509] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[341/509] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[342/509] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[343/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[344/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[345/509] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[346/509] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[347/509] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[348/509] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[349/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[350/509] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[351/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[352/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[353/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[354/509] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[355/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[356/509] Linking CXX static library src/libscript.a
[357/509] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[358/509] Linking CXX static library src/libcommon.a
[359/509] Linking CXX shared library src/libbitcoinconsensus.so.0.24.2
[360/509] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[361/509] Linking CXX executable src/bitcoin-cli
[362/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[363/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[364/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[365/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[366/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[367/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[368/509] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[369/509] Linking CXX executable src/bitcoin-tx
[370/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[371/509] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[372/509] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[373/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[374/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[375/509] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[376/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[377/509] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[378/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[379/509] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[380/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[381/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[382/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[383/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[384/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[385/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[386/509] Linking CXX static library src/wallet/libwallet.a
[387/509] Linking CXX static library src/wallet/libwallet-tool.a
[388/509] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1
PiRK planned changes to this revision.Sep 20 2021, 10:44

fix build-clang

Tail of the build log:

[163/508] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[164/508] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[165/508] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[166/508] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[167/508] Linking C static library src/secp256k1/libsecp256k1.a
[168/508] Linking C executable src/secp256k1/recover-bench
[169/508] Linking C executable src/secp256k1/sign-bench
[170/508] Linking C executable src/secp256k1/verify-bench
[171/508] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[172/508] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[173/508] Linking C executable src/secp256k1/ecmult-bench
[174/508] Linking C executable src/secp256k1/internal-bench
[175/508] Building CXX object src/crypto/CMakeFiles/crypto_avx2.dir/sha256_avx2.cpp.o
[176/508] Linking CXX static library src/crypto/libcrypto_avx2.a
[177/508] Building CXX object src/crypto/CMakeFiles/crypto_sse4.1.dir/sha256_sse41.cpp.o
[178/508] Linking CXX static library src/crypto/libcrypto_sse4.1.a
[179/508] Linking CXX static library src/crypto/libcrypto.a
[180/508] Generating obj/build.h
[181/508] Building CXX object src/CMakeFiles/server.dir/avalanche/voterecord.cpp.o
[182/508] Building CXX object src/CMakeFiles/server.dir/avalanche/proofid.cpp.o
[183/508] Building CXX object src/CMakeFiles/server.dir/avalanche/delegationbuilder.cpp.o
[184/508] Building CXX object src/CMakeFiles/server.dir/avalanche/proofbuilder.cpp.o
[185/508] Building CXX object src/CMakeFiles/server.dir/avalanche/avalanche.cpp.o
[186/508] Building CXX object src/CMakeFiles/server.dir/avalanche/delegation.cpp.o
[187/508] Building CXX object src/CMakeFiles/server.dir/banman.cpp.o
[188/508] Building CXX object src/CMakeFiles/server.dir/avalanche/orphanproofpool.cpp.o
[189/508] Building CXX object src/CMakeFiles/server.dir/blockindex.cpp.o
[190/508] Building CXX object src/CMakeFiles/server.dir/config.cpp.o
[191/508] Building CXX object src/CMakeFiles/server.dir/addrman.cpp.o
[192/508] Building CXX object src/CMakeFiles/server.dir/chain.cpp.o
[193/508] Building CXX object src/CMakeFiles/server.dir/avalanche/proof.cpp.o
[194/508] Building CXX object src/CMakeFiles/server.dir/blockfilter.cpp.o
[195/508] Building CXX object src/CMakeFiles/server.dir/avalanche/processor.cpp.o
FAILED: src/CMakeFiles/server.dir/avalanche/processor.cpp.o 
/usr/bin/ccache /usr/bin/clang++  -DBOOST_AC_USE_STD_ATOMIC -DBOOST_SP_USE_STD_ATOMIC -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../../src/leveldb/helpers/memenv -I../../src/. -Isrc -I../../src/univalue/include -Isrc/crypto/.. -I../../src/secp256k1/include -I../../src/leveldb/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden   -fsanitize=thread -fstack-protector-all -Wstack-protector -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 -Wformat-security -Wredundant-move -Woverloaded-virtual -Wshadow -Wshadow-field -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++17 -MD -MT src/CMakeFiles/server.dir/avalanche/processor.cpp.o -MF src/CMakeFiles/server.dir/avalanche/processor.cpp.o.d -o src/CMakeFiles/server.dir/avalanche/processor.cpp.o -c ../../src/avalanche/processor.cpp
../../src/avalanche/processor.cpp:35:5: error: calling function 'AssertLockHeldInternal<AnnotatedMixin<std::recursive_mutex> >' requires holding mutex 'cs_main' exclusively [-Werror,-Wthread-safety-analysis]
    AssertLockHeld(cs_main);
    ^
../../src/./sync.h:93:28: note: expanded from macro 'AssertLockHeld'
#define AssertLockHeld(cs) AssertLockHeldInternal(#cs, __FILE__, __LINE__, &cs)
                           ^
../../src/avalanche/processor.cpp:42:30: error: calling function 'IsBlockFinalized' requires holding mutex 'cs_main' exclusively [-Werror,-Wthread-safety-analysis]
    if (::ChainstateActive().IsBlockFinalized(pindex)) {
                             ^
2 errors generated.
[196/508] Building CXX object src/CMakeFiles/server.dir/checkpoints.cpp.o
[197/508] Building CXX object src/CMakeFiles/server.dir/blockencodings.cpp.o
[198/508] Building CXX object src/CMakeFiles/server.dir/addrdb.cpp.o
[199/508] Building CXX object src/CMakeFiles/server.dir/consensus/activation.cpp.o
[200/508] Building CXX object src/CMakeFiles/server.dir/consensus/tx_verify.cpp.o
[201/508] Building CXX object src/CMakeFiles/server.dir/dnsseeds.cpp.o
[202/508] Building CXX object src/CMakeFiles/server.dir/dbwrapper.cpp.o
[203/508] Building CXX object src/CMakeFiles/server.dir/flatfile.cpp.o
[204/508] Building CXX object src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o
[205/508] Building CXX object src/CMakeFiles/server.dir/httpserver.cpp.o
[206/508] Building CXX object src/CMakeFiles/server.dir/index/base.cpp.o
[207/508] Building CXX object src/CMakeFiles/server.dir/rpc/server.cpp.o
[208/508] Building CXX object src/CMakeFiles/server.dir/httprpc.cpp.o
ninja: build stopped: subcommand failed.
Build build-tsan failed with exit code 1

rebase after fixing the clang failure in D10163

Tail of the build log:

[2/2] Linking C executable src/secp256k1/gen_context
[209/508] Generating src/ecmult_static_context.h
[210/508] Building CXX object src/CMakeFiles/server.dir/avalanche/proofid.cpp.o
[211/508] Building CXX object src/CMakeFiles/server.dir/avalanche/delegation.cpp.o
[212/508] Building CXX object src/CMakeFiles/server.dir/avalanche/voterecord.cpp.o
[213/508] Building CXX object src/CMakeFiles/server.dir/avalanche/delegationbuilder.cpp.o
[214/508] Building CXX object src/CMakeFiles/server.dir/avalanche/proofbuilder.cpp.o
[215/508] Building CXX object src/CMakeFiles/server.dir/avalanche/avalanche.cpp.o
[216/508] Building CXX object src/CMakeFiles/server.dir/addrman.cpp.o
[217/508] Building CXX object src/CMakeFiles/server.dir/addrdb.cpp.o
[218/508] Building CXX object src/CMakeFiles/server.dir/avalanche/proof.cpp.o
[219/508] Building CXX object src/CMakeFiles/server.dir/avalanche/orphanproofpool.cpp.o
[220/508] Building CXX object src/CMakeFiles/server.dir/blockfilter.cpp.o
[221/508] Building CXX object src/CMakeFiles/server.dir/config.cpp.o
[222/508] Building CXX object src/CMakeFiles/server.dir/rpc/server.cpp.o
[223/508] Building CXX object src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o
[224/508] Building CXX object src/CMakeFiles/server.dir/blockindex.cpp.o
[225/508] Building CXX object src/CMakeFiles/server.dir/chain.cpp.o
[226/508] Building CXX object src/CMakeFiles/server.dir/consensus/tx_verify.cpp.o
[227/508] Building CXX object src/CMakeFiles/server.dir/banman.cpp.o
[228/508] Building CXX object src/CMakeFiles/server.dir/blockencodings.cpp.o
[229/508] Building CXX object src/CMakeFiles/server.dir/dbwrapper.cpp.o
[230/508] Building CXX object src/CMakeFiles/server.dir/checkpoints.cpp.o
[231/508] Building CXX object src/CMakeFiles/server.dir/dnsseeds.cpp.o
[232/508] Building CXX object src/CMakeFiles/server.dir/consensus/activation.cpp.o
[233/508] Building CXX object src/CMakeFiles/server.dir/flatfile.cpp.o
[234/508] Building CXX object src/CMakeFiles/server.dir/httpserver.cpp.o
[235/508] Building CXX object src/CMakeFiles/server.dir/httprpc.cpp.o
[236/508] Building CXX object src/CMakeFiles/server.dir/index/base.cpp.o
[237/508] Building CXX object src/CMakeFiles/server.dir/node/coin.cpp.o
[238/508] Building CXX object src/CMakeFiles/server.dir/minerfund.cpp.o
[239/508] Building CXX object src/CMakeFiles/server.dir/node/coinstats.cpp.o
[240/508] Building CXX object src/CMakeFiles/server.dir/avalanche/processor.cpp.o
FAILED: src/CMakeFiles/server.dir/avalanche/processor.cpp.o 
/usr/bin/ccache /usr/bin/clang++  -DBOOST_AC_USE_STD_ATOMIC -DBOOST_SP_USE_STD_ATOMIC -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../../src/leveldb/helpers/memenv -I../../src/. -Isrc -I../../src/univalue/include -Isrc/crypto/.. -I../../src/secp256k1/include -I../../src/leveldb/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden   -fsanitize=thread -fstack-protector-all -Wstack-protector -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 -Wformat-security -Wredundant-move -Woverloaded-virtual -Wshadow -Wshadow-field -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++17 -MD -MT src/CMakeFiles/server.dir/avalanche/processor.cpp.o -MF src/CMakeFiles/server.dir/avalanche/processor.cpp.o.d -o src/CMakeFiles/server.dir/avalanche/processor.cpp.o -c ../../src/avalanche/processor.cpp
../../src/avalanche/processor.cpp:35:5: error: calling function 'AssertLockHeldInternal<AnnotatedMixin<std::recursive_mutex> >' requires holding mutex 'cs_main' exclusively [-Werror,-Wthread-safety-analysis]
    AssertLockHeld(cs_main);
    ^
../../src/./sync.h:93:28: note: expanded from macro 'AssertLockHeld'
#define AssertLockHeld(cs) AssertLockHeldInternal(#cs, __FILE__, __LINE__, &cs)
                           ^
../../src/avalanche/processor.cpp:42:30: error: calling function 'IsBlockFinalized' requires holding mutex 'cs_main' exclusively [-Werror,-Wthread-safety-analysis]
    if (::ChainstateActive().IsBlockFinalized(pindex)) {
                             ^
2 errors generated.
[241/508] Building CXX object src/CMakeFiles/server.dir/node/context.cpp.o
[242/508] Building CXX object src/CMakeFiles/server.dir/interfaces/chain.cpp.o
[243/508] Building CXX object src/CMakeFiles/server.dir/index/txindex.cpp.o
[244/508] Building CXX object src/CMakeFiles/server.dir/index/blockfilterindex.cpp.o
[245/508] Building CXX object src/CMakeFiles/server.dir/interfaces/node.cpp.o
[246/508] Building CXX object src/CMakeFiles/server.dir/invrequest.cpp.o
[247/508] Building CXX object src/CMakeFiles/server.dir/node/psbt.cpp.o
[248/508] Building CXX object src/CMakeFiles/server.dir/miner.cpp.o
[249/508] Building CXX object src/CMakeFiles/server.dir/node/transaction.cpp.o
[250/508] Building CXX object src/CMakeFiles/server.dir/net.cpp.o
[251/508] Building CXX object src/CMakeFiles/server.dir/node/ui_interface.cpp.o
[252/508] Building CXX object src/CMakeFiles/server.dir/init.cpp.o
[253/508] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
ninja: build stopped: subcommand failed.
Build build-tsan failed with exit code 1

Tail of the build log:

[338/509] Linking C executable src/secp256k1/recover-bench
[339/509] Installing component secp256k1
-- Install configuration: "RelWithDebInfo"
-- Install component: "secp256k1"
-- Installing: /results/artifacts/lib/libsecp256k1.a
-- Installing: /results/artifacts/include/secp256k1.h
-- Installing: /results/artifacts/include/secp256k1_preallocated.h
-- Installing: /results/artifacts/include/secp256k1_recovery.h
-- Installing: /results/artifacts/include/secp256k1_schnorr.h
[340/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[341/509] Building CXX object src/CMakeFiles/common.dir/rpc/rawtransaction_util.cpp.o
[342/509] Building CXX object src/CMakeFiles/common.dir/psbt.cpp.o
[343/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[344/509] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[345/509] Building CXX object src/CMakeFiles/script.dir/script/sign.cpp.o
[346/509] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[347/509] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[348/509] Building CXX object src/CMakeFiles/common.dir/rpc/util.cpp.o
[349/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[350/509] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[351/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[352/509] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o
[353/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[354/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[355/509] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[356/509] Linking CXX static library src/libscript.a
[357/509] Linking CXX static library src/libcommon.a
[358/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[359/509] Linking CXX shared library src/libbitcoinconsensus.so.0.24.2
[360/509] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[361/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[362/509] Linking CXX executable src/bitcoin-cli
[363/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[364/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[365/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[366/509] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[367/509] Linking CXX executable src/bitcoin-tx
[368/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[369/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[370/509] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[371/509] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[372/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[373/509] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[374/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[375/509] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[376/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[377/509] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[378/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[379/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[380/509] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[381/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[382/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[383/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[384/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[385/509] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[386/509] Linking CXX static library src/wallet/libwallet.a
[387/509] Linking CXX static library src/wallet/libwallet-tool.a
[388/509] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1
PiRK planned changes to this revision.Sep 20 2021, 12:30

more work needed for [-Werror,-Wthread-safety-analysis] warnings

fix a few more missing EXCLUSIVE_LOCKS_REQUIRED

Note that while I was debugging, I noticed that clang 12 will raise more warnings. These will be addressed by backporting core#21598

This revision is now accepted and ready to land.Sep 22 2021, 07:09