ci: Enable Boost.MultiIndex invariant-checking mode #35957

pull hebasto wants to merge 1 commits into bitcoin:master from hebasto:260812-boost-debug changing 3 files +5 −2
  1. hebasto commented at 12:26 PM on August 12, 2026: member

    From the Boost.MultiIndex docs:

    When this mode is in effect, all public functions of Boost.MultiIndex will perform post-execution tests aimed at ensuring that the basic internal invariants of the data structures managed are preserved.

    It is recommended that users of Boost.MultiIndex always set the invariant-checking mode in debug builds.

    Define it in the two jobs that already define BOOST_MULTI_INDEX_ENABLE_SAFE_MODE. The "MSAN, fuzz" job also defines safe mode but is left unchanged, as invariant checking would push it past the 240-minute limit on the Warp runner.

  2. hebasto added the label Tests on Aug 12, 2026
  3. DrahtBot commented at 12:26 PM on August 12, 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/35957.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline and AI policy for information on the review process.

    Type Reviewers
    Approach ACK jeanpablojp

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</code> into the comment that the bot should ignore.

    <!--174a7506f384e20aa4161008e828411d-->

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    • #36052 (ci: Doc: Move all config comments right next to the option they explain by maflcko)
    • #36042 (build: Bump g++ minimum supported version to 13 by maflcko)

    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-->

  4. fanquake commented at 12:30 PM on August 12, 2026: member

    ci: Define BOOST_MULTI_INDEX_ENABLE_SAFE_MODE

    This is already defined? Shouldn't the commit message be "ci: Define BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING for debug builds"?

  5. hebasto renamed this:
    ci: Define `BOOST_MULTI_INDEX_ENABLE_SAFE_MODE` for debug builds
    ci: Define `BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING` for debug builds
    on Aug 12, 2026
  6. hebasto force-pushed on Aug 12, 2026
  7. DrahtBot added the label CI failed on Aug 12, 2026
  8. hebasto commented at 12:46 PM on August 12, 2026: member

    ci: Define BOOST_MULTI_INDEX_ENABLE_SAFE_MODE

    This is already defined? Shouldn't the commit message be "ci: Define BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING for debug builds"?

    Thanks! Fixed.

  9. fanquake commented at 9:03 AM on August 13, 2026: member

    https://github.com/bitcoin/bitcoin/actions/runs/31598051874/job/94118405886?pr=35957

    Looks like this times out the MSAN fuzz job. How long did it take when you tested it locally?

  10. hebasto commented at 2:39 PM on August 13, 2026: member

    https://github.com/bitcoin/bitcoin/actions/runs/31598051874/job/94118405886?pr=35957

    Looks like this times out the MSAN fuzz job. How long did it take when you tested it locally?

    It took 214 min on my machine with 16 cores.

  11. hebasto force-pushed on Aug 15, 2026
  12. ci: Enable Boost.MultiIndex invariant-checking mode
    From the Boost.MultiIndex docs:
    > When this mode is in effect, all public functions of Boost.MultiIndex
    > will perform post-execution tests aimed at ensuring that the basic
    > internal invariants of the data structures managed are preserved.
    >
    > It is recommended that users of Boost.MultiIndex always set the
    > invariant-checking mode in debug builds.
    
    Define it in the two jobs that already define
    BOOST_MULTI_INDEX_ENABLE_SAFE_MODE. The "MSAN, fuzz" job also defines
    safe mode but is left unchanged, as invariant checking would push it
    past the 240-minute limit on the Warp runner.
    cfdcc6d207
  13. hebasto force-pushed on Aug 16, 2026
  14. hebasto renamed this:
    ci: Define `BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING` for debug builds
    ci: Enable Boost.MultiIndex invariant-checking mode
    on Aug 16, 2026
  15. DrahtBot removed the label CI failed on Aug 16, 2026
  16. jeanpablojp commented at 8:45 PM on August 21, 2026: contributor

    Approach ACK

    Ran the msan fuzz job here too, 16 threads, 208 min. It matches your 214.

  17. in ci/test/00_setup_env_native_fuzz_with_msan.sh:24 in cfdcc6d207
      18 | @@ -19,6 +19,9 @@ export DEP_OPTS="DEBUG=1 NO_QT=1 CC=clang CXX=clang++ CFLAGS='${MSAN_FLAGS}' CXX
      19 |  export GOAL="all"
      20 |  # Setting CMAKE_{C,CXX}_FLAGS_DEBUG flags to an empty string ensures that the flags set in MSAN_FLAGS remain unaltered.
      21 |  # _FORTIFY_SOURCE is not compatible with MSAN.
      22 | +# Unlike the other jobs that define BOOST_MULTI_INDEX_ENABLE_SAFE_MODE,
      23 | +# BOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING is not defined here, as it
      24 | +# would push the job past the 240-minute limit on the Warp runner.
    


    jeanpablojp commented at 8:45 PM on August 21, 2026:

    The run that timed out died with "exceeded the maximum execution time of 3h0m0s", and ci.yml has timeout-minutes: 180 for this job. So 180 here, not 240. Doesn't change the conclusion, just the number.


    hebasto commented at 9:33 AM on August 22, 2026:

    jeanpablojp commented at 10:55 AM on August 22, 2026:

    Ah, hadn't seen that run. I'd gone looking in ci.yml and found 180 for this job, that's where my question came from. Thanks for clarifying.


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-09-09 07:56 UTC