Page MenuHomePhabricator

Use serialization parameters for CAddress serialization
ClosedPublic

Authored by PiRK on Dec 5 2025, 12:20.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Commits
rABCaa876361e18d: Use serialization parameters for CAddress serialization
Summary

This also cleans up the addrman (de)serialization code paths to only
allow Disk serialization. Some unit tests previously forced a
Network serialization, which does not make sense, because Bitcoin ABC
in production will always Disk serialize.
This cleanup idea was suggested by Pieter Wuille and implemented by Anthony
Towns.

Co-authored-by: Pieter Wuille <pieter@wuille.net>
Co-authored-by: Anthony Towns <aj@erisian.com.au>

This concludes backport of core#25284
https://github.com/bitcoin/bitcoin/pull/25284/commits/fac81affb527132945773a5315bd27fec61ec52f

Depends on D19056

Test Plan

ninja all check-all bitcoin-fuzzers

Run the seeder for a while, check there are results (cat dnsseed.dump).

Event Timeline

Tail of the build log:

                 from /work/src/./chainparams.h:9,
                 from /work/src/./seeder/bitcoin.h:8,
                 from /work/src/seeder/bitcoin.cpp:5:
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Unserialize(Stream&) [with Stream = CDataStream]’:
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = CNetAddr&]’
/work/src/./serialize.h:1238:18:   required from ‘void UnserializeMany(Stream&, Arg&&, Args&& ...) [with Stream = CDataStream; Arg = CNetAddr&; Args = {Wrapper<CustomUintFormatter<2, true>, short unsigned int&>&}]’
/work/src/./serialize.h:1251:22:   required from ‘void SerReadWriteMany(Stream&, ActionUnserialize, Args&& ...) [with Stream = CDataStream; Args = {CNetAddr&, Wrapper<CustomUintFormatter<2, true>, short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CDataStream; Type = CService; Operation = ActionUnserialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Unser(Stream&, CService&) [with Stream = CDataStream]’
/work/src/./netaddress.h:575:5:   required from ‘void CService::Unserialize(Stream&) [with Stream = CDataStream]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = CService&]’
/work/src/./streams.h:418:22:   required from ‘CDataStream& CDataStream::operator>>(T&&) [with T = CService&]’
/work/src/seeder/bitcoin.cpp:54:17:   required from here
/work/src/./netaddress.h:273:15: error: ‘class CDataStream’ has no member named ‘GetParams’
  273 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
In file included from /work/src/./netaddress.h:16:
/work/src/./protocol.h: In instantiation of ‘static void CAddress::Unser(Stream&, CAddress&) [with Stream = CDataStream]’:
/work/src/./protocol.h:503:5:   required from ‘void CAddress::Unserialize(Stream&) [with Stream = CDataStream]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = CAddress&]’
/work/src/./serialize.h:979:20:   required from ‘static void DefaultFormatter::Unser(Stream&, T&) [with Stream = CDataStream; T = CAddress]’
/work/src/./serialize.h:809:32:   required from ‘void VectorFormatter<Formatter>::Unser(Stream&, V&) [with Stream = CDataStream; V = std::vector<CAddress>; Formatter = DefaultFormatter]’
/work/src/./serialize.h:620:26:   required from ‘void Wrapper<Formatter, T>::Unserialize(Stream&) [with Stream = CDataStream; Formatter = VectorFormatter<DefaultFormatter>; T = std::vector<CAddress>&]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = Wrapper<VectorFormatter<DefaultFormatter>, std::vector<CAddress>&>]’
/work/src/./serialize.h:1075:20:   required from ‘void Unserialize(Stream&, std::vector<_ValT, _Allocator>&) [with Stream = CDataStream; T = CAddress; A = std::allocator<CAddress>]’
/work/src/./streams.h:418:22:   required from ‘CDataStream& CDataStream::operator>>(T&&) [with T = std::vector<CAddress>&]’
/work/src/seeder/bitcoin.cpp:100:17:   required from here
/work/src/./serialize.h:263:57: error: ‘class CDataStream’ has no member named ‘GetParams’
  263 |         SerializationOps(obj, s, ActionUnserialize{}, s.GetParams());          \
      |                                                       ~~^~~~~~~~~
