The changes can be verified by running test/lint/git-subtree-check.sh src/ipc/libmultiprocess as described in developer notes and lint instructions
Squashed 'src/ipc/libmultiprocess/' changes from 1868a84451f..2fb97e8cca9
2fb97e8cca9 race fix: m_on_cancel called after request finishes
846a43aafb4 test: m_on_cancel called after request finishes
e69b6bf3f4e race fix: getParams() called after request cancel
75c5425173f test: getParams() called after request cancel
f09731e242f race fix: worker thread destroyed before it is initialized
88cacd4239f test: worker thread destroyed before it is initialized
22bec918c97 Merge bitcoin-core/libmultiprocess#247: type-map: Work around LLVM 22 "out of bounds index" error
8a5e3ae6ed2 Merge bitcoin-core/libmultiprocess#242: proxy-types: add CustomHasField hook to map Cap'n Proto values to null C++ values
e8d35246918 Merge bitcoin-core/libmultiprocess#246: doc: Bump version 8 > 9
97d877053b6 proxy-types: add CustomHasField hook for nullable decode paths
8c2f10252c9 refactor: add missing includes to mp/type-data.h
b1638aceb40 doc: Bump version 8 > 9
f61af487217 type-map: Work around LLVM 22 "out of bounds index" error
git-subtree-dir: src/ipc/libmultiprocess
git-subtree-split: 2fb97e8cca9feb1df70cf29b2a9895bea2c4c49c
4522fc61cb
Merge commit '4522fc61cbc78c9685c0b0eb37cc343db0c5af56' into pr/subtree-96350dc9208
DrahtBot
commented at 2:48 pm on March 11, 2026:
contributor
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
Reviews
See the guideline for information on the review process.
A summary of reviews will appear here.
LLM Linter (✨ experimental)
Possible typos and grammar issues:
neccessary -> necessary [spelling error in test comment: “Sleep is neccessary…” should be “necessary”.]
execute an async requests -> executes an async request [subject-verb agreement and number: “after it execute an async requests” should be “after it executes an async request”.]
2026-03-12 18:09:44
ryanofsky force-pushed
on Mar 12, 2026
ryanofsky
commented at 11:47 am on March 12, 2026:
contributor
0==27808==ERROR: AddressSanitizer: heap-use-after-free on address 0x760561bf2468 at pc 0x646e8a5014c9 bp 0x75d55a31c930 sp 0x75d55a31c928
1READ of size 8 at 0x760561bf2468 thread T11
2[#0](/bitcoin-bitcoin/0/) 0x646e8a5014c8 in mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0::operator()() const /home/admin/actions-runner/_work/_temp/src/ipc/libmultiprocess/src/mp/proxy.cpp:421:19 3[#1](/bitcoin-bitcoin/1/) 0x646e8a5014c8 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/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:61:14 4[#2](/bitcoin-bitcoin/2/) 0x646e8a5014c8 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/x86_64-linux-gnu/13/../../../../include/c++/13/bits/invoke.h:96:14 5[#3](/bitcoin-bitcoin/3/) 0x646e8a5014c8 in void std::thread::_Invoker<std::tuple<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>>::_M_invoke<0ul>(std::_Index_tuple<0ul>) /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:292:13 6[#4](/bitcoin-bitcoin/4/) 0x646e8a5014c8 in std::thread::_Invoker<std::tuple<mp::ProxyServer<mp::ThreadMap>::makeThread(capnp::CallContext<mp::ThreadMap::MakeThreadParams, mp::ThreadMap::MakeThreadResults>)::$_0>>::operator()() /usr/lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:299:11 7[#5](/bitcoin-bitcoin/5/) 0x646e8a5014c8 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/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_thread.h:244:13 8[#6](/bitcoin-bitcoin/6/) 0x79d563033db3 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xecdb3) (BuildId: 753c6c8608b61d4e67be8f0c890e03e0aa046b8b) 9[#7](/bitcoin-bitcoin/7/) 0x646e8902e85a in asan_thread_start(void*) crtstuff.c10[#8](/bitcoin-bitcoin/8/) 0x79d562ca5aa3 (/lib/x86_64-linux-gnu/libc.so.6+0x9caa3) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)11[#9](/bitcoin-bitcoin/9/) 0x79d562d32c6b (/lib/x86_64-linux-gnu/libc.so.6+0x129c6b) (BuildId: 8e9fd827446c24067541ac5390e6f527fb5947bb)12130x760561bf2468 is located 8 bytes inside of 32-byte region [0x760561bf2460,0x760561bf2480)14freed by thread T2 (b-capnp-loop) here:
15[#0](/bitcoin-bitcoin/0/) 0x646e89075f66 in operator delete(void*, unsigned long) (/home/admin/actions-runner/_work/_temp/build/bin/bitcoin-node+0x1408f66) (BuildId: 89995cb68dd51cd207c97d4b8e372df7e8c677d2)16[#1](/bitcoin-bitcoin/1/) 0x79d5635559d9 (/lib/x86_64-linux-gnu/libcapnp-rpc-1.0.1.so+0x489d9) (BuildId: 44717f0ad52d0e372420b8de2d7701bfba298f14)17[#2](/bitcoin-bitcoin/2/) 0x79d563586a13 (/lib/x86_64-linux-gnu/libcapnp-rpc-1.0.1.so+0x79a13) (BuildId: 44717f0ad52d0e372420b8de2d7701bfba298f14)18[#3](/bitcoin-bitcoin/3/) 0x79d5635872b6 (/lib/x86_64-linux-gnu/libcapnp-rpc-1.0.1.so+0x7a2b6) (BuildId: 44717f0ad52d0e372420b8de2d7701bfba298f14)19[#4](/bitcoin-bitcoin/4/) 0x79d56358a505 (/lib/x86_64-linux-gnu/libcapnp-rpc-1.0.1.so+0x7d505) (BuildId: 44717f0ad52d0e372420b8de2d7701bfba298f14)20[#5](/bitcoin-bitcoin/5/) 0x79d56359d42b (/lib/x86_64-linux-gnu/libcapnp-rpc-1.0.1.so+0x9042b) (BuildId: 44717f0ad52d0e372420b8de2d7701bfba298f14)21[#6](/bitcoin-bitcoin/6/) 0x79d5633e961c in kj::_::TransformPromiseNodeBase::get(kj::_::ExceptionOrValue&) (/lib/x86_64-linux-gnu/libkj-async-1.0.1.so+0x3e61c) (BuildId: 356b68ed6bfbcc99793859e96d335850186ca5da)22[#7](/bitcoin-bitcoin/7/) 0x79d5633e9694 in kj::_::TransformPromiseNodeBase::getDepResult(kj::_::ExceptionOrValue&) (/lib/x86_64-linux-gnu/libkj-async-1.0.1.so+0x3e694) (BuildId: 356b68ed6bfbcc99793859e96d335850186ca5da)23[#8](/bitcoin-bitcoin/8/) 0x79d56359ae20 (/lib/x86_64-linux-gnu/libcapnp-rpc-1.0.1.so+0x8de20) (BuildId: 44717f0ad52d0e372420b8de2d7701bfba298f14)24[#9](/bitcoin-bitcoin/9/) 0x79d5633e961c in kj::_::TransformPromiseNodeBase::get(kj::_::ExceptionOrValue&) (/lib/x86_64-linux-gnu/libkj-async-1.0.1.so+0x3e61c) (BuildId: 356b68ed6bfbcc99793859e96d335850186ca5da)25[#10](/bitcoin-bitcoin/10/) 0x79d5633e52e6 (/lib/x86_64-linux-gnu/libkj-async-1.0.1.so+0x3a2e6) (BuildId: 356b68ed6bfbcc99793859e96d335850186ca5da)26 Stack after return: f5
27 Stack use after scope: f8
28 Global redzone: f9
29 Global init order: f6
30 Poisoned by user: f7
31 Container overflow: fc
32 Array cookie: ac
33 Intra object redzone: bb
34 ASan internal: fe
35 Left alloca redzone: ca
36 Right alloca redzone: cb37==27808==ABORTING
DrahtBot added the label
CI failed
on Mar 12, 2026
ryanofsky
commented at 4:40 pm on March 12, 2026:
contributor
Thanks fanquake looks like both of these errors are caused by the new hooks added for testng, so not very surprising. The tests were automatically generated and pretty close to being right but have a number of issues and I’m rewriting them.
ryanofsky force-pushed
on Mar 12, 2026
ryanofsky
commented at 6:11 pm on March 12, 2026:
contributor
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-13 12:13 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me