ci: tidy job is producing output #33256

issue fanquake opened this issue on August 26, 2025
  1. fanquake commented at 10:50 AM on August 26, 2025: member

    master (6ca6f3b37b992591726bd13b494369bee3bd6468) https://cirrus-ci.com/task/5658586602274816:

    [17:17:19.943] [108/715][22.0s] clang-tidy-20 -p=/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/echo.capnp.proxy-server.c++
    [17:17:34.032] /usr/include/kj/async-inl.h:609:37: warning: The left operand of '+' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
    [17:17:34.032]   609 |       return *(void**)(*(char**)obj + voff);
    [17:17:34.032]       |                                     ^
    [17:17:34.032] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/echo.capnp.proxy-server.c++:23:12: note: Calling 'serverInvoke<mp::ProxyServer<ipc::capnp::messages::Echo>, capnp::CallContext<ipc::capnp::messages::Echo::EchoParams, ipc::capnp::messages::Echo::EchoResults>, mp::ServerField<0, mp::Accessor<mp::echo_fields::Context, 17>, mp::ServerField<1, mp::Accessor<mp::echo_fields::Echo, 17>, mp::ServerRet<mp::Accessor<mp::echo_fields::Result, 18>, mp::ServerCall>>>>'
    [17:17:34.032]    23 |     return serverInvoke(*this, call_context, MakeServerField<0, Accessor<echo_fields::Context, FIELD_IN | FIELD_BOXED>>(MakeServerField<1, Accessor<echo_fields::Echo, FIELD_IN | FIELD_BOXED>>(Make<ServerRet, Accessor<echo_fields::Result, FIELD_OUT | FIELD_BOXED>>(ServerCall()))));
    [17:17:34.032]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:16: note: Calling 'ReplaceVoid<(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:28), (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:718:13)>'
    [17:17:34.032]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    [17:17:34.032]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
    [17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
    [17:17:34.032]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    [17:17:34.032]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
    [17:17:34.032]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    [17:17:34.032]       |     ^
    [17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
    [17:17:34.032]   682 |         return fn();
    [17:17:34.032]       |                ^~~~
    [17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
    [17:17:34.032]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    [17:17:34.032]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:539:16: note: Calling 'PassField<mp::Accessor<mp::echo_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Echo>, capnp::CallContext<ipc::capnp::messages::Echo::EchoParams, ipc::capnp::messages::Echo::EchoResults>>, mp::ServerField<1, mp::Accessor<mp::echo_fields::Echo, 17>, mp::ServerRet<mp::Accessor<mp::echo_fields::Result, 18>, mp::ServerCall>>, mp::TypeList<const std::basic_string<char> &>>'
    [17:17:34.032]   539 |         return PassField<Accessor>(Priority<2>(),
    [17:17:34.032]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032]   540 |             typename Split<argc, ArgTypes>::First(),
    [17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032]   541 |             server_context,
    [17:17:34.032]       |             ~~~~~~~~~~~~~~~
    [17:17:34.032]   542 |             this->parent(),
    [17:17:34.032]       |             ~~~~~~~~~~~~~~~
    [17:17:34.032]   543 |             typename Split<argc, ArgTypes>::Second(),
    [17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032]   544 |             std::forward<Args>(args)...);
    [17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
    [17:17:34.032]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
    [17:17:34.032]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
    [17:17:34.032]  1274 |   return getLocalServerInternal(client)
    [17:17:34.032]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
    [17:17:34.032]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032]  1276 |     if (server == nullptr) {
    [17:17:34.032]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032]  1277 |       return nullptr;
    [17:17:34.032]       |       ~~~~~~~~~~~~~~~
    [17:17:34.032]  1278 |     } else {
    [17:17:34.032]       |     ~~~~~~~~
    [17:17:34.032]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
    [17:17:34.032]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032]  1280 |     }
    [17:17:34.032]       |     ~
    [17:17:34.032]  1281 |   });
    [17:17:34.032]       |   ~~
    [17:17:34.032] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
    [17:17:34.032]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
    [17:17:34.032]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
    [17:17:34.032]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
    [17:17:34.032]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032]   678 |         &Decay<Func>::operator()).apply(&func);
    [17:17:34.032]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:17:34.032] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
    [17:17:34.032]   606 |     if (voff & 1) {
    [17:17:34.032]       |         ^~~~~~~~
    [17:17:34.032] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
    [17:17:34.032]   606 |     if (voff & 1) {
    [17:17:34.032]       |     ^
    [17:17:34.032] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
    [17:17:34.032]   609 |       return *(void**)(*(char**)obj + voff);
    [17:17:34.032]       |                        ~~~~~~~~~~~~ ^
    [17:17:34.032] 1 warning generated.
    
    [17:30:54.725] [683/715][156.9s] clang-tidy-20 -p=/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/mining.capnp.proxy-server.c++
    [17:30:54.725] /usr/include/kj/async-inl.h:609:37: warning: The left operand of '+' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
    [17:30:54.725]   609 |       return *(void**)(*(char**)obj + voff);
    [17:30:54.725]       |                                     ^
    [17:30:54.725] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/mining.capnp.proxy-server.c++:68:12: note: Calling 'serverInvoke<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>, mp::ServerField<0, mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>>>'
    [17:30:54.725]    68 |     return serverInvoke(*this, call_context, MakeServerField<0, Accessor<mining_fields::Context, FIELD_IN | FIELD_BOXED>>(MakeServerField<1, Accessor<mining_fields::Options, FIELD_IN | FIELD_BOXED>>(Make<ServerRet, Accessor<mining_fields::Result, FIELD_OUT | FIELD_BOXED>>(ServerCall()))));
    [17:30:54.725]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:16: note: Calling 'ReplaceVoid<(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:28), (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:718:13)>'
    [17:30:54.725]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    [17:30:54.725]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
    [17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
    [17:30:54.725]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    [17:30:54.725]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
    [17:30:54.725]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    [17:30:54.725]       |     ^
    [17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
    [17:30:54.725]   682 |         return fn();
    [17:30:54.725]       |                ^~~~
    [17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
    [17:30:54.725]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    [17:30:54.725]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:539:16: note: Calling 'PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::BlockTemplate>, capnp::CallContext<ipc::capnp::messages::BlockTemplate::WaitNextParams, ipc::capnp::messages::BlockTemplate::WaitNextResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>, mp::TypeList<node::BlockWaitOptions>>'
    [17:30:54.725]   539 |         return PassField<Accessor>(Priority<2>(),
    [17:30:54.725]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725]   540 |             typename Split<argc, ArgTypes>::First(),
    [17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725]   541 |             server_context,
    [17:30:54.725]       |             ~~~~~~~~~~~~~~~
    [17:30:54.725]   542 |             this->parent(),
    [17:30:54.725]       |             ~~~~~~~~~~~~~~~
    [17:30:54.725]   543 |             typename Split<argc, ArgTypes>::Second(),
    [17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725]   544 |             std::forward<Args>(args)...);
    [17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
    [17:30:54.725]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
    [17:30:54.725]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
    [17:30:54.725]  1274 |   return getLocalServerInternal(client)
    [17:30:54.725]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
    [17:30:54.725]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725]  1276 |     if (server == nullptr) {
    [17:30:54.725]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725]  1277 |       return nullptr;
    [17:30:54.725]       |       ~~~~~~~~~~~~~~~
    [17:30:54.725]  1278 |     } else {
    [17:30:54.725]       |     ~~~~~~~~
    [17:30:54.725]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
    [17:30:54.725]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725]  1280 |     }
    [17:30:54.725]       |     ~
    [17:30:54.725]  1281 |   });
    [17:30:54.725]       |   ~~
    [17:30:54.725] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
    [17:30:54.725]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
    [17:30:54.725]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
    [17:30:54.725]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
    [17:30:54.725]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725]   678 |         &Decay<Func>::operator()).apply(&func);
    [17:30:54.725]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:30:54.725] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
    [17:30:54.725]   606 |     if (voff & 1) {
    [17:30:54.725]       |         ^~~~~~~~
    [17:30:54.725] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
    [17:30:54.725]   606 |     if (voff & 1) {
    [17:30:54.725]       |     ^
    [17:30:54.725] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
    [17:30:54.725]   609 |       return *(void**)(*(char**)obj + voff);
    [17:30:54.725]       |                        ~~~~~~~~~~~~ ^
    [17:30:54.725] 1 warning generated.
    
    [17:31:39.220] [713/715][30.6s] clang-tidy-20 -p=/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/init.capnp.proxy-server.c++
    [17:31:45.233] /usr/include/kj/async-inl.h:609:37: warning: The left operand of '+' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
    [17:31:45.233]   609 |       return *(void**)(*(char**)obj + voff);
    [17:31:45.233]       |                                     ^
    [17:31:45.233] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/capnp/init.capnp.proxy-server.c++:26:12: note: Calling 'serverInvoke<mp::ProxyServer<ipc::capnp::messages::Init>, capnp::CallContext<ipc::capnp::messages::Init::MakeMiningParams, ipc::capnp::messages::Init::MakeMiningResults>, mp::ServerField<0, mp::Accessor<mp::init_fields::Context, 17>, mp::ServerRet<mp::Accessor<mp::init_fields::Result, 18>, mp::ServerCall>>>'
    [17:31:45.233]    26 |     return serverInvoke(*this, call_context, MakeServerField<0, Accessor<init_fields::Context, FIELD_IN | FIELD_BOXED>>(Make<ServerRet, Accessor<init_fields::Result, FIELD_OUT | FIELD_BOXED>>(ServerCall())));
    [17:31:45.233]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:16: note: Calling 'ReplaceVoid<(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:28), (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:718:13)>'
    [17:31:45.233]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    [17:31:45.233]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
    [17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
    [17:31:45.233]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    [17:31:45.233]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
    [17:31:45.233]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    [17:31:45.233]       |     ^
    [17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
    [17:31:45.233]   682 |         return fn();
    [17:31:45.233]       |                ^~~~
    [17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
    [17:31:45.233]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    [17:31:45.233]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:539:16: note: Calling 'PassField<mp::Accessor<mp::init_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Init>, capnp::CallContext<ipc::capnp::messages::Init::MakeMiningParams, ipc::capnp::messages::Init::MakeMiningResults>>, mp::ServerRet<mp::Accessor<mp::init_fields::Result, 18>, mp::ServerCall>, mp::TypeList<>>'
    [17:31:45.233]   539 |         return PassField<Accessor>(Priority<2>(),
    [17:31:45.233]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233]   540 |             typename Split<argc, ArgTypes>::First(),
    [17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233]   541 |             server_context,
    [17:31:45.233]       |             ~~~~~~~~~~~~~~~
    [17:31:45.233]   542 |             this->parent(),
    [17:31:45.233]       |             ~~~~~~~~~~~~~~~
    [17:31:45.233]   543 |             typename Split<argc, ArgTypes>::Second(),
    [17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233]   544 |             std::forward<Args>(args)...);
    [17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
    [17:31:45.233]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
    [17:31:45.233]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
    [17:31:45.233]  1274 |   return getLocalServerInternal(client)
    [17:31:45.233]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
    [17:31:45.233]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233]  1276 |     if (server == nullptr) {
    [17:31:45.233]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233]  1277 |       return nullptr;
    [17:31:45.233]       |       ~~~~~~~~~~~~~~~
    [17:31:45.233]  1278 |     } else {
    [17:31:45.233]       |     ~~~~~~~~
    [17:31:45.233]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
    [17:31:45.233]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233]  1280 |     }
    [17:31:45.233]       |     ~
    [17:31:45.233]  1281 |   });
    [17:31:45.233]       |   ~~
    [17:31:45.233] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
    [17:31:45.233]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
    [17:31:45.233]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
    [17:31:45.233]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
    [17:31:45.233]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233]   678 |         &Decay<Func>::operator()).apply(&func);
    [17:31:45.233]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:31:45.233] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
    [17:31:45.233]   606 |     if (voff & 1) {
    [17:31:45.233]       |         ^~~~~~~~
    [17:31:45.233] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
    [17:31:45.233]   606 |     if (voff & 1) {
    [17:31:45.233]       |     ^
    [17:31:45.233] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
    [17:31:45.233]   609 |       return *(void**)(*(char**)obj + voff);
    [17:31:45.233]       |                        ~~~~~~~~~~~~ ^
    [17:31:45.233] 2 warnings generated.
    [17:31:45.233] 
    [17:31:45.233] [714/715][167.1s] clang-tidy-20 -p=/ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu -quiet -load=/tidy-build/libbitcoin-tidy.so /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.proxy-server.c++
    [17:32:33.147] /usr/include/kj/async-inl.h:609:37: warning: The left operand of '+' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
    [17:32:33.147]   609 |       return *(void**)(*(char**)obj + voff);
    [17:32:33.147]       |                                     ^
    [17:32:33.147] /ci_container_base/ci/scratch/build-x86_64-pc-linux-gnu/src/ipc/libmultiprocess/test/mp/test/foo.capnp.proxy-server.c++:95:12: note: Calling 'serverInvoke<mp::ProxyServer<mp::test::messages::FooFn>, capnp::CallContext<mp::test::messages::FooFn::CallParams, mp::test::messages::FooFn::CallResults>, mp::ServerField<0, mp::Accessor<mp::foo_fields::Context, 17>, mp::ServerRet<mp::Accessor<mp::foo_fields::Result, 2>, mp::ServerCall>>>'
    [17:32:33.147]    95 |     return serverInvoke(*this, call_context, MakeServerField<0, Accessor<foo_fields::Context, FIELD_IN | FIELD_BOXED>>(Make<ServerRet, Accessor<foo_fields::Result, FIELD_OUT>>(ServerCall())));
    [17:32:33.147]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:16: note: Calling 'ReplaceVoid<(lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:28), (lambda at /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:718:13)>'
    [17:32:33.147]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    [17:32:33.147]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
    [17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
    [17:32:33.147]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    [17:32:33.147]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
    [17:32:33.147]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    [17:32:33.147]       |     ^
    [17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
    [17:32:33.147]   682 |         return fn();
    [17:32:33.147]       |                ^~~~
    [17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
    [17:32:33.147]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    [17:32:33.147]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:539:16: note: Calling 'PassField<mp::Accessor<mp::foo_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<mp::test::messages::FooFn>, capnp::CallContext<mp::test::messages::FooFn::CallParams, mp::test::messages::FooFn::CallResults>>, mp::ServerRet<mp::Accessor<mp::foo_fields::Result, 2>, mp::ServerCall>, mp::TypeList<>>'
    [17:32:33.147]   539 |         return PassField<Accessor>(Priority<2>(),
    [17:32:33.147]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147]   540 |             typename Split<argc, ArgTypes>::First(),
    [17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147]   541 |             server_context,
    [17:32:33.147]       |             ~~~~~~~~~~~~~~~
    [17:32:33.147]   542 |             this->parent(),
    [17:32:33.147]       |             ~~~~~~~~~~~~~~~
    [17:32:33.147]   543 |             typename Split<argc, ArgTypes>::Second(),
    [17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147]   544 |             std::forward<Args>(args)...);
    [17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
    [17:32:33.147]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
    [17:32:33.147]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
    [17:32:33.147]  1274 |   return getLocalServerInternal(client)
    [17:32:33.147]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
    [17:32:33.147]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147]  1276 |     if (server == nullptr) {
    [17:32:33.147]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147]  1277 |       return nullptr;
    [17:32:33.147]       |       ~~~~~~~~~~~~~~~
    [17:32:33.147]  1278 |     } else {
    [17:32:33.147]       |     ~~~~~~~~
    [17:32:33.147]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
    [17:32:33.147]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147]  1280 |     }
    [17:32:33.147]       |     ~
    [17:32:33.147]  1281 |   });
    [17:32:33.147]       |   ~~
    [17:32:33.147] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
    [17:32:33.147]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
    [17:32:33.147]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
    [17:32:33.147]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
    [17:32:33.147]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147]   678 |         &Decay<Func>::operator()).apply(&func);
    [17:32:33.147]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    [17:32:33.147] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
    [17:32:33.147]   606 |     if (voff & 1) {
    [17:32:33.147]       |         ^~~~~~~~
    [17:32:33.147] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
    [17:32:33.147]   606 |     if (voff & 1) {
    [17:32:33.147]       |     ^
    [17:32:33.147] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
    [17:32:33.147]   609 |       return *(void**)(*(char**)obj + voff);
    [17:32:33.147]       |                        ~~~~~~~~~~~~ ^
    [17:32:33.147] 1 warning generated.
    
  2. fanquake commented at 10:51 AM on August 26, 2025: member
  3. ryanofsky commented at 1:48 PM on August 26, 2025: contributor

    This warning "warning: The left operand of '+' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]" is a clang-analzyer false positive that we'd seen before and is fixed in https://github.com/capnproto/capnproto/pull/2334/commits/4c011373fe209a8b045b5aca0de043de271ad931 (https://github.com/capnproto/capnproto/pull/2334) upstream.

    As described in that commit message it's possible to turn off that specific warning globally but not really to suppress it locally with compiler options. So if the output is a problem we could turn it off globally, or apply the patch there which suppresses it locally with a NOLINT annotation

  4. maflcko added the label Tests on Aug 26, 2025
  5. fanquake added this to the milestone 30.0 on Sep 2, 2025
  6. fanquake commented at 11:04 AM on September 2, 2025: member

    So if the output is a problem we could turn it off globally, or apply the patch there which suppresses it locally with a NOLINT annotation

    I don't think we should have spurious/undocumented output in the CI, so it'd be good to fix this.

  7. ryanofsky referenced this in commit c157a1bc83 on Sep 2, 2025
  8. ryanofsky commented at 1:25 PM on September 2, 2025: contributor

    re: #33256 (comment)

    I don't think we should have spurious/undocumented output in the CI, so it'd be good to fix this.

    Agree it's important to fix because it makes output not useful for identifying real errors. Opened #33281 to try to work around this.

  9. achow101 closed this on Sep 8, 2025

  10. achow101 referenced this in commit 0b0bd74c3e on Sep 8, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-05-15 03:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me