ci: tidy job is producing output #33256

issue fanquake openend 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:

     0[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++
     1[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]
     2[17:17:34.032]   609 |       return *(void**)(*(char**)obj + voff);
     3[17:17:34.032]       |                                     ^
     4[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>>>>'
     5[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()))));
     6[17:17:34.032]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     7[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)>'
     8[17:17:34.032]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     9[17:17:34.032]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    10[17:17:34.032]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
    11[17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    12[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
    13[17:17:34.032]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    14[17:17:34.032]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    15[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
    16[17:17:34.032]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    17[17:17:34.032]       |     ^
    18[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
    19[17:17:34.032]   682 |         return fn();
    20[17:17:34.032]       |                ^~~~
    21[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
    22[17:17:34.032]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    23[17:17:34.032]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    24[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> &>>'
    25[17:17:34.032]   539 |         return PassField<Accessor>(Priority<2>(),
    26[17:17:34.032]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    27[17:17:34.032]   540 |             typename Split<argc, ArgTypes>::First(),
    28[17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    29[17:17:34.032]   541 |             server_context,
    30[17:17:34.032]       |             ~~~~~~~~~~~~~~~
    31[17:17:34.032]   542 |             this->parent(),
    32[17:17:34.032]       |             ~~~~~~~~~~~~~~~
    33[17:17:34.032]   543 |             typename Split<argc, ArgTypes>::Second(),
    34[17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    35[17:17:34.032]   544 |             std::forward<Args>(args)...);
    36[17:17:34.032]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    37[17:17:34.032] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
    38[17:17:34.032]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
    39[17:17:34.032]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    40[17:17:34.032] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
    41[17:17:34.032]  1274 |   return getLocalServerInternal(client)
    42[17:17:34.032]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    43[17:17:34.032]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
    44[17:17:34.032]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    45[17:17:34.032]  1276 |     if (server == nullptr) {
    46[17:17:34.032]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
    47[17:17:34.032]  1277 |       return nullptr;
    48[17:17:34.032]       |       ~~~~~~~~~~~~~~~
    49[17:17:34.032]  1278 |     } else {
    50[17:17:34.032]       |     ~~~~~~~~
    51[17:17:34.032]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
    52[17:17:34.032]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    53[17:17:34.032]  1280 |     }
    54[17:17:34.032]       |     ~
    55[17:17:34.032]  1281 |   });
    56[17:17:34.032]       |   ~~
    57[17:17:34.032] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
    58[17:17:34.032]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
    59[17:17:34.032]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    60[17:17:34.032] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
    61[17:17:34.032]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
    62[17:17:34.032]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    63[17:17:34.032]   678 |         &Decay<Func>::operator()).apply(&func);
    64[17:17:34.032]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    65[17:17:34.032] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
    66[17:17:34.032]   606 |     if (voff & 1) {
    67[17:17:34.032]       |         ^~~~~~~~
    68[17:17:34.032] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
    69[17:17:34.032]   606 |     if (voff & 1) {
    70[17:17:34.032]       |     ^
    71[17:17:34.032] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
    72[17:17:34.032]   609 |       return *(void**)(*(char**)obj + voff);
    73[17:17:34.032]       |                        ~~~~~~~~~~~~ ^
    74[17:17:34.032] 1 warning generated.
    
     0[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++
     1[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]
     2[17:30:54.725]   609 |       return *(void**)(*(char**)obj + voff);
     3[17:30:54.725]       |                                     ^
     4[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>>>>'
     5[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()))));
     6[17:30:54.725]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     7[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)>'
     8[17:30:54.725]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     9[17:30:54.725]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    10[17:30:54.725]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
    11[17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    12[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
    13[17:30:54.725]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    14[17:30:54.725]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    15[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
    16[17:30:54.725]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
    17[17:30:54.725]       |     ^
    18[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
    19[17:30:54.725]   682 |         return fn();
    20[17:30:54.725]       |                ^~~~
    21[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
    22[17:30:54.725]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
    23[17:30:54.725]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    24[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>>'
    25[17:30:54.725]   539 |         return PassField<Accessor>(Priority<2>(),
    26[17:30:54.725]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    27[17:30:54.725]   540 |             typename Split<argc, ArgTypes>::First(),
    28[17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    29[17:30:54.725]   541 |             server_context,
    30[17:30:54.725]       |             ~~~~~~~~~~~~~~~
    31[17:30:54.725]   542 |             this->parent(),
    32[17:30:54.725]       |             ~~~~~~~~~~~~~~~
    33[17:30:54.725]   543 |             typename Split<argc, ArgTypes>::Second(),
    34[17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    35[17:30:54.725]   544 |             std::forward<Args>(args)...);
    36[17:30:54.725]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    37[17:30:54.725] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
    38[17:30:54.725]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
    39[17:30:54.725]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    40[17:30:54.725] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
    41[17:30:54.725]  1274 |   return getLocalServerInternal(client)
    42[17:30:54.725]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    43[17:30:54.725]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
    44[17:30:54.725]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    45[17:30:54.725]  1276 |     if (server == nullptr) {
    46[17:30:54.725]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
    47[17:30:54.725]  1277 |       return nullptr;
    48[17:30:54.725]       |       ~~~~~~~~~~~~~~~
    49[17:30:54.725]  1278 |     } else {
    50[17:30:54.725]       |     ~~~~~~~~
    51[17:30:54.725]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
    52[17:30:54.725]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    53[17:30:54.725]  1280 |     }
    54[17:30:54.725]       |     ~
    55[17:30:54.725]  1281 |   });
    56[17:30:54.725]       |   ~~
    57[17:30:54.725] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
    58[17:30:54.725]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
    59[17:30:54.725]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    60[17:30:54.725] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
    61[17:30:54.725]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
    62[17:30:54.725]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    63[17:30:54.725]   678 |         &Decay<Func>::operator()).apply(&func);
    64[17:30:54.725]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    65[17:30:54.725] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
    66[17:30:54.725]   606 |     if (voff & 1) {
    67[17:30:54.725]       |         ^~~~~~~~
    68[17:30:54.725] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
    69[17:30:54.725]   606 |     if (voff & 1) {
    70[17:30:54.725]       |     ^
    71[17:30:54.725] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
    72[17:30:54.725]   609 |       return *(void**)(*(char**)obj + voff);
    73[17:30:54.725]       |                        ~~~~~~~~~~~~ ^
    74[17:30:54.725] 1 warning generated.
    
      0[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++
      1[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]
      2[17:31:45.233]   609 |       return *(void**)(*(char**)obj + voff);
      3[17:31:45.233]       |                                     ^
      4[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>>>'
      5[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())));
      6[17:31:45.233]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      7[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)>'
      8[17:31:45.233]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
      9[17:31:45.233]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     10[17:31:45.233]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
     11[17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     12[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
     13[17:31:45.233]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
     14[17:31:45.233]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     15[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
     16[17:31:45.233]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
     17[17:31:45.233]       |     ^
     18[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
     19[17:31:45.233]   682 |         return fn();
     20[17:31:45.233]       |                ^~~~
     21[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
     22[17:31:45.233]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     23[17:31:45.233]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     24[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<>>'
     25[17:31:45.233]   539 |         return PassField<Accessor>(Priority<2>(),
     26[17:31:45.233]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     27[17:31:45.233]   540 |             typename Split<argc, ArgTypes>::First(),
     28[17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     29[17:31:45.233]   541 |             server_context,
     30[17:31:45.233]       |             ~~~~~~~~~~~~~~~
     31[17:31:45.233]   542 |             this->parent(),
     32[17:31:45.233]       |             ~~~~~~~~~~~~~~~
     33[17:31:45.233]   543 |             typename Split<argc, ArgTypes>::Second(),
     34[17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     35[17:31:45.233]   544 |             std::forward<Args>(args)...);
     36[17:31:45.233]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     37[17:31:45.233] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
     38[17:31:45.233]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
     39[17:31:45.233]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     40[17:31:45.233] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
     41[17:31:45.233]  1274 |   return getLocalServerInternal(client)
     42[17:31:45.233]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     43[17:31:45.233]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
     44[17:31:45.233]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     45[17:31:45.233]  1276 |     if (server == nullptr) {
     46[17:31:45.233]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
     47[17:31:45.233]  1277 |       return nullptr;
     48[17:31:45.233]       |       ~~~~~~~~~~~~~~~
     49[17:31:45.233]  1278 |     } else {
     50[17:31:45.233]       |     ~~~~~~~~
     51[17:31:45.233]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
     52[17:31:45.233]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     53[17:31:45.233]  1280 |     }
     54[17:31:45.233]       |     ~
     55[17:31:45.233]  1281 |   });
     56[17:31:45.233]       |   ~~
     57[17:31:45.233] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
     58[17:31:45.233]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
     59[17:31:45.233]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     60[17:31:45.233] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
     61[17:31:45.233]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
     62[17:31:45.233]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     63[17:31:45.233]   678 |         &Decay<Func>::operator()).apply(&func);
     64[17:31:45.233]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     65[17:31:45.233] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
     66[17:31:45.233]   606 |     if (voff & 1) {
     67[17:31:45.233]       |         ^~~~~~~~
     68[17:31:45.233] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
     69[17:31:45.233]   606 |     if (voff & 1) {
     70[17:31:45.233]       |     ^
     71[17:31:45.233] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
     72[17:31:45.233]   609 |       return *(void**)(*(char**)obj + voff);
     73[17:31:45.233]       |                        ~~~~~~~~~~~~ ^
     74[17:31:45.233] 2 warnings generated.
     75[17:31:45.233] 
     76[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++
     77[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]
     78[17:32:33.147]   609 |       return *(void**)(*(char**)obj + voff);
     79[17:32:33.147]       |                                     ^
     80[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>>>'
     81[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())));
     82[17:32:33.147]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     83[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)>'
     84[17:32:33.147]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     85[17:32:33.147]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     86[17:32:33.147]   718 |             [&]() { return kj::Promise<CallContext>(kj::mv(call_context)); })
     87[17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     88[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:19: note: 'is_same_v' is false
     89[17:32:33.147]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
     90[17:32:33.147]       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     91[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:678:5: note: Taking false branch
     92[17:32:33.147]   678 |     if constexpr (std::is_same_v<decltype(fn()), void>) {
     93[17:32:33.147]       |     ^
     94[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:682:16: note: Calling 'operator()'
     95[17:32:33.147]   682 |         return fn();
     96[17:32:33.147]       |                ^~~~
     97[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-types.h:717:43: note: Calling 'ServerField::invoke'
     98[17:32:33.147]   717 |         return ReplaceVoid([&]() { return fn.invoke(server_context, ArgList()); },
     99[17:32:33.147]       |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    100[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<>>'
    101[17:32:33.147]   539 |         return PassField<Accessor>(Priority<2>(),
    102[17:32:33.147]       |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    103[17:32:33.147]   540 |             typename Split<argc, ArgTypes>::First(),
    104[17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    105[17:32:33.147]   541 |             server_context,
    106[17:32:33.147]       |             ~~~~~~~~~~~~~~~
    107[17:32:33.147]   542 |             this->parent(),
    108[17:32:33.147]       |             ~~~~~~~~~~~~~~~
    109[17:32:33.147]   543 |             typename Split<argc, ArgTypes>::Second(),
    110[17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    111[17:32:33.147]   544 |             std::forward<Args>(args)...);
    112[17:32:33.147]       |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    113[17:32:33.147] /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:136:12: note: Calling 'CapabilityServerSet::getLocalServer'
    114[17:32:33.147]   136 |     return server.m_context.connection->m_threads.getLocalServer(thread_client)
    115[17:32:33.147]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    116[17:32:33.147] /usr/include/capnp/capability.h:1274:10: note: Calling 'Promise::then'
    117[17:32:33.147]  1274 |   return getLocalServerInternal(client)
    118[17:32:33.147]       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    119[17:32:33.147]  1275 |       .then([](void* server) -> kj::Maybe<typename T::Server&> {
    120[17:32:33.147]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    121[17:32:33.147]  1276 |     if (server == nullptr) {
    122[17:32:33.147]       |     ~~~~~~~~~~~~~~~~~~~~~~~~
    123[17:32:33.147]  1277 |       return nullptr;
    124[17:32:33.147]       |       ~~~~~~~~~~~~~~~
    125[17:32:33.147]  1278 |     } else {
    126[17:32:33.147]       |     ~~~~~~~~
    127[17:32:33.147]  1279 |       return *reinterpret_cast<typename T::Server*>(server);
    128[17:32:33.147]       |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    129[17:32:33.147]  1280 |     }
    130[17:32:33.147]       |     ~
    131[17:32:33.147]  1281 |   });
    132[17:32:33.147]       |   ~~
    133[17:32:33.147] /usr/include/kj/async-inl.h:1295:32: note: Calling 'GetFunctorStartAddress::apply'
    134[17:32:33.147]  1295 |   void* continuationTracePtr = _::GetFunctorStartAddress<_::FixVoid<T>&&>::apply(func);
    135[17:32:33.147]       |                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    136[17:32:33.147] /usr/include/kj/async-inl.h:677:12: note: Calling 'PtmfHelper::apply'
    137[17:32:33.147]   677 |     return PtmfHelper::from<ReturnType, Decay<Func>, ParamTypes...>(
    138[17:32:33.147]       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    139[17:32:33.147]   678 |         &Decay<Func>::operator()).apply(&func);
    140[17:32:33.147]       |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    141[17:32:33.147] /usr/include/kj/async-inl.h:606:9: note: Assuming the condition is true
    142[17:32:33.147]   606 |     if (voff & 1) {
    143[17:32:33.147]       |         ^~~~~~~~
    144[17:32:33.147] /usr/include/kj/async-inl.h:606:5: note: Taking true branch
    145[17:32:33.147]   606 |     if (voff & 1) {
    146[17:32:33.147]       |     ^
    147[17:32:33.147] /usr/include/kj/async-inl.h:609:37: note: The left operand of '+' is a garbage value
    148[17:32:33.147]   609 |       return *(void**)(*(char**)obj + voff);
    149[17:32:33.147]       |                        ~~~~~~~~~~~~ ^
    150[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


fanquake ryanofsky

Labels
Tests

Milestone
30.0


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: 2025-10-10 12:13 UTC

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