diff options
author | fanquake <fanquake@gmail.com> | 2024-01-16 11:15:57 +0000 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2024-01-16 11:23:36 +0000 |
commit | 8087626cbda97f6def4fb51cdac6f204486ee6fb (patch) | |
tree | 0f721ac56e94cc04b0c499cb11bc490abef2020c | |
parent | 7da4ae1f78ab4f6c8b19c8ca89bd6b2a6c4836ea (diff) | |
parent | 53bbda51141e48730b95913c6ae8e1ea50578fbb (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.md | 64 | ||||
-rw-r--r-- | doc/release-notes/release-notes-25.1.md | 108 | ||||
-rw-r--r-- | src/qt/transactionview.cpp | 3 | ||||
-rw-r--r-- | src/rpc/rawtransaction.cpp | 5 | ||||
-rwxr-xr-x | test/functional/rpc_rawtransaction.py | 13 |
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") |