Page MenuHomePhabricator

refactor: Simply include CTxMemPool::Options in CTxMemPool directly rather than duplicating definition
ClosedPublic

Authored by PiRK on Wed, Sep 2, 13:14.

Details

Summary

This is a backport of core#29086

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.Wed, Sep 2, 13:14

Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review

Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────

(\(\
(• .•) I speak fluent stack trace.

────────────────────────────────────────────────────────────────────────

major [Data Integrity & Integration]
→ ]8;;vscode://file//work/src/txmempool.cpp:200src/txmempool.cpp:200-206]8;;

Keep finalized-entry cleanup independent of signal delivery.

When m_opts.signals is null, this condition skips both notification and
finalizedTxs.remove(txid). A finalized transaction removed for expiry,
conflict, manual removal, or size limiting then remains in finalizedTxs
and m_finalizedTxsFitter. Later finalized transactions can incorrectly
fail block-fit checks.

Keep the reason != MemPoolRemovalReason::BLOCK guard around the whole
cleanup block, and guard only TransactionRemovedFromMempool() with
m_opts.signals.

────────────────────────────────────────
Review complete
1 finding ✔

Major 1

11 files reviewed:

  • src/kernel/disconnected_transactions.cpp
  • src/kernel/mempool_persist.cpp
  • src/net_processing.cpp
  • src/node/interfaces.cpp
  • src/rpc/mempool.cpp
  • src/rpc/net.cpp
  • src/test/txpackage_tests.cpp
  • src/test/util/setup_common.cpp
  • src/txmempool.cpp
  • src/txmempool.h

... and 1 more file
────────────────────────────────────────

Print all AI prompts: coderabbit review --show-prompts

Tail of the build log:

[416/604] Linking CXX static library src/libcommon.a
[417/604] Linking CXX shared library src/libbitcoinconsensus.so.0.33.11
[418/604] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[419/604] Linking CXX executable src/bitcoin-cli
[420/604] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[421/604] Linking C executable src/secp256k1/ecmult-bench
[422/604] Linking C executable src/secp256k1/bench
[423/604] Linking C executable src/secp256k1/examples/ecdsa_example
[424/604] Linking C executable src/secp256k1/examples/ecdh_example
[425/604] Building CXX object src/CMakeFiles/bitcoind.dir/bitcoind.cpp.o
[426/604] Linking C executable src/secp256k1/examples/schnorr_example
[427/604] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[428/604] Building CXX object src/test/CMakeFiles/testutil.dir/util/random.cpp.o
[429/604] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[430/604] Linking C executable src/secp256k1/internal-bench
[431/604] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[432/604] Linking CXX executable src/bitcoin-tx
[433/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[434/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[435/604] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[436/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[437/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[438/604] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[439/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[440/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[441/604] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[442/604] Building CXX object src/test/CMakeFiles/testutil.dir/util/validation.cpp.o
[443/604] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[444/604] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[445/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[446/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[447/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[448/604] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
[449/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[450/604] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[451/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[452/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[453/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[454/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[455/604] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[456/604] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[457/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[458/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[459/604] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[460/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[461/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[462/604] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[463/604] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[464/604] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[465/604] Linking CXX executable src/iguana/iguana
[466/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[467/604] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[468/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[469/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[470/604] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[471/604] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[472/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[473/604] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1

rebase. Can't test locally, it seems github is down right now for me. I hope CI will pass.

Tail of the build log:

-- Performing Test have_C__Wcast_align_strict - Success
-- Performing Test have_C__Wno_duplicated_branches
-- Performing Test have_C__Wno_duplicated_branches - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/build-chronik/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/build-chronik/_deps && /usr/bin/cmake -P /work/abc-ci-builds/build-chronik/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/build-chronik/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/build-chronik/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/build-chronik/CMakeFiles/CMakeError.log".
Build build-chronik failed with exit code 1

Tail of the build log:

-- Performing Test have_C__Wcast_align_strict - Success
-- Performing Test have_C__Wno_duplicated_branches
-- Performing Test have_C__Wno_duplicated_branches - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/build-bitcoinsuite-chronik-client/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/build-bitcoinsuite-chronik-client/_deps && /usr/bin/cmake -P /work/abc-ci-builds/build-bitcoinsuite-chronik-client/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/build-bitcoinsuite-chronik-client/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/build-bitcoinsuite-chronik-client/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/build-bitcoinsuite-chronik-client/CMakeFiles/CMakeError.log".
Build build-bitcoinsuite-chronik-client failed with exit code 1

Tail of the build log:

-- Performing Test have_C__Wcast_align_strict - Success
-- Performing Test have_C__Wno_duplicated_branches
-- Performing Test have_C__Wno_duplicated_branches - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/build-chronik-plugins/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/build-chronik-plugins/_deps && /usr/bin/cmake -P /work/abc-ci-builds/build-chronik-plugins/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/build-chronik-plugins/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/build-chronik-plugins/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/build-chronik-plugins/CMakeFiles/CMakeError.log".
Build build-chronik-plugins failed with exit code 1

Tail of the build log:

-- Performing Test have_C__Wcast_align_strict - Success
-- Performing Test have_C__Wno_duplicated_branches
-- Performing Test have_C__Wno_duplicated_branches - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/ecash-lib-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/ecash-lib-integration-tests/_deps && /usr/bin/cmake -P /work/abc-ci-builds/ecash-lib-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/ecash-lib-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/ecash-lib-integration-tests/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/ecash-lib-integration-tests/CMakeFiles/CMakeError.log".
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

-- Performing Test have_C__Wcast_align_strict - Success
-- Performing Test have_C__Wno_duplicated_branches
-- Performing Test have_C__Wno_duplicated_branches - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
Cloning into 'corrosion-src'...
fatal: could not read Username for 'https://github.com': No such device or address
fatal: expected flush after ref listing
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/ecash-agora-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/ecash-agora-integration-tests/_deps && /usr/bin/cmake -P /work/abc-ci-builds/ecash-agora-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/ecash-agora-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/ecash-agora-integration-tests/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/ecash-agora-integration-tests/CMakeFiles/CMakeError.log".
Build ecash-agora-integration-tests failed with exit code 1

Same issue on CI, will retry later. I'm hoping this is temporary github outage or DDoS mitigation

Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review

Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────

(\(\
(• .•) Code Wars Episode V: The Compiler Strikes Back.

────────────────────────────────────────────────────────────────────────

major [Data Integrity & Integration]
→ ]8;;vscode://file//work/src/txmempool.cpp:200src/txmempool.cpp:200-206]8;;

Keep finalized-transaction cleanup independent of m_opts.signals.

When m_opts.signals is null, this condition skips
finalizedTxs.remove(txid) and
m_finalizedTxsFitter.removeTxUnchecked(...) for every non-block removal.
mapTx.erase() still removes the transaction, so stale finalized entries
and block-fit accounting remain.

Keep reason != MemPoolRemovalReason::BLOCK as the outer condition. Guard
only the notification call with m_opts.signals.

────────────────────────────────────────
Review complete
1 finding ✔

Major 1

12 files reviewed:

  • chronik/chronik-cpp/chronik_bridge.cpp
  • src/kernel/disconnected_transactions.cpp
  • src/kernel/mempool_persist.cpp
  • src/net_processing.cpp
  • src/node/interfaces.cpp
  • src/rpc/mempool.cpp
  • src/rpc/net.cpp
  • src/test/txpackage_tests.cpp
  • src/test/util/setup_common.cpp
  • src/txmempool.cpp

... and 2 more files
────────────────────────────────────────

Print all AI prompts: coderabbit review --show-prompts

rebase after fixing the rabbit bug

Tail of the build log:

-- Performing Test have_C__Wundef
-- Performing Test have_C__Wundef - Success
-- Performing Test have_C__Wcast_align_strict
-- Performing Test have_C__Wcast_align_strict - Success
-- Performing Test have_C__Wno_duplicated_branches
-- Performing Test have_C__Wno_duplicated_branches - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/build-chronik/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/build-chronik/_deps && /usr/bin/cmake -P /work/abc-ci-builds/build-chronik/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/build-chronik/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/build-chronik/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/build-chronik/CMakeFiles/CMakeError.log".
Build build-chronik failed with exit code 1

Tail of the build log:

-- Performing Test have_C__Wundef
-- Performing Test have_C__Wundef - Success
-- Performing Test have_C__Wcast_align_strict
-- Performing Test have_C__Wcast_align_strict - Success
-- Performing Test have_C__Wno_duplicated_branches
-- Performing Test have_C__Wno_duplicated_branches - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/build-bitcoinsuite-chronik-client/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/build-bitcoinsuite-chronik-client/_deps && /usr/bin/cmake -P /work/abc-ci-builds/build-bitcoinsuite-chronik-client/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/build-bitcoinsuite-chronik-client/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/build-bitcoinsuite-chronik-client/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/build-bitcoinsuite-chronik-client/CMakeFiles/CMakeError.log".
Build build-bitcoinsuite-chronik-client failed with exit code 1

Tail of the build log:

-- Performing Test have_C__Wno_unused_function
-- Performing Test have_C__Wno_unused_function - Success
-- Performing Test have_C__Wundef
-- Performing Test have_C__Wundef - Success
-- Performing Test have_C__Wreserved_identifier
-- Performing Test have_C__Wreserved_identifier - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/build-clang-tidy/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/build-clang-tidy/_deps && /usr/bin/cmake -P /work/abc-ci-builds/build-clang-tidy/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/build-clang-tidy/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/build-clang-tidy/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/build-clang-tidy/CMakeFiles/CMakeError.log".
Build build-clang-tidy failed with exit code 1

Tail of the build log:

-- Performing Test have_C__Wundef
-- Performing Test have_C__Wundef - Success
-- Performing Test have_C__Wcast_align_strict
-- Performing Test have_C__Wcast_align_strict - Success
-- Performing Test have_C__Wno_duplicated_branches
-- Performing Test have_C__Wno_duplicated_branches - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/ecash-agora-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/ecash-agora-integration-tests/_deps && /usr/bin/cmake -P /work/abc-ci-builds/ecash-agora-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/ecash-agora-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/ecash-agora-integration-tests/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/ecash-agora-integration-tests/CMakeFiles/CMakeError.log".
Build ecash-agora-integration-tests failed with exit code 1

Tail of the build log:

-- Performing Test have_C__Wundef
-- Performing Test have_C__Wundef - Success
-- Performing Test have_C__Wcast_align_strict
-- Performing Test have_C__Wcast_align_strict - Success
-- Performing Test have_C__Wno_duplicated_branches
-- Performing Test have_C__Wno_duplicated_branches - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/ecash-lib-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/ecash-lib-integration-tests/_deps && /usr/bin/cmake -P /work/abc-ci-builds/ecash-lib-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/ecash-lib-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/ecash-lib-integration-tests/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/ecash-lib-integration-tests/CMakeFiles/CMakeError.log".
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

-- Performing Test have_C__Wundef
-- Performing Test have_C__Wundef - Success
-- Performing Test have_C__Wcast_align_strict
-- Performing Test have_C__Wcast_align_strict - Success
-- Performing Test have_C__Wno_duplicated_branches
-- Performing Test have_C__Wno_duplicated_branches - Success
-- Performing Test USE_ASM_X86_64
-- Performing Test USE_ASM_X86_64 - Success
-- Performing Test have_linker__Wl___no_undefined
-- Performing Test have_linker__Wl___no_undefined - Success
-- Found Event component event: /usr/lib/x86_64-linux-gnu/libevent.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: event 
-- Found Boost component headers: /usr/include (found suitable version "1.74.0", minimum required is "1.64")
-- Found Event component pthreads: /usr/lib/x86_64-linux-gnu/libevent_pthreads.so
-- Found Event: /usr/include (found suitable version "2.1.12-stable", minimum required is "2.1.8") found components: pthreads 
-- Performing Test fuzz_target_builds_without_main_fuzz
-- Performing Test fuzz_target_builds_without_main_fuzz - Failed
-- Found BerkeleyDB component CXX: /usr/lib/x86_64-linux-gnu/libdb_cxx-5.3.so
-- Found BerkeleyDB: /usr/include (found suitable version "5.3.28", minimum required is "5.3") found components: CXX 
-- Found SQLite3: /usr/include (found suitable version "3.40.1", minimum required is "3.7.17") 
-- Found ZeroMQ component zmq: /usr/lib/x86_64-linux-gnu/libzmq.so
-- Found ZeroMQ: /usr/include (found suitable version "4.3.4", minimum required is "4.1.5")  
-- Could NOT find Protobuf (missing: Protobuf_DIR)
-- Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so (found version "3.21.12") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "3.0.20")  
-- Looking for EVP_MD_CTX_new
-- Looking for EVP_MD_CTX_new - found
-- Found QREncode component qrencode: /usr/lib/x86_64-linux-gnu/libqrencode.so
-- Found QREncode: /usr/include   
[1/9] Creating directories for 'corrosion-populate'
[1/9] Performing download step (git clone) for 'corrosion-populate'
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
Cloning into 'corrosion-src'...
fatal: remote error: GitHub is temporarily limiting some unauthenticated downloads to protect the stability of the platform. Please retry later or authenticate.
-- Had to git clone more than once: 3 times.
CMake Error at corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake:39 (message):
  Failed to clone repository: 'https://github.com/corrosion-rs/corrosion.git'


FAILED: corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download /work/abc-ci-builds/chronik-client-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download 
cd /work/abc-ci-builds/chronik-client-integration-tests/_deps && /usr/bin/cmake -P /work/abc-ci-builds/chronik-client-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/tmp/corrosion-populate-gitclone.cmake && /usr/bin/cmake -E touch /work/abc-ci-builds/chronik-client-integration-tests/_deps/corrosion-subbuild/corrosion-populate-prefix/src/corrosion-populate-stamp/corrosion-populate-download
ninja: build stopped: subcommand failed.

CMake Error at /usr/share/cmake-3.25/Modules/FetchContent.cmake:1616 (message):
  Build step for corrosion failed: 1
Call Stack (most recent call first):
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756:EVAL:2 (__FetchContent_directPopulate)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1756 (cmake_language)
  /usr/share/cmake-3.25/Modules/FetchContent.cmake:1970 (FetchContent_Populate)
  cmake/modules/RustHelper.cmake:9 (FetchContent_MakeAvailable)
  chronik/CMakeLists.txt:6 (include)


-- Configuring incomplete, errors occurred!
See also "/work/abc-ci-builds/chronik-client-integration-tests/CMakeFiles/CMakeOutput.log".
See also "/work/abc-ci-builds/chronik-client-integration-tests/CMakeFiles/CMakeError.log".
Build chronik-client-integration-tests failed with exit code 1

Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review

Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────

(\(\
(• .•) Crossing the tensor streams to find bugs.

────────────────────────────────────────
Review complete
No findings ✔

12 files reviewed:

  • chronik/chronik-cpp/chronik_bridge.cpp
  • src/kernel/disconnected_transactions.cpp
  • src/kernel/mempool_persist.cpp
  • src/net_processing.cpp
  • src/node/interfaces.cpp
  • src/rpc/mempool.cpp
  • src/rpc/net.cpp
  • src/test/txpackage_tests.cpp
  • src/test/util/setup_common.cpp
  • src/txmempool.cpp

... and 2 more files
────────────────────────────────────────

Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review

Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────

(\(\
(• .•) I turn WTF moments into TILs.

────────────────────────────────────────
Review complete
No findings ✔

12 files reviewed:

  • chronik/chronik-cpp/chronik_bridge.cpp
  • src/kernel/disconnected_transactions.cpp
  • src/kernel/mempool_persist.cpp
  • src/net_processing.cpp
  • src/node/interfaces.cpp
  • src/rpc/mempool.cpp
  • src/rpc/net.cpp
  • src/test/txpackage_tests.cpp
  • src/test/util/setup_common.cpp
  • src/txmempool.cpp

... and 2 more files
────────────────────────────────────────

Fabien added inline comments.
src/txmempool.cpp
122 ↗(On Diff #61131)

any reason for not moving it ? I don't see the point of the copy here (ofc the prototype needs to be adjusted)

move the opts in the CTxMemPool constructor. The init.cpp code passes a lvalue, so the initial copy is still needed, but we avoid a second copy to the class member m_opts

Tail of the build log:

/work /work/abc-ci-builds/ai-review
Connecting to CodeRabbit... 0s elapsed
Preparing review... 2s elapsed

  ✗ Review limit reached

  Limit details: You’ve used all 5 included reviews currently available.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Check out review usage here.
  You can wait 13 minutes for the limit to reset.
  https://app.coderabbit.ai/settings/billing?tab=usage&orgId=79839cd4-7849-4bd5-8d6d-5ecaf453356e
  https://app.coderabbit.ai/dashboard/review-capacity?orgId=79839cd4-7849-4bd5-8d6d-5ecaf453356e

Build ai-review failed with exit code 1

Build Bitcoin ABC Diffs / Diff Testing (ai-review) passed.
CodeRabbit Review

Diff : committed changes only
Compare : HEAD → master
Directory : work
────────────────────────────────────────

(\(\
(• .•) Love the minimalism. Unfortunately the feature was also minimized.

────────────────────────────────────────
Review complete
No findings ✔

12 files reviewed:

  • chronik/chronik-cpp/chronik_bridge.cpp
  • src/kernel/disconnected_transactions.cpp
  • src/kernel/mempool_persist.cpp
  • src/net_processing.cpp
  • src/node/interfaces.cpp
  • src/rpc/mempool.cpp
  • src/rpc/net.cpp
  • src/test/txpackage_tests.cpp
  • src/test/util/setup_common.cpp
  • src/txmempool.cpp

... and 2 more files
────────────────────────────────────────

Now you can move at the callsite as well and really avoid the copy (can be a follow up)

This revision is now accepted and ready to land.Fri, Sep 4, 07:47

Now you can move at the callsite as well and really avoid the copy (can be a follow up)

Not sure if that is currently possible. We potentially reuse the opts in init.cpp (mempool is constructed in a for loop)

for (bool fLoaded = false; !fLoaded && !ShutdownRequested();) {
    node.mempool = std::make_unique<CTxMemPool>(config, mempool_opts);
    ...