Backports:
[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-
fanquake commented at 4:18 pm on January 6, 2026: member
-
fanquake added this to the milestone 30.2 on Jan 6, 2026
-
DrahtBot added the label Backport on Jan 6, 2026
-
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.
-
454ac8e7db
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
-
ac4d0956cc
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
-
8e5c02a77f
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
-
ac940ac2ca
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
-
bef4b1fdee
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
-
bc71372c0e
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
-
185ca0e391
test: coverage for migration failure when last sync is beyond prune height
Github-Pull: #34156 Rebased-From: b7c34d08dd9549a95cffc6ec1ffa4bb4f81e35eb
-
fanquake force-pushed on Jan 7, 2026
-
c4082a45e6
wallettool: do not use fs::remove_all in createfromdump cleanup
Github-Pull: #34215 Rebased-From: f78f6f1dc8e16d5a8a23749e77bc3bf17c91ae42
-
doc: update release notes for v30.2rc1 cc3cdbe921
-
build: bump version to v30.2rc1 747a863f5b
-
doc: update manual pages for v30.2rc1 483d158f53
-
fanquake force-pushed on Jan 7, 2026
-
fanquake marked this as ready for review on Jan 7, 2026
-
fanquake requested review from marcofleon on Jan 7, 2026
-
willcl-ark approved
-
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.
-
w0xlt commented at 3:09 pm on January 7, 2026: contributor
-
marcofleon approved
-
marcofleon commented at 3:17 pm on January 7, 2026: contributorlgtm ACK 483d158f538c3d7c1cac30d2b299bc10b256972e
-
darosior commented at 3:36 pm on January 7, 2026: memberACK 483d158f538c3d7c1cac30d2b299bc10b256972e
-
fanquake merged this on Jan 7, 2026
-
fanquake closed this on Jan 7, 2026
-
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 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
More mirrored repositories can be found on mirror.b10c.me