[30.x]: Final backports & 30.2rc1 #34209

pull fanquake wants to merge 11 commits into bitcoin:30.x from fanquake:30_2_rc1 changing 14 files +304 −55
  1. fanquake commented at 4:18 pm on January 6, 2026: member

    Backports:

  2. fanquake added this to the milestone 30.2 on Jan 6, 2026
  3. DrahtBot added the label Backport on Jan 6, 2026
  4. DrahtBot commented at 4:18 pm on January 6, 2026: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/34209.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK willcl-ark, janb84, w0xlt, marcofleon, darosior

    If your review is incorrectly listed, please copy-paste <!–meta-tag:bot-skip–> into the comment that the bot should ignore.

  5. wallet: RestoreWallet failure, erase only what was created
    Track what RestoreWallet creates so only those files and directories
    are removed during a failure and nothing else. Preexisting paths
    must be left untouched.
    
    Note:
    Using fs::remove_all() instead of fs::remove() in RestoreWallet does
    not cause any problems currently, but the change is necessary for the
    next commit which extends RestoreWallet to work with existing directories,
    which may contain files that must not be deleted.
    
    Github-Pull: #34156
    Rebased-From: 4ed0693a3f2a427ef9e7ad016930ec29fa244995
    454ac8e7db
  6. wallet: fix unnamed wallet migration failure
    When migrating any legacy unnamed wallet, a failed migration would
    cause the cleanup logic to remove its parent directory. Since this
    type of legacy wallet lives directly in the main '/wallets/' folder,
    this resulted in unintentionally erasing all wallets, including the
    backup file.
    
    To be fully safe, we will no longer call `fs::remove_all`. Instead,
    we only erase the individual db files we have created, leaving
    everything else intact. The created wallets parent directories are
    erased only if they are empty.
    As part of this last change, `RestoreWallet` was modified to allow
    an existing directory as the destination, since we no longer remove
    the original wallet directory (we only remove the files we created
    inside it). This also fixes the restore of top-level default wallets
    during failures, which were failing due to the directory existence
    check that always returns true for the /wallets/ directory.
    
    This bug started after:
    https://github.com/bitcoin/bitcoin/commit/f6ee59b6e2995a3916fb4f0d4cbe15ece2054494
    Previously, the `fs::copy_file` call was failing for top-level wallets,
    which prevented the `fs::remove_all` call from being reached.
    
    Github-Pull: #34156
    Rebased-From: f4c7e28e80bf9af50b03a770b641fd309a801589
    ac4d0956cc
  7. test: add coverage for unnamed wallet migration failure
    Verifies that a failed migration of the unnamed (default) wallet
    does not erase the main /wallets/ directory, and also that the
    backup file exists.
    
    Github-Pull: #34156
    Rebased-From: 36093bde63286e19821a9e62cdff1712b6245dc7
    8e5c02a77f
  8. test: restorewallet, coverage for existing dirs, unnamed wallet and prune failure
    The first test verifies that restoring into an existing empty directory
    or a directory with no .dat db files succeeds, while restoring into a
    dir with a .dat file fails.
    
    The second test covers restoring into the default unnamed wallet
    (wallet.dat), which also implicitly exercises the recovery path used
    after a failed migration.
    
    The third test covers failure during restore on a prune node. When
    the wallet last sync was beyond the pruning height.
    
    Github-Pull: #34156
    Rebased-From: f011e0f0680a8c39988ae57dae57eb86e92dd449
    ac940ac2ca
  9. wallet: improve post-migration logging
    Right now, after migration the last message users see is "migration completed",
    but the migration isn't actually finished yet. We still need to load the new wallets
    to ensure consistency, and if that fails, the migration will be rolled back. This
    can be confusing for users.
    
    This change logs the post-migration loading step and if a wallet fails to load and
    the migration will be rolled back.
    
    Github-Pull: #34156
    Rebased-From: d70b159c42008ac3b63d1c43d99d4f1316d2f1ef
    bef4b1fdee
  10. wallet: migration, fix watch-only and solvables wallets names
    Because the default wallet has no name, the watch-only and solvables
    wallets created during migration end up having no name either.
    
    This fixes it by applying the same prefix name we use for the backup
    file for an unnamed default wallet.
    
    Before: watch-only wallet named "_watchonly"
    After:  watch-only wallet named "default_wallet_watchonly"
    
    Github-Pull: #34156
    Rebased-From: 82caa8193a3e36f248dcc949e0cd41def191efac
    bc71372c0e
  11. test: coverage for migration failure when last sync is beyond prune height
    Github-Pull: #34156
    Rebased-From: b7c34d08dd9549a95cffc6ec1ffa4bb4f81e35eb
    185ca0e391
  12. fanquake force-pushed on Jan 7, 2026
  13. wallettool: do not use fs::remove_all in createfromdump cleanup
    Github-Pull: #34215
    Rebased-From: f78f6f1dc8e16d5a8a23749e77bc3bf17c91ae42
    c4082a45e6
  14. doc: update release notes for v30.2rc1 cc3cdbe921
  15. build: bump version to v30.2rc1 747a863f5b
  16. doc: update manual pages for v30.2rc1 483d158f53
  17. fanquake force-pushed on Jan 7, 2026
  18. fanquake marked this as ready for review on Jan 7, 2026
  19. fanquake requested review from marcofleon on Jan 7, 2026
  20. willcl-ark approved
  21. willcl-ark commented at 2:47 pm on January 7, 2026: member

    tACK 483d158f538c3d7c1cac30d2b299bc10b256972e

    Backports are clean (no conflicts) and mentioned in release notes correctly.

    Version and manpage commits appear correct, but I didn’t check them against the full release process.

  22. janb84 commented at 2:51 pm on January 7, 2026: contributor

    ACK 483d158f538c3d7c1cac30d2b299bc10b256972e

    PR contains commits form #34156 and #34215 (checked) Updates the version to v30.2.0rc1

    0$ build_dev_mode/bin/bitcoin --version
    1Bitcoin Core version v30.2.0rc1
    
  23. marcofleon approved
  24. marcofleon commented at 3:17 pm on January 7, 2026: contributor
    lgtm ACK 483d158f538c3d7c1cac30d2b299bc10b256972e
  25. darosior commented at 3:36 pm on January 7, 2026: member
    ACK 483d158f538c3d7c1cac30d2b299bc10b256972e
  26. fanquake merged this on Jan 7, 2026
  27. fanquake closed this on Jan 7, 2026

  28. fanquake deleted the branch on Jan 7, 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-01-09 06:13 UTC

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