There is an edge case where a replacement proof exists and is received over p2p, moving the local proof to the conflicting pool. If this proof was previously verified the status will be showing "pending verification" instead of "conflicting-utxos". This diff fixes this bug.
Details
Details
- Reviewers
PiRK - Group Reviewers
Restricted Project - Commits
- rABC7d0942ed78fb: [avalanche] Fix wrong local proof status when a replacement one is received…
ninja all check-all
Diff Detail
Diff Detail
- Repository
- rABC Bitcoin ABC
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
Build Bitcoin ABC Diffs / Diff Testing (build-clang) failed.
Tail of the build log:
[416/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[417/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[418/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[419/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[420/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[421/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[422/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[423/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[424/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[425/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[426/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[427/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[428/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[429/586] 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
[430/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[431/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[432/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[433/586] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[434/586] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[435/586] Linking CXX static library src/libbitcoinconsensus.a
[436/586] Linking C executable src/secp256k1/sign-bench
[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/bitcoin.cpp.o
[439/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[440/586] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[441/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[442/586] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[443/586] Linking C executable src/secp256k1/ecmult-bench
[444/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[445/586] Linking C executable src/secp256k1/verify-bench
[446/586] Linking C executable src/secp256k1/internal-bench
[447/586] Linking C executable src/secp256k1/recover-bench
[448/586] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[449/586] Linking CXX static library src/libscript.a
[450/586] Linking CXX static library src/libcommon.a
[451/586] Linking CXX shared library src/libbitcoinconsensus.so.0.31.8
[452/586] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[453/586] Linking CXX executable src/iguana/iguana
[454/586] Linking CXX executable src/bitcoin-tx
[455/586] Linking CXX executable src/bitcoin-cli
[456/586] Linking CXX static library src/wallet/libwallet.a
[457/586] 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_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/leveldb/helpers/memenv -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/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 /work/src/avalanche/processor.cpp
/work/src/avalanche/processor.cpp:776:9: error: calling function 'MaybeCheckNotHeld' requires negative capability '!cs_peerManager' [-Werror,-Wthread-safety-analysis]
WITH_LOCK(cs_peerManager, return peerManager->isInConflictingPool(
^
/work/src/./sync.h:358:6: note: expanded from macro 'WITH_LOCK'
(MaybeCheckNotHeld(cs), [&]() -> decltype(auto) { \
^
1 error generated.
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1Comment Actions
Build Bitcoin ABC Diffs / Diff Testing (build-clang-tidy) failed.
Tail of the build log:
[399/584] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o [400/584] Linking C executable src/secp256k1/ecmult-bench [401/584] Building CXX object src/CMakeFiles/bitcoin-cli.dir/bitcoin-cli.cpp.o [402/584] Linking CXX executable src/bitcoin-cli [403/584] Building CXX object src/CMakeFiles/bitcoind.dir/bitcoind.cpp.o [404/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o [405/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o [406/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockindex.cpp.o [407/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/coins.cpp.o [408/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/random.cpp.o [409/584] Building CXX object src/CMakeFiles/server.dir/wallet/init.cpp.o [410/584] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o [411/584] Linking CXX executable src/bitcoin-tx [412/584] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o [413/584] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o [414/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o [415/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o [416/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o [417/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o [418/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o [419/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o [420/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o [421/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o [422/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.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/validation.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/CMakeFiles/server.dir/validation.cpp.o [428/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o [429/584] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.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/transaction.cpp.o [433/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o [434/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o [435/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o [436/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.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/seeder/CMakeFiles/seeder-base.dir/options.cpp.o [440/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o [441/584] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o [442/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o [443/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o [444/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o [445/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o [446/584] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o [447/584] Linking CXX executable src/iguana/iguana [448/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o [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/wallet.cpp.o [455/584] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.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