aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2024-01-16 11:15:57 +0000
committerfanquake <fanquake@gmail.com>2024-01-16 11:23:36 +0000
commit8087626cbda97f6def4fb51cdac6f204486ee6fb (patch)
tree0f721ac56e94cc04b0c499cb11bc490abef2020c
parent7da4ae1f78ab4f6c8b19c8ca89bd6b2a6c4836ea (diff)
parent53bbda51141e48730b95913c6ae8e1ea50578fbb (diff)
Merge bitcoin/bitcoin#28768: [25.x] Backports
53bbda51141e48730b95913c6ae8e1ea50578fbb doc: update release notes for 25.x (fanquake) 31e1e035be0598a43c573fe4cf49dea8351dc5f6 test: add regression test for the getrawtransaction segfault (Martin Zumsande) 041228d293a24c52631e011fc002349337d0645e rpc: fix getrawtransaction segfault (Martin Zumsande) b86285df1f949c44445165040dfb94a560c3858c gui: fix crash on selecting "Mask values" in transaction view (Sebastian Falbesoner) c21024fd86eb96e0a18c7c50acede2467ac70103 doc: add historical release notes for 25.1 (fanquake) Pull request description: Collecting backports for the 25.x branch. Currently: * https://github.com/bitcoin-core/gui/pull/774 * https://github.com/bitcoin/bitcoin/pull/29003 ACKs for top commit: stickies-v: ACK 53bbda51141e48730b95913c6ae8e1ea50578fbb Tree-SHA512: 9b1ba17cce9de70d20329372ba71225dd930718a1f7db84a7be764dcfbba01c5e466255e7b95433ab6d7559ee8aaa04cc99ee5d1512d91fcc0a8015f1aa4150a
-rw-r--r--doc/release-notes.md64
-rw-r--r--doc/release-notes/release-notes-25.1.md108
-rw-r--r--src/qt/transactionview.cpp3
-rw-r--r--src/rpc/rawtransaction.cpp5
-rwxr-xr-xtest/functional/rpc_rawtransaction.py13
5 files changed, 132 insertions, 61 deletions
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 7168d36875..fdca90f36f 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -1,9 +1,9 @@
-25.1 Release Notes
+25.x Release Notes
==================
-Bitcoin Core version 25.1 is now available from:
+Bitcoin Core version 25.x is now available from:
- <https://bitcoincore.org/bin/bitcoin-core-25.1/>
+ <https://bitcoincore.org/bin/bitcoin-core-25.x/>
This release includes various bug fixes and performance
improvements, as well as updated translations.
@@ -40,69 +40,21 @@ unsupported systems.
Notable changes
===============
-### P2P
-
-- #27626 Parallel compact block downloads, take 3
-- #27743 p2p: Unconditionally return when compact block status == READ_STATUS_FAILED
-
-### Fees
-
-- #27622 Fee estimation: avoid serving stale fee estimate
-
-### RPC
-
-- #27727 rpc: Fix invalid bech32 address handling
-
-### Rest
-
-- #27853 rest: fix crash error when calling /deploymentinfo
-- #28551 http: bugfix: allow server shutdown in case of remote client disconnection
-
-### Wallet
-
-- #28038 wallet: address book migration bug fixes
-- #28067 descriptors: do not return top-level only funcs as sub descriptors
-- #28125 wallet: bugfix, disallow migration of invalid scripts
-- #28542 wallet: Check for uninitialized last processed and conflicting heights in MarkConflicted
-
-### Build
-
-- #27724 build: disable boost multi index safe mode in debug mode
-- #28097 depends: xcb-proto 1.15.2
-- #28543 build, macos: Fix qt package build with new Xcode 15 linker
-- #28571 depends: fix unusable memory_resource in macos qt build
-
### Gui
-- gui#751 macOS, do not process actions during shutdown
-
-### Miscellaneous
+- gui#774 Fix crash on selecting "Mask values" in transaction view
-- #28452 Do not use std::vector = {} to release memory
-
-### CI
+### RPC
-- #27777 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN
-- #27834 ci: Nuke Android APK task, Use credits for tsan
-- #27844 ci: Use podman stop over podman kill
-- #27886 ci: Switch to amd64 container in "ARM" task
+- #29003 rpc: fix getrawtransaction segfault
Credits
=======
Thanks to everyone who directly contributed to this release:
-- Abubakar Sadiq Ismail
-- Andrew Chow
-- Bruno Garcia
-- Gregory Sanders
-- Hennadii Stepanov
-- MacroFake
-- Matias Furszyfer
-- Michael Ford
-- Pieter Wuille
-- stickies-v
-- Will Clark
+- Martin Zumsande
+- Sebastian Falbesoner
As well as to everyone that helped with translations on
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
diff --git a/doc/release-notes/release-notes-25.1.md b/doc/release-notes/release-notes-25.1.md
new file mode 100644
index 0000000000..bfdbee4e76
--- /dev/null
+++ b/doc/release-notes/release-notes-25.1.md
@@ -0,0 +1,108 @@
+25.1 Release Notes
+==================
+
+Bitcoin Core version 25.1 is now available from:
+
+ <https://bitcoincore.org/bin/bitcoin-core-25.1/>
+
+This release includes various bug fixes and performance
+improvements, as well as updated translations.
+
+Please report bugs using the issue tracker at GitHub:
+
+ <https://github.com/bitcoin/bitcoin/issues>
+
+To receive security and update notifications, please subscribe to:
+
+ <https://bitcoincore.org/en/list/announcements/join/>
+
+How to Upgrade
+==============
+
+If you are running an older version, shut it down. Wait until it has completely
+shut down (which might take a few minutes in some cases), then run the
+installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)
+or `bitcoind`/`bitcoin-qt` (on Linux).
+
+Upgrading directly from a version of Bitcoin Core that has reached its EOL is
+possible, but it might take some time if the data directory needs to be migrated. Old
+wallet versions of Bitcoin Core are generally supported.
+
+Compatibility
+==============
+
+Bitcoin Core is supported and extensively tested on operating systems
+using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin
+Core should also work on most other Unix-like systems but is not as
+frequently tested on them. It is not recommended to use Bitcoin Core on
+unsupported systems.
+
+Notable changes
+===============
+
+### P2P
+
+- #27626 Parallel compact block downloads, take 3
+- #27743 p2p: Unconditionally return when compact block status == READ_STATUS_FAILED
+
+### Fees
+
+- #27622 Fee estimation: avoid serving stale fee estimate
+
+### RPC
+
+- #27727 rpc: Fix invalid bech32 address handling
+
+### Rest
+
+- #27853 rest: fix crash error when calling /deploymentinfo
+- #28551 http: bugfix: allow server shutdown in case of remote client disconnection
+
+### Wallet
+
+- #28038 wallet: address book migration bug fixes
+- #28067 descriptors: do not return top-level only funcs as sub descriptors
+- #28125 wallet: bugfix, disallow migration of invalid scripts
+- #28542 wallet: Check for uninitialized last processed and conflicting heights in MarkConflicted
+
+### Build
+
+- #27724 build: disable boost multi index safe mode in debug mode
+- #28097 depends: xcb-proto 1.15.2
+- #28543 build, macos: Fix qt package build with new Xcode 15 linker
+- #28571 depends: fix unusable memory_resource in macos qt build
+
+### Gui
+
+- gui#751 macOS, do not process actions during shutdown
+
+### Miscellaneous
+
+- #28452 Do not use std::vector = {} to release memory
+
+### CI
+
+- #27777 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN
+- #27834 ci: Nuke Android APK task, Use credits for tsan
+- #27844 ci: Use podman stop over podman kill
+- #27886 ci: Switch to amd64 container in "ARM" task
+
+Credits
+=======
+
+Thanks to everyone who directly contributed to this release:
+
+- Abubakar Sadiq Ismail
+- Andrew Chow
+- Bruno Garcia
+- Gregory Sanders
+- Hennadii Stepanov
+- MacroFake
+- Matias Furszyfer
+- Michael Ford
+- Pieter Wuille
+- stickies-v
+- Will Clark
+
+As well as to everyone that helped with translations on
+[Transifex](https://www.transifex.com/bitcoin/bitcoin/). \ No newline at end of file
diff --git a/src/qt/transactionview.cpp b/src/qt/transactionview.cpp
index 351305f3fa..0641661fcb 100644
--- a/src/qt/transactionview.cpp
+++ b/src/qt/transactionview.cpp
@@ -532,6 +532,9 @@ void TransactionView::showDetails()
TransactionDescDialog *dlg = new TransactionDescDialog(selection.at(0));
dlg->setAttribute(Qt::WA_DeleteOnClose);
m_opened_dialogs.append(dlg);
+ connect(dlg, &QObject::destroyed, [this, dlg] {
+ m_opened_dialogs.removeOne(dlg);
+ });
dlg->show();
}
}
diff --git a/src/rpc/rawtransaction.cpp b/src/rpc/rawtransaction.cpp
index 21d49fda9d..4ab8a8661b 100644
--- a/src/rpc/rawtransaction.cpp
+++ b/src/rpc/rawtransaction.cpp
@@ -310,7 +310,7 @@ static RPCHelpMan getrawtransaction()
LOCK(cs_main);
blockindex = chainman.m_blockman.LookupBlockIndex(hash_block);
}
- if (verbosity == 1) {
+ if (verbosity == 1 || !blockindex) {
TxToJSON(*tx, hash_block, result, chainman.ActiveChainstate());
return result;
}
@@ -319,8 +319,7 @@ static RPCHelpMan getrawtransaction()
CBlock block;
const bool is_block_pruned{WITH_LOCK(cs_main, return chainman.m_blockman.IsBlockPruned(blockindex))};
- if (tx->IsCoinBase() ||
- !blockindex || is_block_pruned ||
+ if (tx->IsCoinBase() || is_block_pruned ||
!(UndoReadFromDisk(blockUndo, blockindex) && ReadBlockFromDisk(block, blockindex, Params().GetConsensus()))) {
TxToJSON(*tx, hash_block, result, chainman.ActiveChainstate());
return result;
diff --git a/test/functional/rpc_rawtransaction.py b/test/functional/rpc_rawtransaction.py
index 2395935620..c12865b5e3 100755
--- a/test/functional/rpc_rawtransaction.py
+++ b/test/functional/rpc_rawtransaction.py
@@ -32,6 +32,7 @@ from test_framework.script import (
from test_framework.test_framework import BitcoinTestFramework
from test_framework.util import (
assert_equal,
+ assert_greater_than,
assert_raises_rpc_error,
)
from test_framework.wallet import (
@@ -70,7 +71,7 @@ class RawTransactionsTest(BitcoinTestFramework):
self.extra_args = [
["-txindex"],
["-txindex"],
- [],
+ ["-fastprune", "-prune=1"],
]
# whitelist all peers to speed up tx relay / mempool sync
for args in self.extra_args:
@@ -85,7 +86,6 @@ class RawTransactionsTest(BitcoinTestFramework):
self.wallet = MiniWallet(self.nodes[0])
self.getrawtransaction_tests()
- self.getrawtransaction_verbosity_tests()
self.createrawtransaction_tests()
self.sendrawtransaction_tests()
self.sendrawtransaction_testmempoolaccept_tests()
@@ -94,6 +94,8 @@ class RawTransactionsTest(BitcoinTestFramework):
if self.is_specified_wallet_compiled() and not self.options.descriptors:
self.import_deterministic_coinbase_privkeys()
self.raw_multisig_transaction_legacy_tests()
+ self.getrawtransaction_verbosity_tests()
+
def getrawtransaction_tests(self):
tx = self.wallet.send_self_transfer(from_node=self.nodes[0])
@@ -243,6 +245,13 @@ class RawTransactionsTest(BitcoinTestFramework):
coin_base = self.nodes[1].getblock(block1)['tx'][0]
gottx = self.nodes[1].getrawtransaction(txid=coin_base, verbosity=2, blockhash=block1)
assert 'fee' not in gottx
+ # check that verbosity 2 for a mempool tx will fallback to verbosity 1
+ # Do this with a pruned chain, as a regression test for https://github.com/bitcoin/bitcoin/pull/29003
+ self.generate(self.nodes[2], 400)
+ assert_greater_than(self.nodes[2].pruneblockchain(250), 0)
+ mempool_tx = self.wallet.send_self_transfer(from_node=self.nodes[2])['txid']
+ gottx = self.nodes[2].getrawtransaction(txid=mempool_tx, verbosity=2)
+ assert 'fee' not in gottx
def createrawtransaction_tests(self):
self.log.info("Test createrawtransaction")