/work/src/./serialize.h:300:5: note: in expansion of macro ‘FORMATTER_METHODS_PARAMS’
  300 |     FORMATTER_METHODS_PARAMS(cls, obj, paramcls, paramobj)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./protocol.h:503:5: note: in expansion of macro ‘SERIALIZE_METHODS_PARAMS’
  503 |     SERIALIZE_METHODS_PARAMS(CAddress, obj, SerParams, params) {
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Serialize(Stream&) const [with Stream = CVectorWriter]’:
/work/src/./serialize.h:955:16:   required from ‘void Serialize(Stream&, const T&) [with Stream = CVectorWriter; T = CNetAddr]’
/work/src/./serialize.h:1230:16:   required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = CNetAddr; Args = {Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./serialize.h:1245:20:   required from ‘void SerReadWriteMany(Stream&, ActionSerialize, const Args& ...) [with Stream = CVectorWriter; Args = {CNetAddr, Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CVectorWriter; Type = const CService; Operation = ActionSerialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Ser(Stream&, const CService&) [with Stream = CVectorWriter]’
/work/src/./netaddress.h:575:5:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/work/src/./serialize.h:1231:20:   recursively required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = long unsigned int; Args = {long int, long unsigned int, CService, long unsigned int, CService, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, unsigned char}]’
/work/src/./serialize.h:1231:20:   required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = int; Args = {long unsigned int, long int, long unsigned int, CService, long unsigned int, CService, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, unsigned char}]’
/work/src/./streams.h:89:24:   required from ‘CVectorWriter::CVectorWriter(int, int, std::vector<unsigned char>&, size_t, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; size_t = long unsigned int]’
/work/src/./netmessagemaker.h:23:9:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(int, std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./netmessagemaker.h:30:20:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./seeder/messagewriter.h:18:42:   required from ‘void MessageWriter::WriteMessage(CDataStream&, std::string, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/seeder/bitcoin.cpp:308:32:   required from here
/work/src/./netaddress.h:262:15: error: ‘class CVectorWriter’ has no member named ‘GetParams’
  262 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
[455/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[456/588] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[457/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[458/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[459/588] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-debug failed with exit code 1

Tail of the build log:

    a.Serialize(os);
      ^
/work/src/./serialize.h:1230:7: note: in instantiation of function template specialization 'Serialize<CVectorWriter, CNetAddr>' requested here
    ::Serialize(s, arg);
      ^
/work/src/./serialize.h:1245:7: note: in instantiation of function template specialization 'SerializeMany<CVectorWriter, CNetAddr, Wrapper<CustomUintFormatter<2, true>, const unsigned short &>>' requested here
    ::SerializeMany(s, args...);
      ^
/work/src/./netaddress.h:576:9: note: in instantiation of function template specialization 'SerReadWriteMany<CVectorWriter, CNetAddr, Wrapper<CustomUintFormatter<2, true>, const unsigned short &>>' requested here
        READWRITE(AsBase<CNetAddr>(obj),
        ^
/work/src/./serialize.h:189:27: note: expanded from macro 'READWRITE'
#define READWRITE(...) (::SerReadWriteMany(s, ser_action, __VA_ARGS__))
                          ^
/work/src/./netaddress.h:575:5: note: in instantiation of function template specialization 'CService::SerializationOps<CVectorWriter, const CService, ActionSerialize>' requested here
    SERIALIZE_METHODS(CService, obj) {
    ^
/work/src/./serialize.h:291:5: note: expanded from macro 'SERIALIZE_METHODS'
    FORMATTER_METHODS(cls, obj)
    ^
/work/src/./serialize.h:217:9: note: expanded from macro 'FORMATTER_METHODS'
        SerializationOps(obj, s, ActionSerialize());                           \
        ^
/work/src/./netaddress.h:575:5: note: (skipping 7 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
/work/src/./serialize.h:290:5: note: expanded from macro 'SERIALIZE_METHODS'
    BASE_SERIALIZE_METHODS(cls)                                                \
    ^
/work/src/./serialize.h:273:9: note: expanded from macro 'BASE_SERIALIZE_METHODS'
        Ser(s, *this);                                                         \
        ^
/work/src/./streams.h:89:11: note: in instantiation of function template specialization 'SerializeMany<CVectorWriter, int, unsigned long, long, unsigned long, CService, unsigned long, CService, unsigned long, std::basic_string<char>, int, unsigned char>' requested here
        ::SerializeMany(*this, std::forward<Args>(args)...);
          ^
/work/src/./netmessagemaker.h:23:9: note: in instantiation of function template specialization 'CVectorWriter::CVectorWriter<const int &, unsigned long &, long, unsigned long &, CService &, unsigned long &, CService, unsigned long &, const std::basic_string<char> &, int, unsigned char &>' requested here
        CVectorWriter{SER_NETWORK, nFlags | nVersion, msg.data, 0,
        ^
/work/src/./netmessagemaker.h:30:16: note: in instantiation of function template specialization 'CNetMsgMaker::Make<const int &, unsigned long &, long, unsigned long &, CService &, unsigned long &, CService, unsigned long &, const std::basic_string<char> &, int, unsigned char &>' requested here
        return Make(0, std::move(msg_type), std::forward<Args>(args)...);
               ^
/work/src/./seeder/messagewriter.h:18:38: note: in instantiation of function template specialization 'CNetMsgMaker::Make<const int &, unsigned long &, long, unsigned long &, CService &, unsigned long &, CService, unsigned long &, const std::basic_string<char> &, int, unsigned char &>' requested here
                                    .Make(command, std::forward<Args>(args)...);
                                     ^
/work/src/seeder/bitcoin.cpp:308:20: note: in instantiation of function template specialization 'MessageWriter::WriteMessage<const int &, unsigned long &, long, unsigned long &, CService &, unsigned long &, CService, unsigned long &, const std::basic_string<char> &, int, unsigned char &>' requested here
    MessageWriter::WriteMessage(vSend, NetMsgType::VERSION, PROTOCOL_VERSION,
                   ^
3 errors generated.
[448/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[449/588] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[450/588] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[451/588] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[452/588] Linking CXX executable src/iguana/iguana
[453/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[454/588] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[455/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[456/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[457/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[458/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[459/588] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1

Tail of the build log:

/work/src/./streams.h:89:24:   required from ‘CVectorWriter::CVectorWriter(int, int, std::vector<unsigned char>&, size_t, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; size_t = long unsigned int]’
/work/src/./netmessagemaker.h:23:9:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(int, std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./netmessagemaker.h:30:20:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./seeder/messagewriter.h:18:42:   required from ‘void MessageWriter::WriteMessage(CDataStream&, std::string, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/seeder/bitcoin.cpp:308:32:   required from here
/work/src/./netaddress.h:262:15: error: ‘class CVectorWriter’ has no member named ‘GetParams’
  262 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
[448/588] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[449/588] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
FAILED: src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/abc-ci-builds/build-diff/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-diff/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Woverloaded-virtual -Wno-unused-parameter -Wno-implicit-fallthrough -Wno-psabi -std=gnu++20 -MD -MT src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o -MF src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o.d -o src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o -c /work/src/seeder/main.cpp
In file included from /work/src/./kernel/chainparams.h:10,
                 from /work/src/./chainparams.h:9,
                 from /work/src/./dnsseeds.h:8,
                 from /work/src/seeder/main.cpp:7:
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Serialize(Stream&) const [with Stream = CAutoFile]’:
/work/src/./serialize.h:955:16:   required from ‘void Serialize(Stream&, const T&) [with Stream = CAutoFile; T = CNetAddr]’
/work/src/./serialize.h:1230:16:   required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CAutoFile; Arg = CNetAddr; Args = {Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./serialize.h:1245:20:   required from ‘void SerReadWriteMany(Stream&, ActionSerialize, const Args& ...) [with Stream = CAutoFile; Args = {CNetAddr, Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CAutoFile; Type = const CService; Operation = ActionSerialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Ser(Stream&, const CService&) [with Stream = CAutoFile]’
/work/src/./netaddress.h:575:5:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/work/src/./serialize.h:1101:18:   required from ‘void Serialize(Stream&, const std::map<K, T, Pred, A>&) [with Stream = CAutoFile; K = CService; T = long int; Pred = std::less<CService>; A = std::allocator<std::pair<const CService, long int> >]’
/work/src/./streams.h:603:20:   required from ‘CAutoFile& CAutoFile::operator<<(const T&) [with T = std::map<CService, long int>]’
/work/src/./seeder/db.h:384:11:   required from ‘void CAddrDb::Serialize(Stream&) const [with Stream = CAutoFile]’
/work/src/./serialize.h:955:16:   required from ‘void Serialize(Stream&, const T&) [with Stream = CAutoFile; T = CAddrDb]’
/work/src/./streams.h:603:20:   required from ‘CAutoFile& CAutoFile::operator<<(const T&) [with T = CAddrDb]’
/work/src/seeder/main.cpp:256:27:   required from here
/work/src/./netaddress.h:262:15: error: ‘class CAutoFile’ has no member named ‘GetParams’
  262 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Unserialize(Stream&) [with Stream = CAutoFile]’:
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CAutoFile; T = CNetAddr&]’
/work/src/./serialize.h:1238:18:   required from ‘void UnserializeMany(Stream&, Arg&&, Args&& ...) [with Stream = CAutoFile; Arg = CNetAddr&; Args = {Wrapper<CustomUintFormatter<2, true>, short unsigned int&>&}]’
/work/src/./serialize.h:1251:22:   required from ‘void SerReadWriteMany(Stream&, ActionUnserialize, Args&& ...) [with Stream = CAutoFile; Args = {CNetAddr&, Wrapper<CustomUintFormatter<2, true>, short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CAutoFile; Type = CService; Operation = ActionUnserialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Unser(Stream&, CService&) [with Stream = CAutoFile]’
/work/src/./netaddress.h:575:5:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/work/src/./serialize.h:1112:20:   required from ‘void Unserialize(Stream&, std::map<K, T, Pred, A>&) [with Stream = CAutoFile; K = CService; T = long int; Pred = std::less<CService>; A = std::allocator<std::pair<const CService, long int> >]’
/work/src/./streams.h:608:22:   required from ‘CAutoFile& CAutoFile::operator>>(T&&) [with T = std::map<CService, long int>&]’
/work/src/./seeder/db.h:415:11:   required from ‘void CAddrDb::Unserialize(Stream&) [with Stream = CAutoFile]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CAutoFile; T = CAddrDb&]’
/work/src/./streams.h:608:22:   required from ‘CAutoFile& CAutoFile::operator>>(T&&) [with T = CAddrDb&]’
/work/src/seeder/main.cpp:412:15:   required from here
/work/src/./netaddress.h:273:15: error: ‘class CAutoFile’ has no member named ‘GetParams’
  273 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
[450/588] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[451/588] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[452/588] Linking CXX executable src/iguana/iguana
[453/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[454/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[455/588] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[456/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[457/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[458/588] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[459/588] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Tail of the build log:

In file included from /work/src/./kernel/chainparams.h:10,
                 from /work/src/./chainparams.h:9,
                 from /work/src/./seeder/bitcoin.h:8,
                 from /work/src/seeder/bitcoin.cpp:5:
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Unserialize(Stream&) [with Stream = CDataStream]’:
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = CNetAddr&]’
/work/src/./serialize.h:1238:18:   required from ‘void UnserializeMany(Stream&, Arg&&, Args&& ...) [with Stream = CDataStream; Arg = CNetAddr&; Args = {Wrapper<CustomUintFormatter<2, true>, short unsigned int&>&}]’
/work/src/./serialize.h:1251:22:   required from ‘void SerReadWriteMany(Stream&, ActionUnserialize, Args&& ...) [with Stream = CDataStream; Args = {CNetAddr&, Wrapper<CustomUintFormatter<2, true>, short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CDataStream; Type = CService; Operation = ActionUnserialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Unser(Stream&, CService&) [with Stream = CDataStream]’
/work/src/./netaddress.h:575:5:   required from ‘void CService::Unserialize(Stream&) [with Stream = CDataStream]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = CService&]’
/work/src/./streams.h:418:22:   required from ‘CDataStream& CDataStream::operator>>(T&&) [with T = CService&]’
/work/src/seeder/bitcoin.cpp:54:17:   required from here
/work/src/./netaddress.h:273:15: error: ‘class CDataStream’ has no member named ‘GetParams’
  273 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
In file included from /work/src/./netaddress.h:16:
/work/src/./protocol.h: In instantiation of ‘static void CAddress::Unser(Stream&, CAddress&) [with Stream = CDataStream]’:
/work/src/./protocol.h:503:5:   required from ‘void CAddress::Unserialize(Stream&) [with Stream = CDataStream]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = CAddress&]’
/work/src/./serialize.h:979:20:   required from ‘static void DefaultFormatter::Unser(Stream&, T&) [with Stream = CDataStream; T = CAddress]’
/work/src/./serialize.h:809:32:   required from ‘void VectorFormatter<Formatter>::Unser(Stream&, V&) [with Stream = CDataStream; V = std::vector<CAddress>; Formatter = DefaultFormatter]’
/work/src/./serialize.h:620:26:   required from ‘void Wrapper<Formatter, T>::Unserialize(Stream&) [with Stream = CDataStream; Formatter = VectorFormatter<DefaultFormatter>; T = std::vector<CAddress>&]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = Wrapper<VectorFormatter<DefaultFormatter>, std::vector<CAddress>&>]’
/work/src/./serialize.h:1075:20:   required from ‘void Unserialize(Stream&, std::vector<_ValT, _Allocator>&) [with Stream = CDataStream; T = CAddress; A = std::allocator<CAddress>]’
/work/src/./streams.h:418:22:   required from ‘CDataStream& CDataStream::operator>>(T&&) [with T = std::vector<CAddress>&]’
/work/src/seeder/bitcoin.cpp:100:17:   required from here
/work/src/./serialize.h:263:57: error: ‘class CDataStream’ has no member named ‘GetParams’
  263 |         SerializationOps(obj, s, ActionUnserialize{}, s.GetParams());          \
      |                                                       ~~^~~~~~~~~
/work/src/./serialize.h:300:5: note: in expansion of macro ‘FORMATTER_METHODS_PARAMS’
  300 |     FORMATTER_METHODS_PARAMS(cls, obj, paramcls, paramobj)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./protocol.h:503:5: note: in expansion of macro ‘SERIALIZE_METHODS_PARAMS’
  503 |     SERIALIZE_METHODS_PARAMS(CAddress, obj, SerParams, params) {
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Serialize(Stream&) const [with Stream = CVectorWriter]’:
/work/src/./serialize.h:955:16:   required from ‘void Serialize(Stream&, const T&) [with Stream = CVectorWriter; T = CNetAddr]’
/work/src/./serialize.h:1230:16:   required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = CNetAddr; Args = {Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./serialize.h:1245:20:   required from ‘void SerReadWriteMany(Stream&, ActionSerialize, const Args& ...) [with Stream = CVectorWriter; Args = {CNetAddr, Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CVectorWriter; Type = const CService; Operation = ActionSerialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Ser(Stream&, const CService&) [with Stream = CVectorWriter]’
/work/src/./netaddress.h:575:5:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/work/src/./serialize.h:1231:20:   recursively required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = long unsigned int; Args = {long int, long unsigned int, CService, long unsigned int, CService, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, unsigned char}]’
/work/src/./serialize.h:1231:20:   required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = int; Args = {long unsigned int, long int, long unsigned int, CService, long unsigned int, CService, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, unsigned char}]’
/work/src/./streams.h:89:24:   required from ‘CVectorWriter::CVectorWriter(int, int, std::vector<unsigned char>&, size_t, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; size_t = long unsigned int]’
/work/src/./netmessagemaker.h:23:9:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(int, std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./netmessagemaker.h:30:20:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./seeder/messagewriter.h:18:42:   required from ‘void MessageWriter::WriteMessage(CDataStream&, std::string, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/seeder/bitcoin.cpp:308:32:   required from here
/work/src/./netaddress.h:262:15: error: ‘class CVectorWriter’ has no member named ‘GetParams’
  262 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
[567/668] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[568/668] Linking CXX executable src/iguana/iguana
[569/668] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[570/668] Building CXX object src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Tail of the build log:

FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o 
/usr/bin/ccache /usr/bin/clang++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/abc-ci-builds/build-fuzzer/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-fuzzer/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fsanitize=fuzzer -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++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o -c /work/src/test/fuzz/socks5.cpp
In file included from /work/src/test/fuzz/socks5.cpp:8:
/work/src/./test/fuzz/util.h:134:9: error: no matching function for call to 'ConsumeRandomLengthByteVector'
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:81:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
1 error generated.
[404/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/context.cpp.o
[405/433] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o
FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o 
/usr/bin/ccache /usr/bin/clang++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/abc-ci-builds/build-fuzzer/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-fuzzer/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fsanitize=fuzzer -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++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o -c /work/src/test/fuzz/util.cpp
In file included from /work/src/test/fuzz/util.cpp:5:
/work/src/./test/fuzz/util.h:134:9: error: no matching function for call to 'ConsumeRandomLengthByteVector'
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:81:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
1 error generated.
[406/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[407/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[408/433] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/transaction.cpp.o
[409/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[410/433] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/txrequest.cpp.o
[411/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[412/433] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o
FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o 
/usr/bin/ccache /usr/bin/clang++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DLEVELDB_ATOMIC_PRESENT -DLEVELDB_PLATFORM_POSIX -DOS_LINUX -I/work/src/. -I/work/abc-ci-builds/build-fuzzer/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-fuzzer/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fsanitize=fuzzer -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++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o -c /work/src/test/fuzz/validation_load_mempool.cpp
In file included from /work/src/test/fuzz/validation_load_mempool.cpp:12:
/work/src/./test/fuzz/util.h:134:9: error: no matching function for call to 'ConsumeRandomLengthByteVector'
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:81:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
1 error generated.
[413/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[414/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[415/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[416/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[417/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[418/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[419/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[420/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[421/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[422/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[423/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[424/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[425/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[426/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[427/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[428/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[429/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[430/433] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[431/433] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-fuzzer failed with exit code 1

Tail of the build log:

             ^
/work/src/./protocol.h:503:5: error: no member named 'GetParams' in 'CDataStream' [clang-diagnostic-error]
    SERIALIZE_METHODS_PARAMS(CAddress, obj, SerParams, params) {
    ^
/work/src/./serialize.h:300:5: note: expanded from macro 'SERIALIZE_METHODS_PARAMS'
    FORMATTER_METHODS_PARAMS(cls, obj, paramcls, paramobj)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./serialize.h:263:57: note: expanded from macro 'FORMATTER_METHODS_PARAMS'
        SerializationOps(obj, s, ActionUnserialize{}, s.GetParams());          \
                                                      ~ ^
/work/src/./protocol.h:503:5: note: in instantiation of function template specialization 'CAddress::Unser<CDataStream>' requested here
    SERIALIZE_METHODS_PARAMS(CAddress, obj, SerParams, params) {
    ^
/work/src/./serialize.h:299:5: note: expanded from macro 'SERIALIZE_METHODS_PARAMS'
    BASE_SERIALIZE_METHODS(cls)                                                \
    ^
/work/src/./serialize.h:278:9: note: expanded from macro 'BASE_SERIALIZE_METHODS'
        Unser(s, *this);                                                       \
        ^
/work/src/./serialize.h:963:7: note: in instantiation of function template specialization 'CAddress::Unserialize<CDataStream>' requested here
    a.Unserialize(is);
      ^
/work/src/./serialize.h:979:9: note: in instantiation of function template specialization 'Unserialize<CDataStream, CAddress &>' requested here
        Unserialize(s, t);
        ^
/work/src/./serialize.h:809:27: note: in instantiation of function template specialization 'DefaultFormatter::Unser<CDataStream, CAddress>' requested here
                formatter.Unser(s, v.back());
                          ^
/work/src/./serialize.h:620:21: note: in instantiation of function template specialization 'VectorFormatter<DefaultFormatter>::Unser<CDataStream, std::vector<CAddress>>' requested here
        Formatter().Unser(s, m_object);
                    ^
/work/src/./serialize.h:963:7: note: in instantiation of function template specialization 'Wrapper<VectorFormatter<DefaultFormatter>, std::vector<CAddress> &>::Unserialize<CDataStream>' requested here
    a.Unserialize(is);
      ^
/work/src/./serialize.h:1075:9: note: in instantiation of function template specialization 'Unserialize<CDataStream, Wrapper<VectorFormatter<DefaultFormatter>, std::vector<CAddress> &>>' requested here
        Unserialize(is, Using<VectorFormatter<DefaultFormatter>>(v));
        ^
/work/src/./streams.h:418:11: note: in instantiation of function template specialization 'Unserialize<CDataStream, CAddress, std::allocator<CAddress>>' requested here
        ::Unserialize(*this, obj);
          ^
/work/src/seeder/bitcoin.cpp:100:14: note: in instantiation of function template specialization 'CDataStream::operator>><std::vector<CAddress> &>' requested here
        recv >> vAddrNew;
             ^
2904 warnings and 3 errors generated.
Error while processing /work/src/seeder/bitcoin.cpp.
Suppressed 2904 warnings (2904 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler error(s).
[461/598] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[462/598] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[463/598] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[464/598] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[465/598] Linking CXX executable src/iguana/iguana
[466/598] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[467/598] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[468/598] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[469/598] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[470/598] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1

Tail of the build log:

                 from /work/src/./chainparams.h:9,
                 from /work/src/./seeder/bitcoin.h:8,
                 from /work/src/seeder/bitcoin.cpp:5:
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Unserialize(Stream&) [with Stream = CDataStream]’:
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = CNetAddr&]’
/work/src/./serialize.h:1238:18:   required from ‘void UnserializeMany(Stream&, Arg&&, Args&& ...) [with Stream = CDataStream; Arg = CNetAddr&; Args = {Wrapper<CustomUintFormatter<2, true>, short unsigned int&>&}]’
/work/src/./serialize.h:1251:22:   required from ‘void SerReadWriteMany(Stream&, ActionUnserialize, Args&& ...) [with Stream = CDataStream; Args = {CNetAddr&, Wrapper<CustomUintFormatter<2, true>, short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CDataStream; Type = CService; Operation = ActionUnserialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Unser(Stream&, CService&) [with Stream = CDataStream]’
/work/src/./netaddress.h:575:5:   required from ‘void CService::Unserialize(Stream&) [with Stream = CDataStream]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = CService&]’
/work/src/./streams.h:407:22:   required from ‘CDataStream& CDataStream::operator>>(T&&) [with T = CService&]’
/work/src/seeder/bitcoin.cpp:54:17:   required from here
/work/src/./netaddress.h:273:15: error: ‘class CDataStream’ has no member named ‘GetParams’
  273 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
In file included from /work/src/./netaddress.h:16:
/work/src/./protocol.h: In instantiation of ‘static void CAddress::Unser(Stream&, CAddress&) [with Stream = CDataStream]’:
/work/src/./protocol.h:503:5:   required from ‘void CAddress::Unserialize(Stream&) [with Stream = CDataStream]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = CAddress&]’
/work/src/./serialize.h:979:20:   required from ‘static void DefaultFormatter::Unser(Stream&, T&) [with Stream = CDataStream; T = CAddress]’
/work/src/./serialize.h:809:32:   required from ‘void VectorFormatter<Formatter>::Unser(Stream&, V&) [with Stream = CDataStream; V = std::vector<CAddress>; Formatter = DefaultFormatter]’
/work/src/./serialize.h:620:26:   required from ‘void Wrapper<Formatter, T>::Unserialize(Stream&) [with Stream = CDataStream; Formatter = VectorFormatter<DefaultFormatter>; T = std::vector<CAddress>&]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CDataStream; T = Wrapper<VectorFormatter<DefaultFormatter>, std::vector<CAddress>&>]’
/work/src/./serialize.h:1075:20:   required from ‘void Unserialize(Stream&, std::vector<_ValT, _Allocator>&) [with Stream = CDataStream; T = CAddress; A = std::allocator<CAddress>]’
/work/src/./streams.h:407:22:   required from ‘CDataStream& CDataStream::operator>>(T&&) [with T = std::vector<CAddress>&]’
/work/src/seeder/bitcoin.cpp:100:17:   required from here
/work/src/./serialize.h:263:57: error: ‘class CDataStream’ has no member named ‘GetParams’
  263 |         SerializationOps(obj, s, ActionUnserialize{}, s.GetParams());          \
      |                                                       ~~^~~~~~~~~
/work/src/./serialize.h:300:5: note: in expansion of macro ‘FORMATTER_METHODS_PARAMS’
  300 |     FORMATTER_METHODS_PARAMS(cls, obj, paramcls, paramobj)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./protocol.h:503:5: note: in expansion of macro ‘SERIALIZE_METHODS_PARAMS’
  503 |     SERIALIZE_METHODS_PARAMS(CAddress, obj, SerParams, params) {
      |     ^~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Serialize(Stream&) const [with Stream = CVectorWriter]’:
/work/src/./serialize.h:955:16:   required from ‘void Serialize(Stream&, const T&) [with Stream = CVectorWriter; T = CNetAddr]’
/work/src/./serialize.h:1230:16:   required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = CNetAddr; Args = {Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./serialize.h:1245:20:   required from ‘void SerReadWriteMany(Stream&, ActionSerialize, const Args& ...) [with Stream = CVectorWriter; Args = {CNetAddr, Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CVectorWriter; Type = const CService; Operation = ActionSerialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Ser(Stream&, const CService&) [with Stream = CVectorWriter]’
/work/src/./netaddress.h:575:5:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/work/src/./serialize.h:1231:20:   recursively required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = long unsigned int; Args = {long int, long unsigned int, CService, long unsigned int, CService, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, unsigned char}]’
/work/src/./serialize.h:1231:20:   required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = int; Args = {long unsigned int, long int, long unsigned int, CService, long unsigned int, CService, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, unsigned char}]’
/work/src/./streams.h:90:24:   required from ‘CVectorWriter::CVectorWriter(int, int, std::vector<unsigned char>&, size_t, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; size_t = long unsigned int]’
/work/src/./netmessagemaker.h:23:9:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(int, std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./netmessagemaker.h:30:20:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./seeder/messagewriter.h:18:42:   required from ‘void MessageWriter::WriteMessage(CDataStream&, std::string, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/seeder/bitcoin.cpp:308:32:   required from here
/work/src/./netaddress.h:262:15: error: ‘class CVectorWriter’ has no member named ‘GetParams’
  262 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
[454/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[455/587] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[456/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[457/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[458/587] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-debug failed with exit code 1

Tail of the build log:

/work/src/./serialize.h:955:7: note: in instantiation of function template specialization 'CNetAddr::Serialize<CVectorWriter>' requested here
    a.Serialize(os);
      ^
/work/src/./serialize.h:1230:7: note: in instantiation of function template specialization 'Serialize<CVectorWriter, CNetAddr>' requested here
    ::Serialize(s, arg);
      ^
/work/src/./serialize.h:1245:7: note: in instantiation of function template specialization 'SerializeMany<CVectorWriter, CNetAddr, Wrapper<CustomUintFormatter<2, true>, const unsigned short &>>' requested here
    ::SerializeMany(s, args...);
      ^
/work/src/./netaddress.h:576:9: note: in instantiation of function template specialization 'SerReadWriteMany<CVectorWriter, CNetAddr, Wrapper<CustomUintFormatter<2, true>, const unsigned short &>>' requested here
        READWRITE(AsBase<CNetAddr>(obj),
        ^
/work/src/./serialize.h:189:27: note: expanded from macro 'READWRITE'
#define READWRITE(...) (::SerReadWriteMany(s, ser_action, __VA_ARGS__))
                          ^
/work/src/./netaddress.h:575:5: note: in instantiation of function template specialization 'CService::SerializationOps<CVectorWriter, const CService, ActionSerialize>' requested here
    SERIALIZE_METHODS(CService, obj) {
    ^
/work/src/./serialize.h:291:5: note: expanded from macro 'SERIALIZE_METHODS'
    FORMATTER_METHODS(cls, obj)
    ^
/work/src/./serialize.h:217:9: note: expanded from macro 'FORMATTER_METHODS'
        SerializationOps(obj, s, ActionSerialize());                           \
        ^
/work/src/./netaddress.h:575:5: note: (skipping 7 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
/work/src/./serialize.h:290:5: note: expanded from macro 'SERIALIZE_METHODS'
    BASE_SERIALIZE_METHODS(cls)                                                \
    ^
/work/src/./serialize.h:273:9: note: expanded from macro 'BASE_SERIALIZE_METHODS'
        Ser(s, *this);                                                         \
        ^
/work/src/./streams.h:90:11: note: in instantiation of function template specialization 'SerializeMany<CVectorWriter, int, unsigned long, long, unsigned long, CService, unsigned long, CService, unsigned long, std::basic_string<char>, int, unsigned char>' requested here
        ::SerializeMany(*this, std::forward<Args>(args)...);
          ^
/work/src/./netmessagemaker.h:23:9: note: in instantiation of function template specialization 'CVectorWriter::CVectorWriter<const int &, unsigned long &, long, unsigned long &, CService &, unsigned long &, CService, unsigned long &, const std::basic_string<char> &, int, unsigned char &>' requested here
        CVectorWriter{SER_NETWORK, nFlags | nVersion, msg.data, 0,
        ^
/work/src/./netmessagemaker.h:30:16: note: in instantiation of function template specialization 'CNetMsgMaker::Make<const int &, unsigned long &, long, unsigned long &, CService &, unsigned long &, CService, unsigned long &, const std::basic_string<char> &, int, unsigned char &>' requested here
        return Make(0, std::move(msg_type), std::forward<Args>(args)...);
               ^
/work/src/./seeder/messagewriter.h:18:38: note: in instantiation of function template specialization 'CNetMsgMaker::Make<const int &, unsigned long &, long, unsigned long &, CService &, unsigned long &, CService, unsigned long &, const std::basic_string<char> &, int, unsigned char &>' requested here
                                    .Make(command, std::forward<Args>(args)...);
                                     ^
/work/src/seeder/bitcoin.cpp:308:20: note: in instantiation of function template specialization 'MessageWriter::WriteMessage<const int &, unsigned long &, long, unsigned long &, CService &, unsigned long &, CService, unsigned long &, const std::basic_string<char> &, int, unsigned char &>' requested here
    MessageWriter::WriteMessage(vSend, NetMsgType::VERSION, PROTOCOL_VERSION,
                   ^
3 errors generated.
[448/587] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[449/587] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[450/587] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[451/587] Linking CXX executable src/iguana/iguana
[452/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[453/587] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[454/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[455/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[456/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[457/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[458/587] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang failed with exit code 1

Tail of the build log:

[403/432] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o
FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/socks5.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 -I/work/src/. -I/work/abc-ci-builds/build-fuzzer/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-fuzzer/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fsanitize=fuzzer -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 -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -Wshadow -Wshadow-field -std=gnu++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o -c /work/src/test/fuzz/socks5.cpp
In file included from /work/src/test/fuzz/socks5.cpp:8:
/work/src/./test/fuzz/util.h:135:9: error: no matching function for call to 'ConsumeRandomLengthByteVector'
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:82:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
1 error generated.
[404/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[405/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[406/432] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o
FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/util.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 -I/work/src/. -I/work/abc-ci-builds/build-fuzzer/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-fuzzer/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fsanitize=fuzzer -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 -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -Wshadow -Wshadow-field -std=gnu++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o -c /work/src/test/fuzz/util.cpp
In file included from /work/src/test/fuzz/util.cpp:5:
/work/src/./test/fuzz/util.h:135:9: error: no matching function for call to 'ConsumeRandomLengthByteVector'
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:82:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
1 error generated.
[407/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[408/432] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/transaction.cpp.o
[409/432] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/txrequest.cpp.o
[410/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[411/432] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o
FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.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 -I/work/src/. -I/work/abc-ci-builds/build-fuzzer/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-fuzzer/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fsanitize=fuzzer -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 -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -Wshadow -Wshadow-field -std=gnu++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o -c /work/src/test/fuzz/validation_load_mempool.cpp
In file included from /work/src/test/fuzz/validation_load_mempool.cpp:12:
/work/src/./test/fuzz/util.h:135:9: error: no matching function for call to 'ConsumeRandomLengthByteVector'
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:82:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
1 error generated.
[412/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[413/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[414/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[415/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[416/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[417/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[418/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[419/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[420/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[421/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[422/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[423/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[424/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[425/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[426/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[427/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[428/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[429/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[430/432] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-fuzzer failed with exit code 1

Tail of the build log:

/work/src/./streams.h:90:24:   required from ‘CVectorWriter::CVectorWriter(int, int, std::vector<unsigned char>&, size_t, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; size_t = long unsigned int]’
/work/src/./netmessagemaker.h:23:9:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(int, std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./netmessagemaker.h:30:20:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./seeder/messagewriter.h:18:42:   required from ‘void MessageWriter::WriteMessage(CDataStream&, std::string, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/seeder/bitcoin.cpp:308:32:   required from here
/work/src/./netaddress.h:262:15: error: ‘class CVectorWriter’ has no member named ‘GetParams’
  262 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
[447/587] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_formatter.cpp.o
[448/587] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
FAILED: src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -I/work/src/. -I/work/abc-ci-builds/build-diff/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-diff/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -std=gnu++20 -MD -MT src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o -MF src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o.d -o src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o -c /work/src/seeder/main.cpp
In file included from /work/src/./kernel/chainparams.h:10,
                 from /work/src/./chainparams.h:9,
                 from /work/src/./dnsseeds.h:8,
                 from /work/src/seeder/main.cpp:7:
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Serialize(Stream&) const [with Stream = CAutoFile]’:
/work/src/./serialize.h:955:16:   required from ‘void Serialize(Stream&, const T&) [with Stream = CAutoFile; T = CNetAddr]’
/work/src/./serialize.h:1230:16:   required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CAutoFile; Arg = CNetAddr; Args = {Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./serialize.h:1245:20:   required from ‘void SerReadWriteMany(Stream&, ActionSerialize, const Args& ...) [with Stream = CAutoFile; Args = {CNetAddr, Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CAutoFile; Type = const CService; Operation = ActionSerialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Ser(Stream&, const CService&) [with Stream = CAutoFile]’
/work/src/./netaddress.h:575:5:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/work/src/./serialize.h:1101:18:   required from ‘void Serialize(Stream&, const std::map<K, T, Pred, A>&) [with Stream = CAutoFile; K = CService; T = long int; Pred = std::less<CService>; A = std::allocator<std::pair<const CService, long int> >]’
/work/src/./streams.h:592:20:   required from ‘CAutoFile& CAutoFile::operator<<(const T&) [with T = std::map<CService, long int>]’
/work/src/./seeder/db.h:384:11:   required from ‘void CAddrDb::Serialize(Stream&) const [with Stream = CAutoFile]’
/work/src/./serialize.h:955:16:   required from ‘void Serialize(Stream&, const T&) [with Stream = CAutoFile; T = CAddrDb]’
/work/src/./streams.h:592:20:   required from ‘CAutoFile& CAutoFile::operator<<(const T&) [with T = CAddrDb]’
/work/src/seeder/main.cpp:256:27:   required from here
/work/src/./netaddress.h:262:15: error: ‘class CAutoFile’ has no member named ‘GetParams’
  262 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Unserialize(Stream&) [with Stream = CAutoFile]’:
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CAutoFile; T = CNetAddr&]’
/work/src/./serialize.h:1238:18:   required from ‘void UnserializeMany(Stream&, Arg&&, Args&& ...) [with Stream = CAutoFile; Arg = CNetAddr&; Args = {Wrapper<CustomUintFormatter<2, true>, short unsigned int&>&}]’
/work/src/./serialize.h:1251:22:   required from ‘void SerReadWriteMany(Stream&, ActionUnserialize, Args&& ...) [with Stream = CAutoFile; Args = {CNetAddr&, Wrapper<CustomUintFormatter<2, true>, short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CAutoFile; Type = CService; Operation = ActionUnserialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Unser(Stream&, CService&) [with Stream = CAutoFile]’
/work/src/./netaddress.h:575:5:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/work/src/./serialize.h:1112:20:   required from ‘void Unserialize(Stream&, std::map<K, T, Pred, A>&) [with Stream = CAutoFile; K = CService; T = long int; Pred = std::less<CService>; A = std::allocator<std::pair<const CService, long int> >]’
/work/src/./streams.h:597:22:   required from ‘CAutoFile& CAutoFile::operator>>(T&&) [with T = std::map<CService, long int>&]’
/work/src/./seeder/db.h:415:11:   required from ‘void CAddrDb::Unserialize(Stream&) [with Stream = CAutoFile]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CAutoFile; T = CAddrDb&]’
/work/src/./streams.h:597:22:   required from ‘CAutoFile& CAutoFile::operator>>(T&&) [with T = CAddrDb&]’
/work/src/seeder/main.cpp:412:15:   required from here
/work/src/./netaddress.h:273:15: error: ‘class CAutoFile’ has no member named ‘GetParams’
  273 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
[449/587] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[450/587] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[451/587] Linking CXX executable src/iguana/iguana
[452/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[453/587] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[454/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[455/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[456/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[457/587] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[458/587] Linking CXX static library src/wallet/libwallet.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Tail of the build log:

/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CVectorWriter; Type = const CService; Operation = ActionSerialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Ser(Stream&, const CService&) [with Stream = CVectorWriter]’
/work/src/./netaddress.h:575:5:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/work/src/./serialize.h:1231:20:   recursively required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = long unsigned int; Args = {long int, long unsigned int, CService, long unsigned int, CService, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, unsigned char}]’
/work/src/./serialize.h:1231:20:   required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CVectorWriter; Arg = int; Args = {long unsigned int, long int, long unsigned int, CService, long unsigned int, CService, long unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int, unsigned char}]’
/work/src/./streams.h:90:24:   required from ‘CVectorWriter::CVectorWriter(int, int, std::vector<unsigned char>&, size_t, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; size_t = long unsigned int]’
/work/src/./netmessagemaker.h:23:9:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(int, std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./netmessagemaker.h:30:20:   required from ‘CSerializedNetMsg CNetMsgMaker::Make(std::string, Args&& ...) const [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/./seeder/messagewriter.h:18:42:   required from ‘void MessageWriter::WriteMessage(CDataStream&, std::string, Args&& ...) [with Args = {const int&, long unsigned int&, long int, long unsigned int&, CService&, long unsigned int&, CService, long unsigned int&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, int, unsigned char&}; std::string = std::__cxx11::basic_string<char>]’
/work/src/seeder/bitcoin.cpp:308:32:   required from here
/work/src/./netaddress.h:262:15: error: ‘class CVectorWriter’ has no member named ‘GetParams’
  262 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
[563/667] Building CXX object src/test/CMakeFiles/testutil.dir/util/txmempool.cpp.o
[564/667] Building CXX object src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o
FAILED: src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o 
/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -I/work/src/. -I/work/abc-ci-builds/build-without-wallet/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -std=gnu++20 -MD -MT src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o -MF src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o.d -o src/seeder/CMakeFiles/bitcoin-seeder.dir/main.cpp.o -c /work/src/seeder/main.cpp
In file included from /work/src/./kernel/chainparams.h:10,
                 from /work/src/./chainparams.h:9,
                 from /work/src/./dnsseeds.h:8,
                 from /work/src/seeder/main.cpp:7:
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Serialize(Stream&) const [with Stream = CAutoFile]’:
/work/src/./serialize.h:955:16:   required from ‘void Serialize(Stream&, const T&) [with Stream = CAutoFile; T = CNetAddr]’
/work/src/./serialize.h:1230:16:   required from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CAutoFile; Arg = CNetAddr; Args = {Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./serialize.h:1245:20:   required from ‘void SerReadWriteMany(Stream&, ActionSerialize, const Args& ...) [with Stream = CAutoFile; Args = {CNetAddr, Wrapper<CustomUintFormatter<2, true>, const short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CAutoFile; Type = const CService; Operation = ActionSerialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Ser(Stream&, const CService&) [with Stream = CAutoFile]’
/work/src/./netaddress.h:575:5:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/work/src/./serialize.h:1101:18:   required from ‘void Serialize(Stream&, const std::map<K, T, Pred, A>&) [with Stream = CAutoFile; K = CService; T = long int; Pred = std::less<CService>; A = std::allocator<std::pair<const CService, long int> >]’
/work/src/./streams.h:592:20:   required from ‘CAutoFile& CAutoFile::operator<<(const T&) [with T = std::map<CService, long int>]’
/work/src/./seeder/db.h:384:11:   required from ‘void CAddrDb::Serialize(Stream&) const [with Stream = CAutoFile]’
/work/src/./serialize.h:955:16:   required from ‘void Serialize(Stream&, const T&) [with Stream = CAutoFile; T = CAddrDb]’
/work/src/./streams.h:592:20:   required from ‘CAutoFile& CAutoFile::operator<<(const T&) [with T = CAddrDb]’
/work/src/seeder/main.cpp:256:27:   required from here
/work/src/./netaddress.h:262:15: error: ‘class CAutoFile’ has no member named ‘GetParams’
  262 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
/work/src/./netaddress.h: In instantiation of ‘void CNetAddr::Unserialize(Stream&) [with Stream = CAutoFile]’:
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CAutoFile; T = CNetAddr&]’
/work/src/./serialize.h:1238:18:   required from ‘void UnserializeMany(Stream&, Arg&&, Args&& ...) [with Stream = CAutoFile; Arg = CNetAddr&; Args = {Wrapper<CustomUintFormatter<2, true>, short unsigned int&>&}]’
/work/src/./serialize.h:1251:22:   required from ‘void SerReadWriteMany(Stream&, ActionUnserialize, Args&& ...) [with Stream = CAutoFile; Args = {CNetAddr&, Wrapper<CustomUintFormatter<2, true>, short unsigned int&>}]’
/work/src/./netaddress.h:576:9:   required from ‘static void CService::SerializationOps(Type&, Stream&, Operation) [with Stream = CAutoFile; Type = CService; Operation = ActionUnserialize]’
/work/src/./netaddress.h:575:5:   required from ‘static void CService::Unser(Stream&, CService&) [with Stream = CAutoFile]’
/work/src/./netaddress.h:575:5:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/work/src/./serialize.h:1112:20:   required from ‘void Unserialize(Stream&, std::map<K, T, Pred, A>&) [with Stream = CAutoFile; K = CService; T = long int; Pred = std::less<CService>; A = std::allocator<std::pair<const CService, long int> >]’
/work/src/./streams.h:597:22:   required from ‘CAutoFile& CAutoFile::operator>>(T&&) [with T = std::map<CService, long int>&]’
/work/src/./seeder/db.h:415:11:   required from ‘void CAddrDb::Unserialize(Stream&) [with Stream = CAutoFile]’
/work/src/./serialize.h:963:18:   required from ‘void Unserialize(Stream&, T&&) [with Stream = CAutoFile; T = CAddrDb&]’
/work/src/./streams.h:597:22:   required from ‘CAutoFile& CAutoFile::operator>>(T&&) [with T = CAddrDb&]’
/work/src/seeder/main.cpp:412:15:   required from here
/work/src/./netaddress.h:273:15: error: ‘class CAutoFile’ has no member named ‘GetParams’
  273 |         if (s.GetParams().enc == Encoding::V2) {
      |             ~~^~~~~~~~~
[565/667] Building CXX object src/seeder/CMakeFiles/seeder-base.dir/options.cpp.o
[566/667] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[567/667] Linking CXX executable src/iguana/iguana
[568/667] Building CXX object src/test/CMakeFiles/testutil.dir/util/setup_common.cpp.o
[569/667] Building CXX object src/CMakeFiles/bitcoinkernel.dir/validation.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Tail of the build log:

/work/src/./protocol.h:503:5: error: no member named 'GetParams' in 'CDataStream' [clang-diagnostic-error]
    SERIALIZE_METHODS_PARAMS(CAddress, obj, SerParams, params) {
    ^
/work/src/./serialize.h:300:5: note: expanded from macro 'SERIALIZE_METHODS_PARAMS'
    FORMATTER_METHODS_PARAMS(cls, obj, paramcls, paramobj)
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./serialize.h:263:57: note: expanded from macro 'FORMATTER_METHODS_PARAMS'
        SerializationOps(obj, s, ActionUnserialize{}, s.GetParams());          \
                                                      ~ ^
/work/src/./protocol.h:503:5: note: in instantiation of function template specialization 'CAddress::Unser<CDataStream>' requested here
    SERIALIZE_METHODS_PARAMS(CAddress, obj, SerParams, params) {
    ^
/work/src/./serialize.h:299:5: note: expanded from macro 'SERIALIZE_METHODS_PARAMS'
    BASE_SERIALIZE_METHODS(cls)                                                \
    ^
/work/src/./serialize.h:278:9: note: expanded from macro 'BASE_SERIALIZE_METHODS'
        Unser(s, *this);                                                       \
        ^
/work/src/./serialize.h:963:7: note: in instantiation of function template specialization 'CAddress::Unserialize<CDataStream>' requested here
    a.Unserialize(is);
      ^
/work/src/./serialize.h:979:9: note: in instantiation of function template specialization 'Unserialize<CDataStream, CAddress &>' requested here
        Unserialize(s, t);
        ^
/work/src/./serialize.h:809:27: note: in instantiation of function template specialization 'DefaultFormatter::Unser<CDataStream, CAddress>' requested here
                formatter.Unser(s, v.back());
                          ^
/work/src/./serialize.h:620:21: note: in instantiation of function template specialization 'VectorFormatter<DefaultFormatter>::Unser<CDataStream, std::vector<CAddress>>' requested here
        Formatter().Unser(s, m_object);
                    ^
/work/src/./serialize.h:963:7: note: in instantiation of function template specialization 'Wrapper<VectorFormatter<DefaultFormatter>, std::vector<CAddress> &>::Unserialize<CDataStream>' requested here
    a.Unserialize(is);
      ^
/work/src/./serialize.h:1075:9: note: in instantiation of function template specialization 'Unserialize<CDataStream, Wrapper<VectorFormatter<DefaultFormatter>, std::vector<CAddress> &>>' requested here
        Unserialize(is, Using<VectorFormatter<DefaultFormatter>>(v));
        ^
/work/src/./streams.h:407:11: note: in instantiation of function template specialization 'Unserialize<CDataStream, CAddress, std::allocator<CAddress>>' requested here
        ::Unserialize(*this, obj);
          ^
/work/src/seeder/bitcoin.cpp:100:14: note: in instantiation of function template specialization 'CDataStream::operator>><std::vector<CAddress> &>' requested here
        recv >> vAddrNew;
             ^
2900 warnings and 3 errors generated.
Error while processing /work/src/seeder/bitcoin.cpp.
Suppressed 2900 warnings (2900 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler error(s).
[459/597] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[460/597] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[461/597] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[462/597] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana_interpreter.cpp.o
[463/597] Building CXX object src/iguana/CMakeFiles/iguana.dir/iguana.cpp.o
[464/597] Linking CXX executable src/iguana/iguana
[465/597] Building CXX object src/wallet/CMakeFiles/wallet-tool.dir/wallettool.cpp.o
[466/597] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[467/597] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[468/597] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[469/597] 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

more serialization params needed in the seeder and a few in the main code, also rebase on D19137 and fix return type of AddrmanToStream (addrman_tests)

PiRK edited the summary of this revision. (Show Details)

Tail of the build log:

FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/socks5.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 -I/work/src/. -I/work/abc-ci-builds/build-fuzzer/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-fuzzer/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fsanitize=fuzzer -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 -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -Wshadow -Wshadow-field -std=gnu++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o -c /work/src/test/fuzz/socks5.cpp
In file included from /work/src/test/fuzz/socks5.cpp:8:
/work/src/./test/fuzz/util.h:135:9: error: no matching function for call to 'ConsumeRandomLengthByteVector'
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:82:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
1 error generated.
[404/432] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o
FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/util.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 -I/work/src/. -I/work/abc-ci-builds/build-fuzzer/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-fuzzer/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fsanitize=fuzzer -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 -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -Wshadow -Wshadow-field -std=gnu++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o -c /work/src/test/fuzz/util.cpp
In file included from /work/src/test/fuzz/util.cpp:5:
/work/src/./test/fuzz/util.h:135:9: error: no matching function for call to 'ConsumeRandomLengthByteVector'
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:82:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
1 error generated.
[405/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/coincontrol.cpp.o
[406/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/db.cpp.o
[407/432] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/transaction.cpp.o
[408/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/crypter.cpp.o
[409/432] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/txrequest.cpp.o
[410/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/coinselection.cpp.o
[411/432] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o
FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.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 -I/work/src/. -I/work/abc-ci-builds/build-fuzzer/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-fuzzer/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fsanitize=fuzzer -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 -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -Wshadow -Wshadow-field -std=gnu++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o -c /work/src/test/fuzz/validation_load_mempool.cpp
In file included from /work/src/test/fuzz/validation_load_mempool.cpp:12:
/work/src/./test/fuzz/util.h:135:9: error: no matching function for call to 'ConsumeRandomLengthByteVector'
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:82:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
1 error generated.
[412/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/bdb.cpp.o
[413/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/fees.cpp.o
[414/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/transaction.cpp.o
[415/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/load.cpp.o
[416/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/sqlite.cpp.o
[417/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/receive.cpp.o
[418/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/util.cpp.o
[419/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/signmessage.cpp.o
[420/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/encrypt.cpp.o
[421/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletutil.cpp.o
[422/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/salvage.cpp.o
[423/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/spend.cpp.o
[424/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/interfaces.cpp.o
[425/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/scriptpubkeyman.cpp.o
[426/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpc/backup.cpp.o
[427/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/walletdb.cpp.o
[428/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/wallet.cpp.o
[429/432] Building CXX object src/wallet/CMakeFiles/wallet.dir/rpcwallet.cpp.o
[430/432] Linking CXX static library src/wallet/libwallet.a
[431/432] Linking CXX static library src/libserver.a
ninja: build stopped: cannot make progress due to previous errors.
Build build-fuzzer failed with exit code 1

Tail of the build log:

/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -I/work/src/. -I/work/abc-ci-builds/build-without-wallet/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -std=gnu++20 -MD -MT src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o -MF src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o.d -o src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o -c /work/src/seeder/test/p2p_messaging_tests.cpp
In file included from /usr/include/c++/12/bits/stl_iterator.h:85,
                 from /usr/include/c++/12/bits/stl_algobase.h:67,
                 from /usr/include/c++/12/algorithm:60,
                 from /work/src/./span.h:8,
                 from /work/src/./uint256.h:9,
                 from /work/src/./primitives/blockhash.h:8,
                 from /work/src/./consensus/params.h:9,
                 from /work/src/./kernel/chainparams.h:9,
                 from /work/src/./chainparams.h:9,
                 from /work/src/seeder/test/p2p_messaging_tests.cpp:5:
In function ‘constexpr decltype (::new(void*(0)) _Tp) std::construct_at(_Tp*, _Args&& ...) [with _Tp = byte; _Args = {const byte&}]’,
    inlined from ‘static constexpr std::_Require<std::__and_<std::__not_<typename std::allocator_traits< <template-parameter-1-1> >::__construct_helper<_Tp, _Args>::type>, std::is_constructible<_Tp, _Args ...> > > std::allocator_traits< <template-parameter-1-1> >::_S_construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::byte; _Args = {const std::byte&}; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/alloc_traits.h:263:21,
    inlined from ‘static constexpr decltype (std::allocator_traits< <template-parameter-1-1> >::_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits< <template-parameter-1-1> >::construct::__args)...)) std::allocator_traits< <template-parameter-1-1> >::construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::byte; _Args = {const std::byte&}; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/alloc_traits.h:364:16,
    inlined from ‘constexpr _ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = const byte*; _ForwardIterator = byte*; _Allocator = zero_after_free_allocator<byte>]’ at /usr/include/c++/12/bits/stl_uninitialized.h:352:25,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_range_insert(iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/vector.tcc:769:34,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_insert_dispatch(iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1779:19,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::insert(const_iterator, _InputIterator, _InputIterator) [with _InputIterator = const std::byte*; <template-parameter-2-2> = void; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1481:22,
    inlined from ‘void DataStream::write(Span<const std::byte>)’ at /work/src/./streams.h:348:19,
    inlined from ‘void ser_writedata32(Stream&, uint32_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:74:12,
    inlined from ‘void Serialize(Stream&, int32_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:326:20,
    inlined from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CDataStream; Arg = int; Args = {BlockHash, uint256, unsigned int, unsigned int, unsigned int}]’ at /work/src/./serialize.h:1230:16,
    inlined from ‘void SerReadWriteMany(Stream&, ActionSerialize, const Args& ...) [with Stream = CDataStream; Args = {int, BlockHash, uint256, unsigned int, unsigned int, unsigned int}]’ at /work/src/./serialize.h:1245:20,
    inlined from ‘static void CBlockHeader::SerializationOps(Type&, Stream&, Operation) [with Stream = CDataStream; Type = const CBlockHeader; Operation = ActionSerialize]’ at /work/src/./primitives/block.h:36:9,
    inlined from ‘static void CBlockHeader::Ser(Stream&, const CBlockHeader&) [with Stream = CDataStream]’ at /work/src/./primitives/block.h:35:5,
    inlined from ‘void CBlockHeader::Serialize(Stream&) const [with Stream = CDataStream]’ at /work/src/./primitives/block.h:35:5,
    inlined from ‘void Serialize(Stream&, const T&) [with Stream = CDataStream; T = CBlockHeader]’ at /work/src/./serialize.h:955:16,
    inlined from ‘CDataStream& CDataStream::operator<<(const T&) [with T = CBlockHeader]’ at /work/src/./streams.h:402:20,
    inlined from ‘void p2p_messaging_tests::good_checkpoint::test_method()’ at /work/src/seeder/test/p2p_messaging_tests.cpp:240:30:
/usr/include/c++/12/bits/stl_construct.h:97:14: error: writing 4 bytes into a region of size 1 [-Werror=stringop-overflow=]
   97 |     { return ::new((void*)__location) _Tp(std::forward<_Args>(__args)...); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/12/bits/c++allocator.h:33,
                 from /usr/include/c++/12/bits/allocator.h:46,
                 from /usr/include/c++/12/string:41,
                 from /work/src/./uint256.h:14:
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = std::byte]’,
    inlined from ‘constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = std::byte]’ at /usr/include/c++/12/bits/allocator.h:188:40,
    inlined from ‘static constexpr std::allocator_traits< <template-parameter-1-1> >::pointer std::allocator_traits< <template-parameter-1-1> >::allocate(_Alloc&, size_type) [with _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/alloc_traits.h:318:28,
    inlined from ‘constexpr std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:378:33,
    inlined from ‘constexpr std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:375:7,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_range_insert(iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/vector.tcc:787:40,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_insert_dispatch(iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1779:19,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::insert(const_iterator, _InputIterator, _InputIterator) [with _InputIterator = const std::byte*; <template-parameter-2-2> = void; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1481:22,
    inlined from ‘void DataStream::write(Span<const std::byte>)’ at /work/src/./streams.h:348:19,
    inlined from ‘void ser_writedata8(Stream&, uint8_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:59:12,
    inlined from ‘void WriteCompactSize(Stream&, uint64_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:455:23,
    inlined from ‘void p2p_messaging_tests::good_checkpoint::test_method()’ at /work/src/seeder/test/p2p_messaging_tests.cpp:239:21:
/usr/include/c++/12/bits/new_allocator.h:137:55: note: destination object of size 1 allocated by ‘operator new’
  137 |         return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
      |                                                       ^
cc1plus: all warnings being treated as errors
[218/500] Running pow test suite
PASSED: pow test suite
[222/500] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
[485/500] Running bitcoin test suite
PASSED: bitcoin test suite
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Tail of the build log:

wallet_watchonly.py                              | ✓ Passed  | 1 s
wallet_watchonly.py --usecli                     | ✓ Passed  | 1 s
chronik_avalanche.py                             | ○ Skipped | 0 s
chronik_block.py                                 | ○ Skipped | 0 s
chronik_block_header.py                          | ○ Skipped | 0 s
chronik_block_info.py                            | ○ Skipped | 0 s
chronik_block_txs.py                             | ○ Skipped | 0 s
chronik_blockchain_info.py                       | ○ Skipped | 0 s
chronik_blocks.py                                | ○ Skipped | 0 s
chronik_chronik_info.py                          | ○ Skipped | 0 s
chronik_cors.py                                  | ○ Skipped | 0 s
chronik_disable_token_index.py                   | ○ Skipped | 0 s
chronik_disallow_prune.py                        | ○ Skipped | 0 s
chronik_electrum_basic.py                        | ○ Skipped | 0 s
chronik_electrum_blockchain.py                   | ○ Skipped | 0 s
chronik_lokad_id_group.py                        | ○ Skipped | 0 s
chronik_mempool_conflicts.py                     | ○ Skipped | 0 s
chronik_mempool_disconnectpool.py                | ○ Skipped | 0 s
chronik_pause.py                                 | ○ Skipped | 0 s
chronik_plugin_groups.py                         | ○ Skipped | 0 s
chronik_plugins.py                               | ○ Skipped | 0 s
chronik_plugins_setup.py                         | ○ Skipped | 0 s
chronik_raw_tx.py                                | ○ Skipped | 0 s
chronik_resync.py                                | ○ Skipped | 0 s
chronik_script_confirmed_txs.py                  | ○ Skipped | 0 s
chronik_script_history.py                        | ○ Skipped | 0 s
chronik_script_unconfirmed_txs.py                | ○ Skipped | 0 s
chronik_script_utxos.py                          | ○ Skipped | 0 s
chronik_scripthash.py                            | ○ Skipped | 0 s
chronik_serve.py                                 | ○ Skipped | 0 s
chronik_shutdown.py                              | ○ Skipped | 0 s
chronik_spent_by.py                              | ○ Skipped | 0 s
chronik_token_alp.py                             | ○ Skipped | 0 s
chronik_token_broadcast_txs.py                   | ○ Skipped | 0 s
chronik_token_burn.py                            | ○ Skipped | 0 s
chronik_token_id_group.py                        | ○ Skipped | 0 s
chronik_token_parse_failure.py                   | ○ Skipped | 0 s
chronik_token_script_group.py                    | ○ Skipped | 0 s
chronik_token_slp_fungible.py                    | ○ Skipped | 0 s
chronik_token_slp_mint_vault.py                  | ○ Skipped | 0 s
chronik_token_slp_nft1.py                        | ○ Skipped | 0 s
chronik_tx.py                                    | ○ Skipped | 0 s
chronik_tx_removal_order.py                      | ○ Skipped | 0 s
chronik_unconfirmed_txs.py                       | ○ Skipped | 0 s
chronik_ws.py                                    | ○ Skipped | 0 s
chronik_ws_avalanche.py                          | ○ Skipped | 0 s
chronik_ws_ordering.py                           | ○ Skipped | 0 s
chronik_ws_ping.py                               | ○ Skipped | 0 s
chronik_ws_script.py                             | ○ Skipped | 0 s
feature_bind_port_discover.py                    | ○ Skipped | 0 s
feature_bind_port_externalip.py                  | ○ Skipped | 0 s
interface_usdt_net.py                            | ○ Skipped | 0 s
interface_usdt_utxocache.py                      | ○ Skipped | 0 s
interface_usdt_validation.py                     | ○ Skipped | 0 s

ALL                                              | ✓ Passed  | 1257 s (accumulated) 
Runtime: 116 s

ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

Tail of the build log:

/usr/bin/cmake -E __run_co_compile --launcher=/usr/bin/ccache --tidy="/usr/bin/clang-tidy-16;-warnings-as-errors=*;--extra-arg-before=--driver-mode=g++" --source=/work/src/test/fuzz/timedata.cpp -- /usr/bin/clang++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DPROVIDE_FUZZ_MAIN_FUNCTION -I/work/src/. -I/work/abc-ci-builds/build-clang-tidy/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-clang-tidy/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -I/work/chronik -I/work/abc-ci-builds/build-clang-tidy/cargo/build/x86_64-unknown-linux-gnu/cxxbridge -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -g -O2 -fPIE -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 -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -Wshadow -Wshadow-field -std=gnu++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/timedata.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/timedata.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/timedata.cpp.o -c /work/src/test/fuzz/timedata.cpp
/work/src/./test/fuzz/util.h:135:9: error: no matching function for call to 'ConsumeRandomLengthByteVector' [clang-diagnostic-error]
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:82:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
2414 warnings and 1 error generated.
Error while processing /work/src/test/fuzz/timedata.cpp.
Suppressed 2414 warnings (2414 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler error(s).
[91/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o
FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o 
/usr/bin/cmake -E __run_co_compile --launcher=/usr/bin/ccache --tidy="/usr/bin/clang-tidy-16;-warnings-as-errors=*;--extra-arg-before=--driver-mode=g++" --source=/work/src/test/fuzz/util.cpp -- /usr/bin/clang++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DPROVIDE_FUZZ_MAIN_FUNCTION -I/work/src/. -I/work/abc-ci-builds/build-clang-tidy/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-clang-tidy/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -I/work/chronik -I/work/abc-ci-builds/build-clang-tidy/cargo/build/x86_64-unknown-linux-gnu/cxxbridge -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -g -O2 -fPIE -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 -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -Wshadow -Wshadow-field -std=gnu++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o -c /work/src/test/fuzz/util.cpp
/work/src/./test/fuzz/util.h:135:9: error: no matching function for call to 'ConsumeRandomLengthByteVector' [clang-diagnostic-error]
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:82:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
2410 warnings and 1 error generated.
Error while processing /work/src/test/fuzz/util.cpp.
Suppressed 2410 warnings (2410 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler error(s).
[92/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/tx_in.cpp.o
[93/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/tx_out.cpp.o
[94/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o
FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o 
/usr/bin/cmake -E __run_co_compile --launcher=/usr/bin/ccache --tidy="/usr/bin/clang-tidy-16;-warnings-as-errors=*;--extra-arg-before=--driver-mode=g++" --source=/work/src/test/fuzz/socks5.cpp -- /usr/bin/clang++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DPROVIDE_FUZZ_MAIN_FUNCTION -I/work/src/. -I/work/abc-ci-builds/build-clang-tidy/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-clang-tidy/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -I/work/chronik -I/work/abc-ci-builds/build-clang-tidy/cargo/build/x86_64-unknown-linux-gnu/cxxbridge -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -g -O2 -fPIE -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 -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -Wshadow -Wshadow-field -std=gnu++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o -c /work/src/test/fuzz/socks5.cpp
/work/src/./test/fuzz/util.h:135:9: error: no matching function for call to 'ConsumeRandomLengthByteVector' [clang-diagnostic-error]
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:82:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
2903 warnings and 1 error generated.
Error while processing /work/src/test/fuzz/socks5.cpp.
Suppressed 2903 warnings (2903 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler error(s).
[95/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/txrequest.cpp.o
[96/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o
FAILED: src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o 
/usr/bin/cmake -E __run_co_compile --launcher=/usr/bin/ccache --tidy="/usr/bin/clang-tidy-16;-warnings-as-errors=*;--extra-arg-before=--driver-mode=g++" --source=/work/src/test/fuzz/validation_load_mempool.cpp -- /usr/bin/clang++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -DPROVIDE_FUZZ_MAIN_FUNCTION -I/work/src/. -I/work/abc-ci-builds/build-clang-tidy/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-clang-tidy/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -I/work/chronik -I/work/abc-ci-builds/build-clang-tidy/cargo/build/x86_64-unknown-linux-gnu/cxxbridge -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -g -O2 -fPIE -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 -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wthread-safety -Wrange-loop-analysis -Wredundant-decls -Wunreachable-code-loop-increment -Wsign-compare -Wconditional-uninitialized -Wdocumentation -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -Wshadow -Wshadow-field -std=gnu++20 -MD -MT src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o -MF src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o.d -o src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o -c /work/src/test/fuzz/validation_load_mempool.cpp
/work/src/./test/fuzz/util.h:135:9: error: no matching function for call to 'ConsumeRandomLengthByteVector' [clang-diagnostic-error]
        ConsumeRandomLengthByteVector(fuzzed_data_provider, max_length)};
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/work/src/./test/fuzz/util.h:82:1: note: candidate function template not viable: no known conversion from 'const std::optional<size_t>' (aka 'const optional<unsigned long>') to 'const size_t' (aka 'const unsigned long') for 2nd argument
ConsumeRandomLengthByteVector(FuzzedDataProvider &fuzzed_data_provider,
^
2906 warnings and 1 error generated.
Error while processing /work/src/test/fuzz/validation_load_mempool.cpp.
Suppressed 2906 warnings (2906 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
Found compiler error(s).
[97/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/transaction.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1

fix fuzzers (we need to maintain sub_net_deserialize until we can backport core#22570 which removes the CSubNet serialization code))

anticipating a clang-tidy failure

PiRK published this revision for review.Dec 16 2025, 15:46

Tail of the build log:

/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -I/work/src/. -I/work/abc-ci-builds/build-without-wallet/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -std=gnu++20 -MD -MT src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o -MF src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o.d -o src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o -c /work/src/seeder/test/p2p_messaging_tests.cpp
In file included from /usr/include/c++/12/bits/stl_iterator.h:85,
                 from /usr/include/c++/12/bits/stl_algobase.h:67,
                 from /usr/include/c++/12/algorithm:60,
                 from /work/src/./span.h:8,
                 from /work/src/./uint256.h:9,
                 from /work/src/./primitives/blockhash.h:8,
                 from /work/src/./consensus/params.h:9,
                 from /work/src/./kernel/chainparams.h:9,
                 from /work/src/./chainparams.h:9,
                 from /work/src/seeder/test/p2p_messaging_tests.cpp:5:
In function ‘constexpr decltype (::new(void*(0)) _Tp) std::construct_at(_Tp*, _Args&& ...) [with _Tp = byte; _Args = {const byte&}]’,
    inlined from ‘static constexpr std::_Require<std::__and_<std::__not_<typename std::allocator_traits< <template-parameter-1-1> >::__construct_helper<_Tp, _Args>::type>, std::is_constructible<_Tp, _Args ...> > > std::allocator_traits< <template-parameter-1-1> >::_S_construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::byte; _Args = {const std::byte&}; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/alloc_traits.h:263:21,
    inlined from ‘static constexpr decltype (std::allocator_traits< <template-parameter-1-1> >::_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits< <template-parameter-1-1> >::construct::__args)...)) std::allocator_traits< <template-parameter-1-1> >::construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::byte; _Args = {const std::byte&}; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/alloc_traits.h:364:16,
    inlined from ‘constexpr _ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = const byte*; _ForwardIterator = byte*; _Allocator = zero_after_free_allocator<byte>]’ at /usr/include/c++/12/bits/stl_uninitialized.h:352:25,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_range_insert(iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/vector.tcc:769:34,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_insert_dispatch(iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1779:19,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::insert(const_iterator, _InputIterator, _InputIterator) [with _InputIterator = const std::byte*; <template-parameter-2-2> = void; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1481:22,
    inlined from ‘void DataStream::write(Span<const std::byte>)’ at /work/src/./streams.h:348:19,
    inlined from ‘void ser_writedata32(Stream&, uint32_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:74:12,
    inlined from ‘void Serialize(Stream&, int32_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:326:20,
    inlined from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CDataStream; Arg = int; Args = {BlockHash, uint256, unsigned int, unsigned int, unsigned int}]’ at /work/src/./serialize.h:1230:16,
    inlined from ‘void SerReadWriteMany(Stream&, ActionSerialize, const Args& ...) [with Stream = CDataStream; Args = {int, BlockHash, uint256, unsigned int, unsigned int, unsigned int}]’ at /work/src/./serialize.h:1245:20,
    inlined from ‘static void CBlockHeader::SerializationOps(Type&, Stream&, Operation) [with Stream = CDataStream; Type = const CBlockHeader; Operation = ActionSerialize]’ at /work/src/./primitives/block.h:36:9,
    inlined from ‘static void CBlockHeader::Ser(Stream&, const CBlockHeader&) [with Stream = CDataStream]’ at /work/src/./primitives/block.h:35:5,
    inlined from ‘void CBlockHeader::Serialize(Stream&) const [with Stream = CDataStream]’ at /work/src/./primitives/block.h:35:5,
    inlined from ‘void Serialize(Stream&, const T&) [with Stream = CDataStream; T = CBlockHeader]’ at /work/src/./serialize.h:955:16,
    inlined from ‘CDataStream& CDataStream::operator<<(const T&) [with T = CBlockHeader]’ at /work/src/./streams.h:402:20,
    inlined from ‘void p2p_messaging_tests::good_checkpoint::test_method()’ at /work/src/seeder/test/p2p_messaging_tests.cpp:240:30:
/usr/include/c++/12/bits/stl_construct.h:97:14: error: writing 4 bytes into a region of size 1 [-Werror=stringop-overflow=]
   97 |     { return ::new((void*)__location) _Tp(std::forward<_Args>(__args)...); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/12/bits/c++allocator.h:33,
                 from /usr/include/c++/12/bits/allocator.h:46,
                 from /usr/include/c++/12/string:41,
                 from /work/src/./uint256.h:14:
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = std::byte]’,
    inlined from ‘constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = std::byte]’ at /usr/include/c++/12/bits/allocator.h:188:40,
    inlined from ‘static constexpr std::allocator_traits< <template-parameter-1-1> >::pointer std::allocator_traits< <template-parameter-1-1> >::allocate(_Alloc&, size_type) [with _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/alloc_traits.h:318:28,
    inlined from ‘constexpr std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:378:33,
    inlined from ‘constexpr std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:375:7,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_range_insert(iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/vector.tcc:787:40,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_insert_dispatch(iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1779:19,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::insert(const_iterator, _InputIterator, _InputIterator) [with _InputIterator = const std::byte*; <template-parameter-2-2> = void; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1481:22,
    inlined from ‘void DataStream::write(Span<const std::byte>)’ at /work/src/./streams.h:348:19,
    inlined from ‘void ser_writedata8(Stream&, uint8_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:59:12,
    inlined from ‘void WriteCompactSize(Stream&, uint64_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:455:23,
    inlined from ‘void p2p_messaging_tests::good_checkpoint::test_method()’ at /work/src/seeder/test/p2p_messaging_tests.cpp:239:21:
/usr/include/c++/12/bits/new_allocator.h:137:55: note: destination object of size 1 allocated by ‘operator new’
  137 |         return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
      |                                                       ^
cc1plus: all warnings being treated as errors
[218/500] Running pow test suite
PASSED: pow test suite
[222/500] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
[485/500] Running bitcoin test suite
PASSED: bitcoin test suite
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Tail of the build log:

wallet_watchonly.py --usecli                     | ✓ Passed  | 1 s
chronik_avalanche.py                             | ○ Skipped | 0 s
chronik_block.py                                 | ○ Skipped | 0 s
chronik_block_header.py                          | ○ Skipped | 0 s
chronik_block_info.py                            | ○ Skipped | 0 s
chronik_block_txs.py                             | ○ Skipped | 0 s
chronik_blockchain_info.py                       | ○ Skipped | 0 s
chronik_blocks.py                                | ○ Skipped | 0 s
chronik_broadcast_tx.py                          | ○ Skipped | 0 s
chronik_chronik_info.py                          | ○ Skipped | 0 s
chronik_cors.py                                  | ○ Skipped | 0 s
chronik_disable_token_index.py                   | ○ Skipped | 0 s
chronik_disallow_prune.py                        | ○ Skipped | 0 s
chronik_electrum_basic.py                        | ○ Skipped | 0 s
chronik_electrum_blockchain.py                   | ○ Skipped | 0 s
chronik_lokad_id_group.py                        | ○ Skipped | 0 s
chronik_mempool_conflicts.py                     | ○ Skipped | 0 s
chronik_mempool_disconnectpool.py                | ○ Skipped | 0 s
chronik_pause.py                                 | ○ Skipped | 0 s
chronik_plugin_groups.py                         | ○ Skipped | 0 s
chronik_plugins.py                               | ○ Skipped | 0 s
chronik_plugins_setup.py                         | ○ Skipped | 0 s
chronik_raw_tx.py                                | ○ Skipped | 0 s
chronik_resync.py                                | ○ Skipped | 0 s
chronik_script_confirmed_txs.py                  | ○ Skipped | 0 s
chronik_script_history.py                        | ○ Skipped | 0 s
chronik_script_unconfirmed_txs.py                | ○ Skipped | 0 s
chronik_script_utxos.py                          | ○ Skipped | 0 s
chronik_scripthash.py                            | ○ Skipped | 0 s
chronik_serve.py                                 | ○ Skipped | 0 s
chronik_shutdown.py                              | ○ Skipped | 0 s
chronik_spent_by.py                              | ○ Skipped | 0 s
chronik_token_alp.py                             | ○ Skipped | 0 s
chronik_token_broadcast_txs.py                   | ○ Skipped | 0 s
chronik_token_burn.py                            | ○ Skipped | 0 s
chronik_token_id_group.py                        | ○ Skipped | 0 s
chronik_token_parse_failure.py                   | ○ Skipped | 0 s
chronik_token_script_group.py                    | ○ Skipped | 0 s
chronik_token_slp_fungible.py                    | ○ Skipped | 0 s
chronik_token_slp_mint_vault.py                  | ○ Skipped | 0 s
chronik_token_slp_nft1.py                        | ○ Skipped | 0 s
chronik_tx.py                                    | ○ Skipped | 0 s
chronik_tx_removal_order.py                      | ○ Skipped | 0 s
chronik_unconfirmed_txs.py                       | ○ Skipped | 0 s
chronik_ws.py                                    | ○ Skipped | 0 s
chronik_ws_avalanche.py                          | ○ Skipped | 0 s
chronik_ws_ordering.py                           | ○ Skipped | 0 s
chronik_ws_ping.py                               | ○ Skipped | 0 s
chronik_ws_script.py                             | ○ Skipped | 0 s
feature_bind_port_discover.py                    | ○ Skipped | 0 s
feature_bind_port_externalip.py                  | ○ Skipped | 0 s
interface_usdt_net.py                            | ○ Skipped | 0 s
interface_usdt_utxocache.py                      | ○ Skipped | 0 s
interface_usdt_validation.py                     | ○ Skipped | 0 s

ALL                                              | ✓ Passed  | 1273 s (accumulated) 
Runtime: 114 s

ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

looks like the gcc 12.2 spurious [-Werror=stringop-overflow=]

PiRK planned changes to this revision.Dec 16 2025, 15:58

Tail of the build log:

[40/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/fees.cpp.o
[41/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/http_request.cpp.o
[42/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/golomb_rice.cpp.o
[43/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/key_io.cpp.o
[44/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/cuckoocache.cpp.o
[45/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/key.cpp.o
[46/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/integer.cpp.o
[47/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/overflow.cpp.o
[48/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/kitchen_sink.cpp.o
[49/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/parse_iso8601.cpp.o
[50/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/parse_numbers.cpp.o
[51/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/parse_script.cpp.o
[52/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/merkleblock.cpp.o
[53/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/message.cpp.o
[54/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/prevector.cpp.o
[55/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/muhash.cpp.o
[56/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/multiplication_overflow.cpp.o
[57/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/net_permissions.cpp.o
[58/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/netaddress.cpp.o
[59/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/node_eviction.cpp.o
[60/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/p2p_transport_deserializer.cpp.o
[61/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/parse_hd_keypath.cpp.o
[62/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/parse_univalue.cpp.o
[63/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/load_external_block_file.cpp.o
[64/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/pow.cpp.o
[65/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/net.cpp.o
[66/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/primitives_transaction.cpp.o
[67/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/psbt.cpp.o
[68/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/protocol.cpp.o
[69/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/script_flags.cpp.o
[70/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/random.cpp.o
[71/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/rolling_bloom_filter.cpp.o
[72/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/script_bitcoin_consensus.cpp.o
[73/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/script.cpp.o
[74/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/script_descriptor_cache.cpp.o
[75/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/spanparsing.cpp.o
[76/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/process_message.cpp.o
[77/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/script_interpreter.cpp.o
[78/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/script_ops.cpp.o
[79/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/process_messages.cpp.o
[80/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/signature_checker.cpp.o
[81/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/secp256k1_ecdsa_signature_parse_der_lax.cpp.o
[82/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/scriptnum_ops.cpp.o
[83/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/secp256k1_ec_seckey_import_export_der.cpp.o
[84/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/script_sign.cpp.o
[85/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/span.cpp.o
[86/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/script_sigcache.cpp.o
[87/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/tx_out.cpp.o
[88/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/tx_in.cpp.o
[89/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/string.cpp.o
[90/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/strprintf.cpp.o
[91/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/system.cpp.o
[92/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/timedata.cpp.o
[93/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/util.cpp.o
[94/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/socks5.cpp.o
[95/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/txrequest.cpp.o
[96/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/transaction.cpp.o
[97/98] Building CXX object src/test/fuzz/CMakeFiles/fuzz.dir/validation_load_mempool.cpp.o
ninja: build stopped: cannot make progress due to previous errors.
Build build-clang-tidy failed with exit code 1

Tail of the build log:

/usr/bin/ccache /usr/bin/c++ -DBOOST_ALL_NO_LIB -DBOOST_NO_CXX98_FUNCTION_BASE -DBUILD_BITCOIN_INTERNAL -DENABLE_AVX2 -DENABLE_SHANI -DENABLE_SSE41 -DHAVE_BUILD_INFO -DHAVE_CONFIG_H -DHAVE_CONSENSUS_LIB -I/work/src/. -I/work/abc-ci-builds/build-without-wallet/src -I/work/src/univalue/include -I/work/abc-ci-builds/build-without-wallet/src/crypto/.. -I/work/src/secp256k1/include -I/work/src/leveldb/include -I/work/src/crc32c/include -isystem /usr/include/jemalloc -isystem /usr/include/miniupnpc -Werror -g -O2 -fPIE -fvisibility=hidden -fstack-reuse=none -fstack-protector-all -Wstack-protector -fcf-protection=full -fstack-clash-protection -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wformat -Wvla -Wcast-align -Wunused-parameter -Wmissing-braces -Wno-implicit-fallthrough -Wno-psabi -Wno-unused-parameter -Wredundant-decls -Wsign-compare -Wduplicated-branches -Wduplicated-cond -Wlogical-op -Wformat-security -Wredundant-move -Wsuggest-override -Woverloaded-virtual -std=gnu++20 -MD -MT src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o -MF src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o.d -o src/seeder/test/CMakeFiles/test-seeder.dir/p2p_messaging_tests.cpp.o -c /work/src/seeder/test/p2p_messaging_tests.cpp
In file included from /usr/include/c++/12/bits/stl_iterator.h:85,
                 from /usr/include/c++/12/bits/stl_algobase.h:67,
                 from /usr/include/c++/12/algorithm:60,
                 from /work/src/./span.h:8,
                 from /work/src/./uint256.h:9,
                 from /work/src/./primitives/blockhash.h:8,
                 from /work/src/./consensus/params.h:9,
                 from /work/src/./kernel/chainparams.h:9,
                 from /work/src/./chainparams.h:9,
                 from /work/src/seeder/test/p2p_messaging_tests.cpp:5:
In function ‘constexpr decltype (::new(void*(0)) _Tp) std::construct_at(_Tp*, _Args&& ...) [with _Tp = byte; _Args = {const byte&}]’,
    inlined from ‘static constexpr std::_Require<std::__and_<std::__not_<typename std::allocator_traits< <template-parameter-1-1> >::__construct_helper<_Tp, _Args>::type>, std::is_constructible<_Tp, _Args ...> > > std::allocator_traits< <template-parameter-1-1> >::_S_construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::byte; _Args = {const std::byte&}; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/alloc_traits.h:263:21,
    inlined from ‘static constexpr decltype (std::allocator_traits< <template-parameter-1-1> >::_S_construct(__a, __p, (forward<_Args>)(std::allocator_traits< <template-parameter-1-1> >::construct::__args)...)) std::allocator_traits< <template-parameter-1-1> >::construct(_Alloc&, _Tp*, _Args&& ...) [with _Tp = std::byte; _Args = {const std::byte&}; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/alloc_traits.h:364:16,
    inlined from ‘constexpr _ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, _Allocator&) [with _InputIterator = const byte*; _ForwardIterator = byte*; _Allocator = zero_after_free_allocator<byte>]’ at /usr/include/c++/12/bits/stl_uninitialized.h:352:25,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_range_insert(iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/vector.tcc:769:34,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_insert_dispatch(iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1779:19,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::insert(const_iterator, _InputIterator, _InputIterator) [with _InputIterator = const std::byte*; <template-parameter-2-2> = void; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1481:22,
    inlined from ‘void DataStream::write(Span<const std::byte>)’ at /work/src/./streams.h:348:19,
    inlined from ‘void ser_writedata32(Stream&, uint32_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:74:12,
    inlined from ‘void Serialize(Stream&, int32_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:326:20,
    inlined from ‘void SerializeMany(Stream&, const Arg&, const Args& ...) [with Stream = CDataStream; Arg = int; Args = {BlockHash, uint256, unsigned int, unsigned int, unsigned int}]’ at /work/src/./serialize.h:1230:16,
    inlined from ‘void SerReadWriteMany(Stream&, ActionSerialize, const Args& ...) [with Stream = CDataStream; Args = {int, BlockHash, uint256, unsigned int, unsigned int, unsigned int}]’ at /work/src/./serialize.h:1245:20,
    inlined from ‘static void CBlockHeader::SerializationOps(Type&, Stream&, Operation) [with Stream = CDataStream; Type = const CBlockHeader; Operation = ActionSerialize]’ at /work/src/./primitives/block.h:36:9,
    inlined from ‘static void CBlockHeader::Ser(Stream&, const CBlockHeader&) [with Stream = CDataStream]’ at /work/src/./primitives/block.h:35:5,
    inlined from ‘void CBlockHeader::Serialize(Stream&) const [with Stream = CDataStream]’ at /work/src/./primitives/block.h:35:5,
    inlined from ‘void Serialize(Stream&, const T&) [with Stream = CDataStream; T = CBlockHeader]’ at /work/src/./serialize.h:955:16,
    inlined from ‘CDataStream& CDataStream::operator<<(const T&) [with T = CBlockHeader]’ at /work/src/./streams.h:402:20,
    inlined from ‘void p2p_messaging_tests::good_checkpoint::test_method()’ at /work/src/seeder/test/p2p_messaging_tests.cpp:240:30:
/usr/include/c++/12/bits/stl_construct.h:97:14: error: writing 4 bytes into a region of size 1 [-Werror=stringop-overflow=]
   97 |     { return ::new((void*)__location) _Tp(std::forward<_Args>(__args)...); }
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/12/bits/c++allocator.h:33,
                 from /usr/include/c++/12/bits/allocator.h:46,
                 from /usr/include/c++/12/string:41,
                 from /work/src/./uint256.h:14:
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = std::byte]’,
    inlined from ‘constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = std::byte]’ at /usr/include/c++/12/bits/allocator.h:188:40,
    inlined from ‘static constexpr std::allocator_traits< <template-parameter-1-1> >::pointer std::allocator_traits< <template-parameter-1-1> >::allocate(_Alloc&, size_type) [with _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/alloc_traits.h:318:28,
    inlined from ‘constexpr std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:378:33,
    inlined from ‘constexpr std::_Vector_base<_Tp, _Alloc>::pointer std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:375:7,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_range_insert(iterator, _ForwardIterator, _ForwardIterator, std::forward_iterator_tag) [with _ForwardIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/vector.tcc:787:40,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_insert_dispatch(iterator, _InputIterator, _InputIterator, std::__false_type) [with _InputIterator = const std::byte*; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1779:19,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::insert(const_iterator, _InputIterator, _InputIterator) [with _InputIterator = const std::byte*; <template-parameter-2-2> = void; _Tp = std::byte; _Alloc = zero_after_free_allocator<std::byte>]’ at /usr/include/c++/12/bits/stl_vector.h:1481:22,
    inlined from ‘void DataStream::write(Span<const std::byte>)’ at /work/src/./streams.h:348:19,
    inlined from ‘void ser_writedata8(Stream&, uint8_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:59:12,
    inlined from ‘void WriteCompactSize(Stream&, uint64_t) [with Stream = CDataStream]’ at /work/src/./serialize.h:455:23,
    inlined from ‘void p2p_messaging_tests::good_checkpoint::test_method()’ at /work/src/seeder/test/p2p_messaging_tests.cpp:239:21:
/usr/include/c++/12/bits/new_allocator.h:137:55: note: destination object of size 1 allocated by ‘operator new’
  137 |         return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
      |                                                       ^
cc1plus: all warnings being treated as errors
[219/500] Running pow test suite
PASSED: pow test suite
[222/500] Running bitcoin-qt test suite
PASSED: bitcoin-qt test suite
[485/500] Running bitcoin test suite
PASSED: bitcoin test suite
ninja: build stopped: cannot make progress due to previous errors.
Build build-without-wallet failed with exit code 1

Tail of the build log:

wallet_watchonly.py --usecli                     | ✓ Passed  | 1 s
chronik_avalanche.py                             | ○ Skipped | 0 s
chronik_block.py                                 | ○ Skipped | 0 s
chronik_block_header.py                          | ○ Skipped | 0 s
chronik_block_info.py                            | ○ Skipped | 0 s
chronik_block_txs.py                             | ○ Skipped | 0 s
chronik_blockchain_info.py                       | ○ Skipped | 0 s
chronik_blocks.py                                | ○ Skipped | 0 s
chronik_broadcast_tx.py                          | ○ Skipped | 0 s
chronik_chronik_info.py                          | ○ Skipped | 0 s
chronik_cors.py                                  | ○ Skipped | 0 s
chronik_disable_token_index.py                   | ○ Skipped | 0 s
chronik_disallow_prune.py                        | ○ Skipped | 0 s
chronik_electrum_basic.py                        | ○ Skipped | 0 s
chronik_electrum_blockchain.py                   | ○ Skipped | 0 s
chronik_lokad_id_group.py                        | ○ Skipped | 0 s
chronik_mempool_conflicts.py                     | ○ Skipped | 0 s
chronik_mempool_disconnectpool.py                | ○ Skipped | 0 s
chronik_pause.py                                 | ○ Skipped | 0 s
chronik_plugin_groups.py                         | ○ Skipped | 0 s
chronik_plugins.py                               | ○ Skipped | 0 s
chronik_plugins_setup.py                         | ○ Skipped | 0 s
chronik_raw_tx.py                                | ○ Skipped | 0 s
chronik_resync.py                                | ○ Skipped | 0 s
chronik_script_confirmed_txs.py                  | ○ Skipped | 0 s
chronik_script_history.py                        | ○ Skipped | 0 s
chronik_script_unconfirmed_txs.py                | ○ Skipped | 0 s
chronik_script_utxos.py                          | ○ Skipped | 0 s
chronik_scripthash.py                            | ○ Skipped | 0 s
chronik_serve.py                                 | ○ Skipped | 0 s
chronik_shutdown.py                              | ○ Skipped | 0 s
chronik_spent_by.py                              | ○ Skipped | 0 s
chronik_token_alp.py                             | ○ Skipped | 0 s
chronik_token_broadcast_txs.py                   | ○ Skipped | 0 s
chronik_token_burn.py                            | ○ Skipped | 0 s
chronik_token_id_group.py                        | ○ Skipped | 0 s
chronik_token_parse_failure.py                   | ○ Skipped | 0 s
chronik_token_script_group.py                    | ○ Skipped | 0 s
chronik_token_slp_fungible.py                    | ○ Skipped | 0 s
chronik_token_slp_mint_vault.py                  | ○ Skipped | 0 s
chronik_token_slp_nft1.py                        | ○ Skipped | 0 s
chronik_tx.py                                    | ○ Skipped | 0 s
chronik_tx_removal_order.py                      | ○ Skipped | 0 s
chronik_unconfirmed_txs.py                       | ○ Skipped | 0 s
chronik_ws.py                                    | ○ Skipped | 0 s
chronik_ws_avalanche.py                          | ○ Skipped | 0 s
chronik_ws_ordering.py                           | ○ Skipped | 0 s
chronik_ws_ping.py                               | ○ Skipped | 0 s
chronik_ws_script.py                             | ○ Skipped | 0 s
feature_bind_port_discover.py                    | ○ Skipped | 0 s
feature_bind_port_externalip.py                  | ○ Skipped | 0 s
interface_usdt_net.py                            | ○ Skipped | 0 s
interface_usdt_utxocache.py                      | ○ Skipped | 0 s
interface_usdt_validation.py                     | ○ Skipped | 0 s

ALL                                              | ✓ Passed  | 1283 s (accumulated) 
Runtime: 111 s

ninja: build stopped: cannot make progress due to previous errors.
Build build-diff failed with exit code 1

try reserving only 4 bytes (the spurious warning says error: writing 4 bytes into a region of size 1)

This revision is now accepted and ready to land.Dec 17 2025, 13:20