maflcko
commented at 11:15 am on November 8, 2025:
member
Most of the CI tasks have a long list of stuff that they enable. This makes it hard to see what each CI task is actually running.
Also, most of the CI tasks should probably mimic the dev-mode CMake preset and run on as much stuff as possible. Usually, changing the dev-mode comes with changing those CI tasks as well in the same commit, which is verbose.
Fix both issues, by basing most CI tasks on the dev-mode. In the future, this makes it easier to change the dev-mode in a single place. If CI tasks explicitly disable something, it will be listed explicitly in them.
As a side-effect this will enable the kernel stuff for some CI task that did not have it enabled, which seems desirable.
DrahtBot renamed this:
ci: Enable experimental kernel stuff in most CI tasks
ci: Enable experimental kernel stuff in most CI tasks
on Nov 8, 2025
DrahtBot added the label
Tests
on Nov 8, 2025
DrahtBot
commented at 11:16 am on November 8, 2025:
contributor
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.
Conflicts
Reviewers, this pull request conflicts with the following ones:
#32748 (fees: prevent redundant estimates flushes by ismaelsadeeq)
#28792 (Embed default ASMap as binary dump header file by fjahr)
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.
maflcko force-pushed
on Nov 8, 2025
DrahtBot added the label
CI failed
on Nov 8, 2025
DrahtBot
commented at 11:24 am on November 8, 2025:
contributor
🚧 At least one of the CI tasks failed.
Task TSan: https://github.com/bitcoin/bitcoin/actions/runs/19192288386/job/54868372095
LLM reason (✨ experimental): Compilation failed in the bitcoin-chainstate module due to missing std::exception_ptr and related exception utilities in the standard library (libc++), causing multiple compile errors.
Try to run the tests locally, according to the documentation. However, a CI failure may still
happen due to a number of reasons, for example:
Possibly due to a silent merge conflict (the changes in this pull request being
incompatible with the current code in the target branch). If so, make sure to rebase on the latest
commit of the target branch.
A sanitizer issue, which can only be found by compiling with the sanitizer and running the
affected test.
An intermittent issue.
Leave a comment here, if you need help tracking down a confusing failure.
maflcko marked this as a draft
on Nov 8, 2025
maflcko
commented at 11:35 am on November 8, 2025:
member
Hmm. Looks like this uncovered some errors. I’ll circle back next week.
TheCharlatan
commented at 7:22 pm on November 8, 2025:
contributor
Thanks for going through this!
My guess is the failure in the previous releases job is gcc11’s limited implementation of std::ranges. Not sure what to do about that to be honest. Maybe we can add a macro guard for those test cases?
The test case producing the ubsan error should just be deleted in my opinion. It does not add anything in terms of coverage. How about:
On a related note, there is some ongoing work at improving the test binary. Initially it was kept isolated from the rest of the test framework to demonstrate its stand-alone capabilities. I don’t think that is beneficial anymore - we should just use our existing test utilities. There is also an attempt at standardizing the test vectors such that other bindings implementations can re-use them.
ci: Enable experimental kernel stuff in ASan task
Base the task on --preset=dev-mode to ensure maximal coverage and add
the following:
bitcoin-chainstate (experimental) ... ON
libbitcoinkernel (experimental) ..... ON
kernel-test (experimental) .......... ON
e6eb4ed5be
ci: Enable experimental kernel stuff in MSan task
Base the task on --preset=dev-mode to ensure maximal coverage and add
the following:
bitcoin-chainstate (experimental) ... ON
libbitcoinkernel (experimental) ..... ON
kernel-test (experimental) .......... ON
The GUI remains disabled explicitly.
26d9fe9c94
ci: Enable experimental kernel stuff in G++-11 task (previous releases)
Base the task on --preset=dev-mode to ensure maximal coverage and add
the following:
bitcoin-chainstate (experimental) ... ON
libbitcoinkernel (experimental) ..... ON
kernel-test (experimental) .......... ON
Also, shorten the name, for a less cluttered web view.
f73e80d6e3
ci: Enable experimental kernel stuff in TSan task
Base the task on --preset=dev-mode to ensure maximal coverage and add
the following:
bitcoin-chainstate (experimental) ... ON
libbitcoinkernel (experimental) ..... ON
kernel-test (experimental) .......... ON
The GUI remains disabled explicitly.
578746d1c6
ci: Enable experimental kernel stuff in valgrind task
Base the task on --preset=dev-mode to ensure maximal coverage and add
the following:
bitcoin-chainstate (experimental) ... ON
libbitcoinkernel (experimental) ..... ON
kernel-test (experimental) .......... ON
The GUI and USDT remain disabled explicitly.
fae6c3ff86
ci: Enable experimental kernel stuff in s390x task
Base the task on --preset=dev-mode to ensure maximal coverage and add
the following:
bitcoin-chainstate (experimental) ... ON
libbitcoinkernel (experimental) ..... ON
kernel-test (experimental) .......... ON
4b4cafb0d3
ci: [refactor] Base nowallet task on --preset=dev-mode
This makes it clearer what pieces are disabled over the full dev-mode.
The wallet remains explicitly disabled.
703d154c59
ci: [refactor] Use --preset=dev-mode in mac_native task
Also shorten the name, because it is usually truncated anyway in the web
view.
USDT remains disabled explicitly.
df4ba5256f
stickies-v
commented at 9:48 am on November 10, 2025:
contributor
Concept ACK for standardizing CI workflows around dev-mode and for increasing kernel coverage. CI runtimes seem acceptable.
maflcko
commented at 10:16 am on November 10, 2025:
member
The test case producing the ubsan error should just be deleted in my opinion. It does not add anything in terms of coverage. How about:
I was thinking about permitting nullptr when size=0, or even just permitting nullptr for any size, when the data pointer is followed by a size?
I understand the nonnull check can in theory be useful in low-level environments where a nullptr-deref would not be detected as access violation, but there are probably more users using modern systems that may want to be able to handle zero-size spans properly at runtime without unnecessarily crashing?
gcc 123baa3f0630
maflcko force-pushed
on Nov 10, 2025
TheCharlatan
commented at 11:39 am on November 10, 2025:
contributor
I was thinking about permitting nullptr when size=0, or even just permitting nullptr for any size, when the data pointer is followed by a size?
Afaict our de-serialization can handle this case (nullptr when size=0) correctly, but fails when passed a nullptr with non-zero size. Maybe a null check in btck_block_create(...) would be better? What do you think?
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-11-12 21:13 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me