Includes several changes, to first update the subtree. Then, modify the fuzz test to address review comments:
ipc: Update libmultiprocess subtree and drop fuzz test workaround #35720
pull maflcko wants to merge 6 commits into bitcoin:master from maflcko:2607-subtree-bump-libmultiprocess changing 73 files +148 −177-
maflcko commented at 10:52 AM on July 14, 2026: member
-
6d5f753921
Squashed 'src/ipc/libmultiprocess/' changes from 28e056576a..e8de5c7b68
e8de5c7b68 Merge bitcoin-core/libmultiprocess#305: refactor: memcpy to std::ranges::copy to work around ubsan warn 9307e68e5a Merge bitcoin-core/libmultiprocess#306: doc: Bump version 12 > 13 fac7b9b7f6 refactor: memcpy to std::ranges::copy to work around ubsan warn 1bd7025609 Merge bitcoin-core/libmultiprocess#297: test: add map serialization round-trip coverage 438fdd243d doc: Bump version 12 > 13 463d073cb8 test: rename vBool to vector_bool 85df233845 test: add mapStringInt to foo.capnp to cover map serialization and deserialization git-subtree-dir: src/ipc/libmultiprocess git-subtree-split: e8de5c7b68e0ae21c94ae92aa22e5c3b213f9c12
-
fa911d815d
Merge commit '6d5f753921578eefdd3fce64cfc8ee7951b6cbc4' into HEAD
HEAD is the prior subtree update commit 'a9d1b652f324126ef7e80d9ab0b9e4f60019dade'
-
DrahtBot commented at 10:52 AM on July 14, 2026: contributor
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--006a51241073e994b41acfe9ec718e94-->
Code Coverage & Benchmarks
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/35720.
<!--021abf342d371248e50ceaed478a90ca-->
Reviews
See the guideline and AI policy for information on the review process.
If your review is incorrectly listed, please copy-paste <code><!--meta-tag:bot-skip--></code> into the comment that the bot should ignore.
<!--174a7506f384e20aa4161008e828411d-->
Conflicts
Reviewers, this pull request conflicts with the following ones:
- #35680 (private broadcast: bound memory use of broadcast attempts by instagibbs)
- #35511 (RFC: consensus: Make
CAmounta class by hodlinator) - #35482 (fuzz: exercise the transaction-handling path in process_message(s) by HowHsu)
- #34969 (fuzz: several improvements to scriptpubkeyman harness by brunoerg)
- #34264 (fuzz: Extend
spendcoverage by Chand-ra) - #32729 (test, refactor: extract script template helpers and expand sigop coverage by l0rinc)
- #29418 (rpc: provide per message stats for global traffic via new RPC 'getnetmsgstats' by vasild)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
- fanquake requested review from ryanofsky on Jul 14, 2026
-
in src/ipc/test/fuzz/ipc.cpp:95 in fa8266748a
90 | @@ -91,9 +91,8 @@ FUZZ_TARGET(ipc, .init = initialize_ipc) 91 | { 92 | auto& ipc = *g_ipc; 93 | FuzzedDataProvider fuzzed_data_provider(buffer.data(), buffer.size()); 94 | - const size_t iterations = fuzzed_data_provider.ConsumeIntegralInRange<size_t>(1, 64); 95 | - 96 | - for (size_t i = 0; i < iterations; ++i) { 97 | + LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), 64) 98 | + {
ryanofsky commented at 11:16 AM on July 14, 2026:In commit "fuzz: Use LIMITED_WHILE over for-loop with consumed size integral" (fa8266748abb0f3057ae2e81f9f4fd8dd220fe12)
Would seem more consistent to use trailing brace
maflcko commented at 11:50 AM on July 14, 2026:Sure, done. Also added two clang-format commits. Let me know if they are too spicy and if they should be dropped, but I think they should be harmless and fine.
ryanofsky commented at 3:03 PM on July 14, 2026:re: #35720 (review)
Sure, done. Also added two clang-format commits. Let me know if they are too spicy and if they should be dropped, but I think they should be harmless and fine.
Thanks for the formatting fix. IMO, the new commits seem fine to keep but I do think separate PRs are better in cases like this to make sure changes get better review, and reviewers aren't put in a position of having to do partial reviews or rubber stamp changes they are not interested in. This case is not a big deal, but unfocused PRs in general seem like a risk it's nice to avoid
maflcko added the label interfaces on Jul 14, 2026maflcko added the label IPC on Jul 14, 2026maflcko commented at 11:21 AM on July 14, 2026: member@willcl-ark Looks like you added an
IPClabel two weeks ago? However, there already is an existinginterfaceslabel for this? Maybe it could make sense to remove yourIPClabel and instead renameinterfacestoIPC? Otherwise, it will be unclear what label to use.ryanofsky approvedryanofsky commented at 11:21 AM on July 14, 2026: contributorCode review ACK fa1ecc201d08dd17110804685fb0318f7f1c8416. Nice fuzz test improvements and it is interesting to see how LIMITED_WHILE works. Seems like it should help the fuzzer generate better inputs.
sedited approvedsedited commented at 11:30 AM on July 14, 2026: contributorACK fa1ecc201d08dd17110804685fb0318f7f1c8416
fa55385ab3fuzz: Use LIMITED_WHILE over for-loop with consumed size integral
This is a style cleanup. The general pattern to use `LIMITED_WHILE`, which all other fuzz tests use, has some benefits: * When no data is available, a simple and single (let's say) 64 value in the fuzz input will not result in 64 loops over the same body with the same default/fallback values. * When no data is available, `ConsumeBool` falls back to `false` and breaks the loop early. * When further data is available, the overhead is just a single byte, making it also possibly easier for the fuzz engine to mutate the data, as a single int that influences the whole remainder of the fuzz input can lead to the 'havoc' effect. * When a crash is reduced, deleting bytes will directly influence the execution length, so byte-length of the fuzz input roughly corresponds to run-time length.
fuzz: Remove unused workaround after fix in libmultiprocess byte-span serializer fa1a9bde5afuzz: Clang-format LIMITED_WHILE like while fa0d777ce2janb84 commented at 11:40 AM on July 14, 2026: contributorcr ACK fa1ecc201d08dd17110804685fb0318f7f1c8416
Also checked that subtree matches upstream and is an ancestor of upstream master, all green.
fab8eeed82fuzz: clang-format LIMITED_WHILE
This is a whitespace-only clang-format change. To verify it, one can run: ```sh (git show | git apply --reverse ) && ( git diff -U0 | ./contrib/devtools/clang-format-diff.py -p1 -i -v ) && git diff HEAD ``` A few minor, non-macro formatting adjustments were made in touched files: * `src/wallet/test/fuzz/crypter.cpp`: Removed a redundant double semicolon * `src/test/fuzz/txorphan.cpp`: Corrected indentation on an `else if` block. * `src/test/fuzz/mini_miner.cpp`: Removed an unnecessary empty line.
maflcko force-pushed on Jul 14, 2026DrahtBot added the label CI failed on Jul 14, 2026DrahtBot removed the label CI failed on Jul 14, 2026ryanofsky approvedryanofsky commented at 3:04 PM on July 14, 2026: contributorCode review ACK fab8eeed82cc784f05a7407da0245e6f44563778. Just fuzz test clang-format cleanups added since last review, which seem nice
DrahtBot requested review from sedited on Jul 14, 2026DrahtBot requested review from janb84 on Jul 14, 2026fanquake merged this on Jul 14, 2026fanquake closed this on Jul 14, 2026maflcko deleted the branch on Jul 14, 2026Labels
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-07-15 01:51 UTC
More mirrored repositories can be found on mirror.b10c.me