i386 segv in #0 0xf7a49ce0 in kj::operator*(kj::_::Stringifier, kj::Exception const&) (/lib/i386-linux-gnu/libkj-1.1.0.so+0x38ce0) #34732

issue maflcko openend this issue on March 4, 2026
  1. maflcko commented at 2:04 pm on March 4, 2026: member

    Not sure if we want to look into this, just leaving this here, in case someone wants to take a look. I guess it is another one of the GCC+clang mix things.

    Diff to reproduce:

     0diff --git a/ci/test/00_setup_env_native_asan.sh b/ci/test/00_setup_env_native_asan.sh
     1index 2465c70..b104ddb 100755
     2--- a/ci/test/00_setup_env_native_asan.sh
     3+++ b/ci/test/00_setup_env_native_asan.sh
     4@@ -8,3 +8,3 @@ export LC_ALL=C.UTF-8
     5 
     6-export CI_IMAGE_NAME_TAG="mirror.gcr.io/ubuntu:24.04"
     7+export CI_IMAGE_NAME_TAG="mirror.gcr.io/debian:trixie"
     8 
     9@@ -21,4 +21,3 @@ fi
    10 export CONTAINER_NAME=ci_native_asan
    11-export APT_LLVM_V="22"
    12-export PACKAGES="systemtap-sdt-dev clang-${APT_LLVM_V} llvm-${APT_LLVM_V} libclang-rt-${APT_LLVM_V}-dev mold python3-zmq qt6-base-dev qt6-tools-dev qt6-l10n-tools libevent-dev libboost-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE} libcapnp-dev capnproto python3-pip"
    13+export PACKAGES="systemtap-sdt-dev clang llvm libclang-rt-dev mold python3-zmq qt6-base-dev qt6-tools-dev qt6-l10n-tools libevent-dev libboost-dev libzmq3-dev libqrencode-dev libsqlite3-dev ${BPFCC_PACKAGE} libcapnp-dev capnproto python3-pip"
    14 export PIP_PACKAGES="--break-system-packages pycapnp"
    15@@ -33,3 +32,3 @@ export BITCOIN_CONFIG="\
    16  -DCMAKE_C_FLAGS='-ftrivial-auto-var-init=pattern' \
    17- -DCMAKE_CXX_FLAGS='-ftrivial-auto-var-init=pattern' \
    18+ -DAPPEND_LDFLAGS='-latomic' -DCMAKE_CXX_FLAGS='-ftrivial-auto-var-init=pattern' \
    19  -DCMAKE_EXE_LINKER_FLAGS='-fuse-ld=mold' \
    20@@ -38 +37,3 @@ export BITCOIN_CONFIG="\
    21 "
    22+export CI_IMAGE_PLATFORM="linux/i386"
    23+TEST_RUNNER_EXTRA="interface_ipc_mining.py"
    24diff --git a/test/sanitizer_suppressions/ubsan b/test/sanitizer_suppressions/ubsan
    25index ad604e6..1b9e8ab 100644
    26--- a/test/sanitizer_suppressions/ubsan
    27+++ b/test/sanitizer_suppressions/ubsan
    28@@ -70 +70,6 @@ shift-base:RandomMixin<*>::randbits
    29 shift-base:RandomMixin<*>::randbits<*>
    30+implicit-signed-integer-truncation:MillisToTimeval
    31+implicit-signed-integer-truncation:streams.cpp
    32+implicit-unsigned-integer-truncation:util/hasher.h
    33+implicit-unsigned-integer-truncation:util/hasher.cpp
    34+implicit-unsigned-integer-truncation:util/bytevectorhash.cpp
    

    Steps to reproduce:

    0RUN_UNIT_TESTS=false MAKEJOBS="-j$(nproc)" FILE_ENV="./ci/test/00_setup_env_native_asan.sh" ./ci/test_run_all.sh
    

    Output:

      0 test  2026-03-04T13:59:41.787377Z TestFramework (DEBUG): Enforce minimum reserved weight for IPC clients too 
      1 node0 2026-03-04T13:59:41.787873Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-26453/b-capnp-loop-26455} IPC server recv request  [#9](/bitcoin-bitcoin/9/) Mining.createNewBlock$Params 
      2 node0 2026-03-04T13:59:41.788007Z [capnp-loop] [ipc/capnp/protocol.cpp:47] [IpcLogFn] [ipc:trace] {bitcoin-node-26453/b-capnp-loop-26455} request data: (context = (thread = <external capability>), options = (useMempool = true, blockReservedWeight = 0, coinbaseOutputMaxAdditionalSigops = 400), cooldown = true) 
      3 node0 2026-03-04T13:59:41.788104Z [capnp-loop] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-26453/b-capnp-loop-26455} IPC server post request  [#9](/bitcoin-bitcoin/9/) {bitcoin-node-26453/b-capnp-loop-26465 (from pythread)} 
      4 node0 2026-03-04T13:59:41.788253Z [unknown] [ipc/capnp/protocol.cpp:50] [IpcLogFn] [ipc] {bitcoin-node-26453/b-capnp-loop-26465 (from pythread)} IPC server executing request [#9](/bitcoin-bitcoin/9/) 
      5 test  2026-03-04T13:59:41.972921Z TestFramework (ERROR): Unexpected exception: 
      6                                   Traceback (most recent call last):
      7                                     File "/ci_container_base/ci/scratch/build-i686-pc-linux-gnu/test/functional/interface_ipc_mining.py", line 313, in async_routine
      8                                       await mining.createNewBlock(ctx, opts)
      9                                   capnp.lib.capnp.KjException: capnp/rpc.c++:2778: disconnected: Peer disconnected.
     10                                   stack: f6826245 f681d580 f680d460 f669ec30 f66a0aa0
     11                                   During handling of the above exception, another exception occurred:
     12                                   Traceback (most recent call last):
     13                                     File "/ci_container_base/test/functional/test_framework/test_framework.py", line 142, in main
     14                                       self.run_test()
     15                                       ~~~~~~~~~~~~~^^
     16                                     File "/ci_container_base/ci/scratch/build-i686-pc-linux-gnu/test/functional/interface_ipc_mining.py", line 406, in run_test
     17                                       self.run_ipc_option_override_test()
     18                                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
     19                                     File "/ci_container_base/ci/scratch/build-i686-pc-linux-gnu/test/functional/interface_ipc_mining.py", line 326, in run_ipc_option_override_test
     20                                       asyncio.run(capnp.run(async_routine()))
     21                                       ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     22                                     File "/usr/lib/python3.13/asyncio/runners.py", line 195, in run
     23                                       return runner.run(main)
     24                                              ~~~~~~~~~~^^^^^^
     25                                     File "/usr/lib/python3.13/asyncio/runners.py", line 118, in run
     26                                       return self._loop.run_until_complete(task)
     27                                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
     28                                     File "/usr/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete
     29                                       return future.result()
     30                                              ~~~~~~~~~~~~~^^
     31                                     File "capnp/lib/capnp.pyx", line 2083, in run
     32                                     File "capnp/lib/capnp.pyx", line 2084, in capnp.lib.capnp.run
     33                                     File "/ci_container_base/ci/scratch/build-i686-pc-linux-gnu/test/functional/interface_ipc_mining.py", line 323, in async_routine
     34                                       assert_equal(e.description, "remote exception: std::exception: block_reserved_weight (0) must be at least 2000 weight units")
     35                                       ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
     36                                     File "/ci_container_base/test/functional/test_framework/util.py", line 80, in assert_equal
     37                                       raise AssertionError("not(%s)" % " == ".join(str(arg) for arg in (thing1, thing2) + args))
     38                                   AssertionError: not(Peer disconnected. == remote exception: std::exception: block_reserved_weight (0) must be at least 2000 weight units)
     39 test  2026-03-04T13:59:41.978360Z TestFramework (DEBUG): Closing down network thread 
     40 test  2026-03-04T13:59:42.028612Z TestFramework (INFO): Not stopping nodes as test failed. The dangling processes will be cleaned up later. 
     41 test  2026-03-04T13:59:42.028745Z TestFramework (WARNING): Not cleaning up dir /ci_container_base/ci/scratch/test_runner/test_runner__🏃_20260304_135926/interface_ipc_mining_0 
     42 test  2026-03-04T13:59:42.028818Z TestFramework (ERROR): Test failed. Test logging available at /ci_container_base/ci/scratch/test_runner/test_runner__🏃_20260304_135926/interface_ipc_mining_0/test_framework.log 
     43 test  2026-03-04T13:59:42.028925Z TestFramework (ERROR): 
     44 test  2026-03-04T13:59:42.029029Z TestFramework (ERROR): Hint: Call /ci_container_base/test/functional/combine_logs.py '/ci_container_base/ci/scratch/test_runner/test_runner_₿_🏃_20260304_135926/interface_ipc_mining_0' to consolidate all logs 
     45 test  2026-03-04T13:59:42.029089Z TestFramework (ERROR): 
     46 test  2026-03-04T13:59:42.029139Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log. 
     47 test  2026-03-04T13:59:42.029208Z TestFramework (ERROR): https://github.com/bitcoin/bitcoin/issues 
     48 test  2026-03-04T13:59:42.029270Z TestFramework (ERROR): 
     49
     50 node0 stderr AddressSanitizer:DEADLYSIGNAL
     51=================================================================
     52==26453==ERROR: AddressSanitizer: SEGV on unknown address 0x4059bda9 (pc 0xf7a49ce0 bp 0xf44feb08 sp 0xf44fe9f0 T11)
     53==26453==The signal is caused by a READ memory access.
     54    [#0](/bitcoin-bitcoin/0/) 0xf7a49ce0 in kj::operator*(kj::_::Stringifier, kj::Exception const&) (/lib/i386-linux-gnu/libkj-1.1.0.so+0x38ce0) (BuildId: f32f8501262f3de1c3b368db36b9d9d1deca4124)
     55    [#1](/bitcoin-bitcoin/1/) 0x58b21b9c in decltype(kj::_::STR * kj::fwd<kj::Exception&>(fp)) kj::toCharSequence<kj::Exception&>(kj::Exception&) /usr/include/kj/string.h:610:17
     56    [#2](/bitcoin-bitcoin/2/) 0x58b21b9c in kj::String kj::str<kj::Exception&>(kj::Exception&) /usr/include/kj/string.h:627:20
     57    [#3](/bitcoin-bitcoin/3/) 0x58e5037e in std::enable_if<std::is_same<decltype(mp::Accessor<mp::mining_fields::Context, 17>::get(fp1.call_context.getParams())), mp::Context::Reader>::value, kj::Promise<mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>::CallContext>>::type mp::PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>>, mp::TypeList<node::BlockCreateOptions const&, bool>>(mp::Priority<1>, mp::TypeList<>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>> const&, mp::TypeList<node::BlockCreateOptions const&, bool>&&)::'lambda'(mp::CancelMonitor&)::operator()(mp::CancelMonitor&) /ci_container_base/src/ipc/libmultiprocess/include/mp/type-context.h:181:131
     58    [#4](/bitcoin-bitcoin/4/) 0x58e4d899 in kj::Promise<mp::Accessor<mp::mining_fields::Context, 17>> mp::ProxyServer<mp::Thread>::post<capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>, std::enable_if<std::is_same<decltype(mp::Accessor<mp::mining_fields::Context, 17>::get(fp1.call_context.getParams())), mp::Context::Reader>::value, kj::Promise<mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>::CallContext>>::type mp::PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>>, mp::TypeList<node::BlockCreateOptions const&, bool>>(mp::Priority<1>, mp::TypeList<>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>> const&, mp::TypeList<node::BlockCreateOptions const&, bool>&&)::'lambda'(mp::CancelMonitor&)>(mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&&)::'lambda'()::operator()()::'lambda'()::operator()()::'lambda0'()::operator()() const /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-io.h:744:100
     59    [#5](/bitcoin-bitcoin/5/) 0x58e4c485 in kj::Maybe<kj::Exception> kj::runCatchingExceptions<kj::Promise<mp::Accessor<mp::mining_fields::Context, 17>> mp::ProxyServer<mp::Thread>::post<capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>, std::enable_if<std::is_same<decltype(mp::Accessor<mp::mining_fields::Context, 17>::get(fp1.call_context.getParams())), mp::Context::Reader>::value, kj::Promise<mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>::CallContext>>::type mp::PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>>, mp::TypeList<node::BlockCreateOptions const&, bool>>(mp::Priority<1>, mp::TypeList<>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>> const&, mp::TypeList<node::BlockCreateOptions const&, bool>&&)::'lambda'(mp::CancelMonitor&)>(mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&&)::'lambda'()::operator()()::'lambda'()::operator()()::'lambda0'()>(mp::Accessor<mp::mining_fields::Context, 17>&&) /usr/include/kj/exception.h:371:5
     60    [#6](/bitcoin-bitcoin/6/) 0x58e4b4e8 in kj::Promise<mp::Accessor<mp::mining_fields::Context, 17>> mp::ProxyServer<mp::Thread>::post<capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>, std::enable_if<std::is_same<decltype(mp::Accessor<mp::mining_fields::Context, 17>::get(fp1.call_context.getParams())), mp::Context::Reader>::value, kj::Promise<mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>::CallContext>>::type mp::PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>>, mp::TypeList<node::BlockCreateOptions const&, bool>>(mp::Priority<1>, mp::TypeList<>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>> const&, mp::TypeList<node::BlockCreateOptions const&, bool>&&)::'lambda'(mp::CancelMonitor&)>(mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&&)::'lambda'()::operator()()::'lambda'()::operator()() /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-io.h:744:48
     61    [#7](/bitcoin-bitcoin/7/) 0x58e4b135 in kj::Function<void ()>::Impl<kj::Promise<mp::Accessor<mp::mining_fields::Context, 17>> mp::ProxyServer<mp::Thread>::post<capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>, std::enable_if<std::is_same<decltype(mp::Accessor<mp::mining_fields::Context, 17>::get(fp1.call_context.getParams())), mp::Context::Reader>::value, kj::Promise<mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>::CallContext>>::type mp::PassField<mp::Accessor<mp::mining_fields::Context, 17>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>>, mp::TypeList<node::BlockCreateOptions const&, bool>>(mp::Priority<1>, mp::TypeList<>, mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&, mp::ServerField<1, mp::Accessor<mp::mining_fields::Options, 17>, mp::ServerField<1, mp::Accessor<mp::mining_fields::Cooldown, 1>, mp::ServerRet<mp::Accessor<mp::mining_fields::Result, 18>, mp::ServerCall>>> const&, mp::TypeList<node::BlockCreateOptions const&, bool>&&)::'lambda'(mp::CancelMonitor&)>(mp::ServerInvokeContext<mp::ProxyServer<ipc::capnp::messages::Mining>, capnp::CallContext<ipc::capnp::messages::Mining::CreateNewBlockParams, ipc::capnp::messages::Mining::CreateNewBlockResults>>&&)::'lambda'()::operator()()::'lambda'()>::operator()() /usr/include/kj/function.h:142:14
     62    [#8](/bitcoin-bitcoin/8/) 0x58af0746 in kj::Function<void ()>::operator()() /usr/include/kj/function.h:119:12
     63    [#9](/bitcoin-bitcoin/9/) 0x58af0746 in void mp::Unlock<mp::Lock, kj::Function<void ()>&>(mp::Lock&, kj::Function<void ()>&) /ci_container_base/src/ipc/libmultiprocess/include/mp/util.h:210:5
     64    [#10](/bitcoin-bitcoin/10/) 0x597ce16c in void mp::Waiter::wait<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'()>(mp::Lock&, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'())::'lambda'()::operator()() const /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-io.h:382:17
     65    [#11](/bitcoin-bitcoin/11/) 0x597ce16c in void std::condition_variable::wait<void mp::Waiter::wait<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'()>(mp::Lock&, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'())::'lambda'()>(std::unique_lock<std::mutex>&, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'()) /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/condition_variable:104:10
     66    [#12](/bitcoin-bitcoin/12/) 0x597ce16c in void mp::Waiter::wait<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'()>(mp::Lock&, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const::'lambda'()) /ci_container_base/src/ipc/libmultiprocess/include/mp/proxy-io.h:373:14
     67    [#13](/bitcoin-bitcoin/13/) 0x597ce16c in mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const /ci_container_base/src/ipc/libmultiprocess/src/mp/proxy.cpp:423:34
     68    [#14](/bitcoin-bitcoin/14/) 0x597ce16c in void std::__invoke_impl<void, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>(std::__invoke_other, mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0&&) /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61:14
     69    [#15](/bitcoin-bitcoin/15/) 0x597ce16c in std::__invoke_result<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>::type std::__invoke<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>(mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0&&) /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14
     70    [#16](/bitcoin-bitcoin/16/) 0x597ce16c in void std::thread::_Invoker<std::tuple<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>>::_M_invoke<0u>(std::_Index_tuple<0u>) /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:301:13
     71    [#17](/bitcoin-bitcoin/17/) 0x597ce16c in std::thread::_Invoker<std::tuple<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>>::operator()() /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:308:11
     72    [#18](/bitcoin-bitcoin/18/) 0x597ce16c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>>>::_M_run() /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:253:13
     73    [#19](/bitcoin-bitcoin/19/) 0xf76b01ac  (/lib/i386-linux-gnu/libstdc++.so.6+0xc41ac) (BuildId: ef4cc6c3f23aa64b5e256a11c068f43b1e0b2282)
     74    [#20](/bitcoin-bitcoin/20/) 0x57a89178 in asan_thread_start(void*) crtstuff.c
     75    [#21](/bitcoin-bitcoin/21/) 0xf72d7780  (/lib/i386-linux-gnu/libc.so.6+0x90780) (BuildId: fe186cb7d4de911234b23072a67be9931a6e562e)
     76    [#22](/bitcoin-bitcoin/22/) 0xf736de37  (/lib/i386-linux-gnu/libc.so.6+0x126e37) (BuildId: fe186cb7d4de911234b23072a67be9931a6e562e)
     77
     78==26453==Register values:
     79eax = 0x4059bd91  ebx = 0x5a008854  ecx = 0x00000400  edx = 0x00000000  
     80edi = 0x5a008801  esi = 0xf44feb20  ebp = 0xf44feb08  esp = 0xf44fe9f0  
     81AddressSanitizer can not provide additional info.
     82SUMMARY: AddressSanitizer: SEGV (/lib/i386-linux-gnu/libkj-1.1.0.so+0x38ce0) (BuildId: f32f8501262f3de1c3b368db36b9d9d1deca4124) in kj::operator*(kj::_::Stringifier, kj::Exception const&)
     83Thread T11 created by T2 (b-capnp-loop) here:
     84    [#0](/bitcoin-bitcoin/0/) 0x57a70caf in pthread_create (/ci_container_base/ci/scratch/build-i686-pc-linux-gnu/bin/bitcoin-node+0x1456caf) (BuildId: a728c9e048468e41aacce0cd2173eb027f8c4a6a)
     85    [#1](/bitcoin-bitcoin/1/) 0xf76b03b7 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State>>, void (*)()) (/lib/i386-linux-gnu/libstdc++.so.6+0xc43b7) (BuildId: ef4cc6c3f23aa64b5e256a11c068f43b1e0b2282)
     86    [#2](/bitcoin-bitcoin/2/) 0x597bb62b in mp::ThreadMap::Server::dispatchCallInternal(unsigned short, capnp::CallContext<capnp::AnyPointer, capnp::AnyPointer>) /ci_container_base/ci/scratch/build-i686-pc-linux-gnu/src/ipc/libmultiprocess/include/mp/proxy.capnp.c++:602:9
     87    [#3](/bitcoin-bitcoin/3/) 0x597bb142 in mp::ThreadMap::Server::dispatchCall(unsigned long long, unsigned short, capnp::CallContext<capnp::AnyPointer, capnp::AnyPointer>) /ci_container_base/ci/scratch/build-i686-pc-linux-gnu/src/ipc/libmultiprocess/include/mp/proxy.capnp.c++:591:14
     88    [#4](/bitcoin-bitcoin/4/) 0x597bba39 in virtual thunk to mp::ThreadMap::Server::dispatchCall(unsigned long long, unsigned short, capnp::CallContext<capnp::AnyPointer, capnp::AnyPointer>) /ci_container_base/ci/scratch/build-i686-pc-linux-gnu/src/ipc/libmultiprocess/include/mp/proxy.capnp.c++
     89    [#5](/bitcoin-bitcoin/5/) 0xf7cb5789 in capnp::LocalClient::callInternal(unsigned long long, unsigned short, capnp::CallContextHook&) (/lib/i386-linux-gnu/libcapnp-rpc-1.1.0.so+0x6a789) (BuildId: 58d2512c34135df7fc12d92db6aa2b2b7c4bfe8a)
     90    [#6](/bitcoin-bitcoin/6/) 0xf7cbe92a in kj::_::TransformPromiseNode<kj::Promise<void>, kj::_::Void, capnp::LocalClient::call(unsigned long long, unsigned short, kj::Own<capnp::CallContextHook, std::nullptr_t>&&, capnp::Capability::Client::CallHints)::'lambda'(), kj::_::PropagateException>::getImpl(kj::_::ExceptionOrValue&) (/lib/i386-linux-gnu/libcapnp-rpc-1.1.0.so+0x7392a) (BuildId: 58d2512c34135df7fc12d92db6aa2b2b7c4bfe8a)
     91    [#7](/bitcoin-bitcoin/7/) 0xf7adec78 in kj::_::TransformPromiseNodeBase::get(kj::_::ExceptionOrValue&) (/lib/i386-linux-gnu/libkj-async-1.1.0.so+0x39c78) (BuildId: d6353d50b8e44dd94380216b692a389aaaf54483)
     92    [#8](/bitcoin-bitcoin/8/) 0xf7ae62a1 in kj::_::ChainPromiseNode::fire() (/lib/i386-linux-gnu/libkj-async-1.1.0.so+0x412a1) (BuildId: d6353d50b8e44dd94380216b692a389aaaf54483)
     93    [#9](/bitcoin-bitcoin/9/) 0xf7ae0201 in kj::EventLoop::turn() (/lib/i386-linux-gnu/libkj-async-1.1.0.so+0x3b201) (BuildId: d6353d50b8e44dd94380216b692a389aaaf54483)
     94    [#10](/bitcoin-bitcoin/10/) 0xf7ae7a25 in kj::_::waitImpl(kj::Own<kj::_::PromiseNode, kj::_::PromiseDisposer>&&, kj::_::ExceptionOrValue&, kj::WaitScope&, kj::SourceLocation) (/lib/i386-linux-gnu/libkj-async-1.1.0.so+0x42a25) (BuildId: d6353d50b8e44dd94380216b692a389aaaf54483)
     95    [#11](/bitcoin-bitcoin/11/) 0x597c3f23 in kj::Promise<unsigned int>::wait(kj::WaitScope&, kj::SourceLocation) /usr/include/kj/async-inl.h:1357:3
     96    [#12](/bitcoin-bitcoin/12/) 0x597c3f23 in mp::EventLoop::loop() /ci_container_base/src/ipc/libmultiprocess/src/mp/proxy.cpp:244:68
     97    [#13](/bitcoin-bitcoin/13/) 0x58aa7f93 in ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()::operator()() const /ci_container_base/src/ipc/capnp/protocol.cpp:136:21
     98    [#14](/bitcoin-bitcoin/14/) 0x58aa7f93 in void std::__invoke_impl<void, ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>(std::__invoke_other, ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()&&) /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61:14
     99    [#15](/bitcoin-bitcoin/15/) 0x58aa7f93 in std::__invoke_result<ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>::type std::__invoke<ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>(ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()&&) /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:96:14
    100    [#16](/bitcoin-bitcoin/16/) 0x58aa7f93 in void std::thread::_Invoker<std::tuple<ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>>::_M_invoke<0u>(std::_Index_tuple<0u>) /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:301:13
    101    [#17](/bitcoin-bitcoin/17/) 0x58aa7f93 in std::thread::_Invoker<std::tuple<ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>>::operator()() /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:308:11
    102    [#18](/bitcoin-bitcoin/18/) 0x58aa7f93 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<ipc::capnp::(anonymous namespace)::CapnpProtocol::startLoop(char const*)::'lambda'()>>>::_M_run() /usr/lib/gcc/i686-linux-gnu/14/../../../../include/c++/14/bits/std_thread.h:253:13
    103    [#19](/bitcoin-bitcoin/19/) 0xf76b01ac  (/lib/i386-linux-gnu/libstdc++.so.6+0xc41ac) (BuildId: ef4cc6c3f23aa64b5e256a11c068f43b1e0b2282)
    104    [#20](/bitcoin-bitcoin/20/) 0x57a89178 in asan_thread_start(void*) crtstuff.c
    105
    106Thread T2 (b-capnp-loop) created by T0 here:
    107    [#0](/bitcoin-bitcoin/0/) 0x57a70caf in pthread_create (/ci_container_base/ci/scratch/build-i686-pc-linux-gnu/bin/bitcoin-node+0x1456caf) (BuildId: a728c9e048468e41aacce0cd2173eb027f8c4a6a)
    108    [#1](/bitcoin-bitcoin/1/) 0xf76b03b7 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State>>, void (*)()) (/lib/i386-linux-gnu/libstdc++.so.6+0xc43b7) (BuildId: ef4cc6c3f23aa64b5e256a11c068f43b1e0b2282)
    109    [#2](/bitcoin-bitcoin/2/) 0x58aa5ab7 in ipc::capnp::(anonymous namespace)::CapnpProtocol::listen(int, char const*, interfaces::Init&) /ci_container_base/src/ipc/capnp/protocol.cpp:87:9
    110    [#3](/bitcoin-bitcoin/3/) 0x58acc8f7 in ipc::(anonymous namespace)::IpcImpl::listenAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&) /ci_container_base/src/ipc/interfaces.cpp:111:21
    111    [#4](/bitcoin-bitcoin/4/) 0x57d2bd71 in AppInitMain(node::NodeContext&, interfaces::BlockAndHeaderTipInfo*) /ci_container_base/src/init.cpp:1505:22
    112    [#5](/bitcoin-bitcoin/5/) 0x57ad6076 in AppInit(node::NodeContext&) /ci_container_base/src/bitcoind.cpp:242:43
    113    [#6](/bitcoin-bitcoin/6/) 0x57ad6076 in main /ci_container_base/src/bitcoind.cpp:283:10
    114    [#7](/bitcoin-bitcoin/7/) 0xf726bcc2  (/lib/i386-linux-gnu/libc.so.6+0x24cc2) (BuildId: fe186cb7d4de911234b23072a67be9931a6e562e)
    115
    116==26453==ABORTING 
    117
    118TEST                    | STATUS    | DURATION
    119
    120interface_ipc_mining.py |  Failed  | 15 s
    121
    122ALL                     |  Failed  | 15 s (accumulated) 
    123Runtime: 15 s
    124
    125Command '['/ci_container_base/ci/test/03_test_script.sh']' returned non-zero exit status 1.
    
  2. maflcko added the label CI failed on Mar 4, 2026
  3. fanquake commented at 2:08 pm on March 4, 2026: member
  4. ryanofsky commented at 2:35 pm on March 4, 2026: contributor

    This seems very similar the gnu32 failures I saw in https://github.com/bitcoin-core/libmultiprocess/pull/218#discussion_r2403946338 when the code was calling kj::str(e) on caught kj::Exception objects instead of calling e.getDescription().

    Something strange seems to be happening in the kj stringify implementation on i386 that corrupts the call stack, and this will take some effort to debug but should be doable, because this can be easily reproduced in mptest with small changes to https://github.com/bitcoin-core/libmultiprocess/pull/218.


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-03-09 12:13 UTC

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