fuzz: cover async chainstate compaction #35594

pull l0rinc wants to merge 2 commits into bitcoin:master from l0rinc:l0rinc/fuzz-chainstate-compaction changing 5 files +10 −5
  1. l0rinc commented at 11:14 PM on June 23, 2026: contributor

    Problem: #35465 added async chainstate compaction, but the coins_view_db fuzz target did not exercise scheduling compaction alongside ordinary coins view operations. The async wrapper also shared the CompactFull() name with the blocking CDBWrapper primitive.

    Fix: Rename the coins DB wrapper to CompactFullAsync() and let coins_view_db randomly schedule it under cs_main (like in production). The fuzz operation only starts compaction and any running job is joined by the CCoinsViewDB destructor at the end of the fuzz input.

  2. refactor: rename async coin compaction
    Rename the `CCoinsViewDB` async compaction wrapper to `CompactFullAsync()` so it is distinct from the blocking `CDBWrapper::CompactFull()` primitive it calls.
    0868c85fd5
  3. DrahtBot added the label Fuzzing on Jun 23, 2026
  4. DrahtBot commented at 11:14 PM on June 23, 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/35594.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK sedited, andrewtoth

    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:

    • #35587 (Remove boost as a unit test runner by rustaceanrob)
    • #35572 (coins: make cursor iteration DB-only by l0rinc)
    • #35295 (validation: fetch block input prevouts in parallel during ConnectBlock by andrewtoth)

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

  5. fuzz: compact coins view db during fuzzing
    Exercise `CCoinsViewDB::CompactFullAsync()` from the `coins_view_db` fuzz target so the new chainstate compaction wrapper can run concurrently with ordinary coins view operations.
    
    The fuzz operation only schedules compaction, matching production; outstanding work is waited for by the `CCoinsViewDB` destructor at the end of the fuzz input.
    703a671fbc
  6. l0rinc force-pushed on Jun 23, 2026
  7. DrahtBot added the label CI failed on Jun 23, 2026
  8. DrahtBot removed the label CI failed on Jun 24, 2026
  9. sedited approved
  10. sedited commented at 9:55 AM on June 24, 2026: contributor

    ACK 703a671fbc2a6f875fea6644a974692679d880a3

  11. fanquake requested review from marcofleon on Jun 24, 2026
  12. fanquake requested review from andrewtoth on Jun 24, 2026
  13. andrewtoth approved
  14. andrewtoth commented at 3:25 PM on June 24, 2026: contributor

    ACK 703a671fbc2a6f875fea6644a974692679d880a3

  15. sedited merged this on Jun 24, 2026
  16. sedited closed this on Jun 24, 2026


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-06-27 17:51 UTC

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