cc0553d0d6 [doc] add manual pages for 26.1 (glozow)
785242dd4c [doc] update release notes 26.1 (glozow)
5f06dcf9c9 [build] bump version to 26.1 final (glozow)
b53bf22c72 ci, macos: Use `--break-system-packages` with Homebrew's python (Hennadii Stepanov)
324e562399 ci: Add workaround for Homebrew's python link error (Hennadii Stepanov)
Pull request description:
Final changes for `v26.1`.
Bins for rc2 have been available for 10 days and I haven't seen any bug reports or new things to add.
Includes #29610 backport for the CI, which has no effect on what goes into the release.
Website PR: https://github.com/bitcoin-core/bitcoincore.org/pull/1009
ACKs for top commit:
hebasto:
ACK cc0553d0d6.
fanquake:
ACK cc0553d0d6
stickies-v:
ACK cc0553d0d6 (modulo CI passing)
Tree-SHA512: d032157c7cdf07a474e40b947f7e51bfc6a8e280e43345522bad67b6ad449d473f29bf03ee845b2e403693c1c81078589d042337c895eceb8a59cb4340432887
On default legacy wallets, the backup filename starts with an "-" due
to the wallet name being empty. This is inconvenient for systems who
treat what follows the initial "-" character as flags.
Github-Pull: #29586
Rebased-From: a951dba3a9
There are occasions where a multi-statement tx is begun in one batch,
and a second batch is created which does a normal write (without a
multi-statement tx). These should not conflict with each other and all
of the data should end up being written to disk.
Github-Pull: #29112
Rebased-From: 548ecd1155
A SQLiteBatch need to wait for any other batch to finish writing before
it can begin writing, otherwise db txn state may be incorrectly
modified. To enforce this, each SQLiteDatabase has a semaphore which
acts as a lock and is acquired by a batch when it begins a write, erase,
or a transaction, and is released by it when it is done.
To avoid deadlocking on itself for writing during a transaction,
SQLiteBatch also keeps track of whether it has begun a transaction.
Github-Pull: #29112
Rebased-From: 395bcd2454
This primarily affects blocks when bitcoin is launched with -reindex, as
that causes the block files to be loaded as CBufferedFile objects one at
a time as the reindex progresses.
Co-Authored-By: Luke Dashjr <luke-jr+git@utopios.org>
This is currently indirectly implied by src/bench/load_external.cpp:LoadExternalBlockFile
"The file will be closed by LoadExternalBlockFile()."
Github-Pull: #29614
Rebased-From: 0fa3a0c893a672e810c6d95a10429fd3213ae4eb
If the handler that initiated the database transaction is destroyed,
the ongoing transaction cannot be left dangling when the db txn fails
to abort. It must be forcefully reversed; otherwise, any subsequent
db handler executing a write operation will dump the dangling,
to-be-reverted transaction data to disk.
This not only breaks the database isolation property but also results
in the improper storage of incomplete information on disk, impacting
the wallet consistency.
Github-Pull: #29253
Rebased-From: fc0e747192
Util function to clean up code and let us
verify, in the following-up commit, that dangling,
to-be-reverted db transactions cannot occur anymore.
Github-Pull: #29253
Rebased-From: 472d2ca981
By encapsulating sqlite3_exec into its own standalone method
and introducing the 'SQliteExecHandler' class, we enable the
ability to test db statements execution failures within the
unit test framework.
This is used in the following-up commit to exercise a deadlock
and improve our wallet db error handling code.
Moreover, the future encapsulation of other sqlite functions
within this class will contribute to minimize the impact of
any future API changes.
Github-Pull: #29253
Rebased-From: dca874e838
Starting bitcoin-qt with non-dash ("-") arguments causes it to
silently ignore any later valid options. This change makes the
client exit with an error message if any such "loose" arguments
are encountered.
However, allow BIP-21 'bitcoin:' URIs only if no other options
follow.
Github-Pull: gui#742
Rebased-From: 51e4dc49f5