Page MenuHomePhabricator

[avalanche] Extract out a method to add or update a node
ClosedPublic

Authored by Fabien on Jun 24 2021, 11:41.

Details

Reviewers
PiRK
Group Reviewers
Restricted Project
Maniphest Tasks
Restricted Maniphest Task
Commits
rABC427f5c5ae314: [avalanche] Extract out a method to add or update a node
Summary

The current PeerManager::addNode() API fetches the peer, checks the
delegation, adds or updates the node, then updates the node count on the
peer. The last 2 operations are extracted in another private method so
it can be called independently. This will be used for delaying node
addition when the peer proof has not been discovered yet.

Depends on D9699.

There is no change in behavior.

Ref T1634.

Test Plan
ninja all check-all

Diff Detail

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

Event Timeline

Fabien requested review of this revision.Jun 24 2021, 11:41

Tail of the build log:

[347/508] Linking C executable src/secp256k1/sign-bench
[348/508] Linking CXX static library src/libscript.a
[349/508] Linking C executable src/secp256k1/verify-bench
[350/508] Linking C executable src/secp256k1/recover-bench
[351/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[352/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[353/508] 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
[354/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[355/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[356/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[357/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[358/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[359/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[360/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[361/508] Linking CXX static library src/libcommon.a
[362/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[363/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[364/508] Linking CXX shared library src/libbitcoinconsensus.so.0.23.6
[365/508] Linking CXX executable src/bitcoin-cli
[366/508] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[367/508] Linking CXX executable src/bitcoin-tx
[368/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[369/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[370/508] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[371/508] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[372/508] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[373/508] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[374/508] Linking CXX static library src/wallet/libwallet.a
[375/508] Linking CXX static library src/wallet/libwallet-tool.a
[376/508] Linking CXX executable src/bitcoin-wallet
[377/508] Building CXX object src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o
FAILED: src/CMakeFiles/server.dir/avalanche/peermanager.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/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden   -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 -Wshadow -Wshadow-field -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++17 -MD -MT src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o -MF src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o.d -o src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o -c ../../src/avalanche/peermanager.cpp
../../src/avalanche/peermanager.cpp:63:12: error: no viable overloaded '='
        it = peers.find(peerid);
        ~~ ^ ~~~~~~~~~~~~~~~~~~
/usr/include/boost/multi_index/detail/hash_index_iterator.hpp:38:7: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const PeerSet::iterator' (aka 'const hashed_index_iterator<hashed_index_node<hashed_index_node<index_node_base<avalanche::Peer, std::allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_unique_tag>, boost::multi_index::detail::hashed_unique_tag>, bucket_array<allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_index_global_iterator_tag>'), but method is not marked const
class hashed_index_iterator:
      ^
/usr/include/boost/multi_index/detail/hash_index_iterator.hpp:38:7: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const PeerSet::iterator' (aka 'const hashed_index_iterator<hashed_index_node<hashed_index_node<index_node_base<avalanche::Peer, std::allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_unique_tag>, boost::multi_index::detail::hashed_unique_tag>, bucket_array<allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_index_global_iterator_tag>'), but method is not marked const
1 error generated.
[378/508] Building CXX object src/CMakeFiles/server.dir/avalanche/orphanproofpool.cpp.o
[379/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[380/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[381/508] Building CXX object src/CMakeFiles/server.dir/avalanche/processor.cpp.o
[382/508] Building CXX object src/CMakeFiles/server.dir/miner.cpp.o
[383/508] Building CXX object src/CMakeFiles/server.dir/rpc/avalanche.cpp.o
[384/508] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[385/508] Building CXX object src/CMakeFiles/server.dir/init.cpp.o
[386/508] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[387/508] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1
Fabien planned changes to this revision.Jun 24 2021, 11:44

Tail of the build log:

[337/508] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[338/508] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[339/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[340/508] Linking C static library src/secp256k1/libsecp256k1.a
[341/508] Linking CXX static library src/libbitcoinconsensus.a
[342/508] Building CXX object src/CMakeFiles/bitcoin-wallet.dir/bitcoin-wallet.cpp.o
[343/508] Linking C executable src/secp256k1/ecmult-bench
[344/508] Linking C executable src/secp256k1/internal-bench
[345/508] Linking C executable src/secp256k1/sign-bench
[346/508] Building CXX object src/CMakeFiles/script.dir/script/signingprovider.cpp.o
[347/508] Linking C executable src/secp256k1/verify-bench
[348/508] Linking C executable src/secp256k1/recover-bench
[349/508] Installing component secp256k1
-- Install configuration: "Debug"
-- 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
[350/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[351/508] Building CXX object src/CMakeFiles/script.dir/script/descriptor.cpp.o
[352/508] Linking CXX static library src/libscript.a
[353/508] Linking CXX static library src/libcommon.a
[354/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[355/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[356/508] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[357/508] Linking CXX shared library src/libbitcoinconsensus.so.0.23.6
[358/508] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[359/508] Linking CXX executable src/bitcoin-cli
[360/508] Linking CXX executable src/bitcoin-tx
[361/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[362/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[363/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[364/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[365/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[366/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[367/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[368/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[369/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[370/508] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[371/508] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[372/508] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[373/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[374/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[375/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[376/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[377/508] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[378/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[379/508] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[380/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[381/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[382/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[383/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[384/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[385/508] Linking CXX static library src/wallet/libwallet.a
[386/508] Linking CXX static library src/wallet/libwallet-tool.a
[387/508] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-debug failed with exit code 1

Tail of the build log:

[329/506] Linking C executable src/secp256k1/recover-bench
[330/506] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/uint256.cpp.o
[331/506] Building CXX object src/CMakeFiles/util.dir/util/message.cpp.o
[332/506] Building CXX object src/CMakeFiles/util.dir/util/error.cpp.o
[333/506] Building CXX object src/CMakeFiles/util.dir/util/settings.cpp.o
[334/506] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/util/strencodings.cpp.o
[335/506] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/primitives/transaction.cpp.o
[336/506] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/consensus/tx_check.cpp.o
[337/506] Building CXX object src/CMakeFiles/bitcoinconsensus.dir/pubkey.cpp.o
[338/506] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[339/506] Building CXX object src/CMakeFiles/bitcoin-tx.dir/bitcoin-tx.cpp.o
[340/506] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[341/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[342/506] Building CXX object src/CMakeFiles/util.dir/util/time.cpp.o
[343/506] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[344/506] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[345/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[346/506] Building CXX object src/CMakeFiles/util.dir/util/system.cpp.o
[347/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[348/506] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[349/506] Linking CXX static library src/libutil.a
[350/506] Linking CXX static library src/librpcclient.a
[351/506] Linking CXX static library src/libbitcoinconsensus.a
[352/506] Linking CXX static library src/libscript.a
[353/506] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[354/506] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[355/506] Linking CXX static library src/libcommon.a
[356/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[357/506] Linking CXX shared library src/libbitcoinconsensus.so.0.23.6
[358/506] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[359/506] Linking CXX executable src/bitcoin-cli
[360/506] Linking CXX executable src/bitcoin-tx
[361/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[362/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[363/506] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqabstractnotifier.cpp.o
[364/506] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[365/506] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[366/506] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqnotificationinterface.cpp.o
[367/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[368/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[369/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[370/506] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqpublishnotifier.cpp.o
[371/506] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[372/506] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[373/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[374/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[375/506] Building CXX object src/zmq/CMakeFiles/zmq.dir/zmqrpc.cpp.o
[376/506] Linking CXX static library src/zmq/libzmq.a
[377/506] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[378/506] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[379/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[380/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[381/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[382/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[383/506] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[384/506] Linking CXX static library src/wallet/libwallet.a
[385/506] Linking CXX static library src/wallet/libwallet-tool.a
[386/506] Linking CXX executable src/bitcoin-wallet
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1

Tail of the build log:

[346/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[347/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[348/508] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[349/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[350/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/__/interfaces/wallet.cpp.o
[351/508] Linking CXX static library src/libcommon.a
[352/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[353/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[354/508] Linking CXX shared library src/libbitcoinconsensus.so.0.23.6
[355/508] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[356/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[357/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[358/508] Linking CXX executable src/bitcoin-cli
[359/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[360/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[361/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[362/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcdump.cpp.o
[363/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[364/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[365/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[366/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[367/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[368/508] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[369/508] Linking CXX executable src/bitcoin-tx
[370/508] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[371/508] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[372/508] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[373/508] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[374/508] Linking CXX static library src/wallet/libwallet.a
[375/508] Linking CXX static library src/wallet/libwallet-tool.a
[376/508] Linking CXX executable src/bitcoin-wallet
[377/508] Building CXX object src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o
FAILED: src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o 
/usr/bin/ccache /usr/bin/c++  -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/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIC -fvisibility=hidden   -fstack-reuse=none -fstack-protector-all -Wstack-protector -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wformat-security -Wno-unused-parameter -Wno-implicit-fallthrough -pthread -std=gnu++17 -MD -MT src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o -MF src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o.d -o src/CMakeFiles/server.dir/avalanche/peermanager.cpp.o -c ../../src/avalanche/peermanager.cpp
../../src/avalanche/peermanager.cpp: In member function ‘bool avalanche::PeerManager::addOrUpdateNode(const iterator&, NodeId, CPubKey)’:
../../src/avalanche/peermanager.cpp:63:31: error: passing ‘const iterator’ {aka ‘const boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::index_node_base<avalanche::Peer, std::allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_unique_tag>, boost::multi_index::detail::hashed_unique_tag>, boost::multi_index::detail::bucket_array<std::allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_index_global_iterator_tag>’} as ‘this’ argument discards qualifiers [-fpermissive]
         it = peers.find(peerid);
                               ^
In file included from /usr/include/boost/multi_index/hashed_index.hpp:33,
                 from ../../src/./txmempool.h:17,
                 from ../../src/./validation.h:27,
                 from ../../src/./net.h:28,
                 from ../../src/./avalanche/node.h:8,
                 from ../../src/./avalanche/peermanager.h:8,
                 from ../../src/avalanche/peermanager.cpp:5:
/usr/include/boost/multi_index/detail/hash_index_iterator.hpp:38:7: note:   in call to ‘constexpr boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::index_node_base<avalanche::Peer, std::allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_unique_tag>, boost::multi_index::detail::hashed_unique_tag>, boost::multi_index::detail::bucket_array<std::allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_index_global_iterator_tag>& boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::index_node_base<avalanche::Peer, std::allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_unique_tag>, boost::multi_index::detail::hashed_unique_tag>, boost::multi_index::detail::bucket_array<std::allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_index_global_iterator_tag>::operator=(boost::multi_index::detail::hashed_index_iterator<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::hashed_index_node<boost::multi_index::detail::index_node_base<avalanche::Peer, std::allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_unique_tag>, boost::multi_index::detail::hashed_unique_tag>, boost::multi_index::detail::bucket_array<std::allocator<avalanche::Peer> >, boost::multi_index::detail::hashed_index_global_iterator_tag>&&)’
 class hashed_index_iterator:
       ^~~~~~~~~~~~~~~~~~~~~
[378/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[379/508] Building CXX object src/CMakeFiles/server.dir/avalanche/orphanproofpool.cpp.o
[380/508] Building CXX object src/CMakeFiles/server.dir/avalanche/processor.cpp.o
[381/508] Building CXX object src/CMakeFiles/server.dir/miner.cpp.o
[382/508] Building CXX object src/CMakeFiles/server.dir/rpc/avalanche.cpp.o
[383/508] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[384/508] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[385/508] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
[386/508] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[387/508] Building CXX object src/CMakeFiles/server.dir/init.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Tail of the build log:

[308/455] Building CXX object src/CMakeFiles/server.dir/rpc/command.cpp.o
[309/455] Building CXX object src/CMakeFiles/server.dir/pow/aserti32d.cpp.o
[310/455] Building CXX object src/CMakeFiles/server.dir/pow/pow.cpp.o
[311/455] Building CXX object src/CMakeFiles/server.dir/net.cpp.o
[312/455] Building CXX object src/CMakeFiles/server.dir/node/ui_interface.cpp.o
[313/455] Building CXX object src/CMakeFiles/server.dir/shutdown.cpp.o
[314/455] Building CXX object src/CMakeFiles/server.dir/script/scriptcache.cpp.o
[315/455] Building CXX object src/CMakeFiles/server.dir/rpc/abc.cpp.o
[316/455] Building CXX object src/CMakeFiles/server.dir/rest.cpp.o
[317/455] Building CXX object src/CMakeFiles/server.dir/script/sigcache.cpp.o
[318/455] Building CXX object src/CMakeFiles/server.dir/timedata.cpp.o
[319/455] Building CXX object src/CMakeFiles/server.dir/rpc/avalanche.cpp.o
[320/455] Building CXX object src/CMakeFiles/server.dir/rpc/misc.cpp.o
[321/455] Building CXX object src/CMakeFiles/server.dir/rpc/server.cpp.o
[322/455] Building CXX object src/CMakeFiles/server.dir/versionbits.cpp.o
[323/455] Building CXX object src/CMakeFiles/server.dir/rpc/mining.cpp.o
[324/455] Building C object src/secp256k1/CMakeFiles/sign-bench.dir/src/bench_sign.c.o
[325/455] Building CXX object src/CMakeFiles/server.dir/dummywallet.cpp.o
[326/455] Building CXX object src/CMakeFiles/server.dir/rpc/net.cpp.o
[327/455] Building CXX object src/CMakeFiles/server.dir/txdb.cpp.o
[328/455] Building C object src/secp256k1/CMakeFiles/recover-bench.dir/src/bench_recover.c.o
[329/455] Building C object src/secp256k1/CMakeFiles/verify-bench.dir/src/bench_verify.c.o
[330/455] Building C object src/secp256k1/CMakeFiles/ecmult-bench.dir/src/bench_ecmult.c.o
[331/455] Building CXX object src/CMakeFiles/server.dir/validationinterface.cpp.o
[332/455] Building C object src/secp256k1/CMakeFiles/internal-bench.dir/src/bench_internal.c.o
[333/455] Building CXX object src/test/CMakeFiles/testutil.dir/util/str.cpp.o
[334/455] Building C object src/secp256k1/CMakeFiles/secp256k1.dir/src/secp256k1.c.o
[335/455] Linking C static library src/secp256k1/libsecp256k1.a
[336/455] Building CXX object src/CMakeFiles/server.dir/init.cpp.o
[337/455] Linking C executable src/secp256k1/ecmult-bench
[338/455] Building CXX object src/test/CMakeFiles/testutil.dir/util/logging.cpp.o
[339/455] Linking C executable src/secp256k1/internal-bench
[340/455] Linking C executable src/secp256k1/sign-bench
[341/455] Linking C executable src/secp256k1/verify-bench
[342/455] Linking C executable src/secp256k1/recover-bench
[343/455] Linking CXX static library src/libcommon.a
[344/455] Building CXX object src/CMakeFiles/server.dir/torcontrol.cpp.o
[345/455] Linking CXX static library src/libscript.a
[346/455] Linking CXX static library src/libbitcoinconsensus.a
[347/455] Linking CXX shared library src/libbitcoinconsensus.so.0.23.6
[348/455] Creating library symlink src/libbitcoinconsensus.so.0 src/libbitcoinconsensus.so
[349/455] Linking CXX executable src/bitcoin-cli
[350/455] Linking CXX executable src/bitcoin-tx
[351/455] Building CXX object src/test/CMakeFiles/testutil.dir/util/blockfilter.cpp.o
[352/455] Building CXX object src/test/CMakeFiles/testutil.dir/util/transaction_utils.cpp.o
[353/455] Building CXX object src/test/CMakeFiles/testutil.dir/util/wallet.cpp.o
[354/455] Building CXX object src/CMakeFiles/server.dir/txmempool.cpp.o
[355/455] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/dns.cpp.o
[356/455] Building CXX object src/test/CMakeFiles/testutil.dir/util/mining.cpp.o
[357/455] Building CXX object src/CMakeFiles/server.dir/net_processing.cpp.o
[358/455] Building CXX object src/test/CMakeFiles/testutil.dir/util/net.cpp.o
[359/455] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/db.cpp.o
[360/455] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
[361/455] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/bitcoin.cpp.o
[362/455] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[363/455] Building CXX object src/CMakeFiles/server.dir/rpc/rawtransaction.cpp.o
[364/455] Building CXX object src/CMakeFiles/server.dir/rpc/blockchain.cpp.o
[365/455] Building CXX object src/CMakeFiles/server.dir/validation.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1
Fabien edited the summary of this revision. (Show Details)

Rebase on top of D9699 to fix the build failure

This revision is now accepted and ready to land.Jun 24 2021, 14:38