mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-09-11 21:20:39 +02:00
Merge bitcoin/bitcoin#35028: [31.x] Backports + rc3
c168baec80doc: update manual pages for v31.0rc3 (fanquake)275843f2a6build: bump version to v31.0rc3 (fanquake)afa8ba04e0test: remove macOS REDUCE_EXPORTS exception workaround (Alfonso Roman Zubeldia)1bc22a38a8Squashed 'src/ipc/libmultiprocess/' changes from 70f632bda8..3edbe8f67c (fanquake) Pull request description: Backports: * #35014 Also contains a libmultiprocess subtree pull. Also bumps to `rc3` + regens manpages. ACKs for top commit: Sjors: utACKc168baec80hebasto: ACKc168baec80. marcofleon: ACKc168baec80Tree-SHA512: 88aaef85a6ce6018fe5233d5a4a46d75c57914af9ff41158b85533ddf5e42df45ed7f6cbfdbffe2c4d2db6853af1ff4473440ab5ecc62c9cadf070f5cdcab883
This commit is contained in:
@@ -30,7 +30,7 @@ set(CLIENT_NAME "Bitcoin Core")
|
||||
set(CLIENT_VERSION_MAJOR 31)
|
||||
set(CLIENT_VERSION_MINOR 0)
|
||||
set(CLIENT_VERSION_BUILD 0)
|
||||
set(CLIENT_VERSION_RC 2)
|
||||
set(CLIENT_VERSION_RC 3)
|
||||
set(CLIENT_VERSION_IS_RELEASE "true")
|
||||
set(COPYRIGHT_YEAR "2026")
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||
.TH BITCOIN-CLI "1" "March 2026" "bitcoin-cli v31.0.0rc2" "User Commands"
|
||||
.TH BITCOIN-CLI "1" "April 2026" "bitcoin-cli v31.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-cli \- manual page for bitcoin-cli v31.0.0rc2
|
||||
bitcoin-cli \- manual page for bitcoin-cli v31.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-cli
|
||||
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]
|
||||
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v31.0.0rc2
|
||||
.B bitcoin-cli
|
||||
[\fI\,options\/\fR] \fI\,help <command>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core RPC client version v31.0.0rc2
|
||||
Bitcoin Core RPC client version v31.0.0rc3
|
||||
.PP
|
||||
The bitcoin\-cli utility provides a command line interface to interact with a Bitcoin Core RPC server.
|
||||
.PP
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||
.TH BITCOIN-QT "1" "March 2026" "bitcoin-qt v31.0.0rc2" "User Commands"
|
||||
.TH BITCOIN-QT "1" "April 2026" "bitcoin-qt v31.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-qt \- manual page for bitcoin-qt v31.0.0rc2
|
||||
bitcoin-qt \- manual page for bitcoin-qt v31.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-qt
|
||||
[\fI\,options\/\fR] [\fI\,URI\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core version v31.0.0rc2
|
||||
Bitcoin Core version v31.0.0rc3
|
||||
.PP
|
||||
The bitcoin\-qt application provides a graphical interface for interacting with Bitcoin Core.
|
||||
.PP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||
.TH BITCOIN-TX "1" "March 2026" "bitcoin-tx v31.0.0rc2" "User Commands"
|
||||
.TH BITCOIN-TX "1" "April 2026" "bitcoin-tx v31.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-tx \- manual page for bitcoin-tx v31.0.0rc2
|
||||
bitcoin-tx \- manual page for bitcoin-tx v31.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-tx
|
||||
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]
|
||||
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v31.0.0rc2
|
||||
.B bitcoin-tx
|
||||
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-tx utility version v31.0.0rc2
|
||||
Bitcoin Core bitcoin\-tx utility version v31.0.0rc3
|
||||
.PP
|
||||
The bitcoin\-tx tool is used for creating and modifying bitcoin transactions.
|
||||
.PP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||
.TH BITCOIN-UTIL "1" "March 2026" "bitcoin-util v31.0.0rc2" "User Commands"
|
||||
.TH BITCOIN-UTIL "1" "April 2026" "bitcoin-util v31.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-util \- manual page for bitcoin-util v31.0.0rc2
|
||||
bitcoin-util \- manual page for bitcoin-util v31.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-util
|
||||
[\fI\,options\/\fR] [\fI\,command\/\fR]
|
||||
@@ -9,7 +9,7 @@ bitcoin-util \- manual page for bitcoin-util v31.0.0rc2
|
||||
.B bitcoin-util
|
||||
[\fI\,options\/\fR] \fI\,grind <hex-block-header>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-util utility version v31.0.0rc2
|
||||
Bitcoin Core bitcoin\-util utility version v31.0.0rc3
|
||||
.PP
|
||||
The bitcoin\-util tool provides bitcoin related functionality that does not rely on the ability to access a running node. Available [commands] are listed below.
|
||||
.SH OPTIONS
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||
.TH BITCOIN-WALLET "1" "March 2026" "bitcoin-wallet v31.0.0rc2" "User Commands"
|
||||
.TH BITCOIN-WALLET "1" "April 2026" "bitcoin-wallet v31.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-wallet \- manual page for bitcoin-wallet v31.0.0rc2
|
||||
bitcoin-wallet \- manual page for bitcoin-wallet v31.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-wallet
|
||||
[\fI\,options\/\fR] \fI\,<command>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-wallet utility version v31.0.0rc2
|
||||
Bitcoin Core bitcoin\-wallet utility version v31.0.0rc3
|
||||
.PP
|
||||
bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
|
||||
.PP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||
.TH BITCOIN "1" "March 2026" "bitcoin v31.0.0rc2" "User Commands"
|
||||
.TH BITCOIN "1" "April 2026" "bitcoin v31.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin \- manual page for bitcoin v31.0.0rc2
|
||||
bitcoin \- manual page for bitcoin v31.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin
|
||||
[\fI\,OPTIONS\/\fR] \fI\,COMMAND\/\fR...
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
|
||||
.TH BITCOIND "1" "March 2026" "bitcoind v31.0.0rc2" "User Commands"
|
||||
.TH BITCOIND "1" "April 2026" "bitcoind v31.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoind \- manual page for bitcoind v31.0.0rc2
|
||||
bitcoind \- manual page for bitcoind v31.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoind
|
||||
[\fI\,options\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core daemon version v31.0.0rc2 bitcoind
|
||||
Bitcoin Core daemon version v31.0.0rc3 bitcoind
|
||||
.PP
|
||||
The Bitcoin Core daemon (bitcoind) is a headless program that connects to the Bitcoin network to validate and relay transactions and blocks, as well as relaying addresses.
|
||||
.PP
|
||||
|
||||
@@ -7,33 +7,37 @@ Library versions are tracked with simple
|
||||
Versioning policy is described in the [version.h](../include/mp/version.h)
|
||||
include.
|
||||
|
||||
## v9
|
||||
## v10
|
||||
- Current unstable version.
|
||||
|
||||
## [v9.0](https://github.com/bitcoin-core/libmultiprocess/commits/v9.0)
|
||||
- Fixes race conditions where worker thread could be used after destruction, where getParams() could be called after request cancel, and where m_on_cancel could be called after request finishes.
|
||||
- Adds `CustomHasField` hook to map Cap'n Proto null values to C++ null values.
|
||||
- Improves `CustomBuildField` for `std::optional` to use move semantics.
|
||||
- Adds LLVM 22 compatibility fix in type-map.
|
||||
- Used in Bitcoin Core master branch, pulled in by [#34804](https://github.com/bitcoin/bitcoin/pull/34804). Also pulled into Bitcoin Core 31.x stable branch by [#34952](https://github.com/bitcoin/bitcoin/pull/34952).
|
||||
|
||||
## [v8.0](https://github.com/bitcoin-core/libmultiprocess/commits/v8.0)
|
||||
- Better support for non-libmultiprocess IPC clients: avoiding errors on unclean disconnects, and allowing simultaneous requests to worker threads which previously triggered "thread busy" errors.
|
||||
- Used in Bitcoin Core, pulled in by [#34422](https://github.com/bitcoin/bitcoin/pull/34422).
|
||||
- Intermediate version used in Bitcoin Core master branch between 30.x and 31.x branches, pulled in by [#34422](https://github.com/bitcoin/bitcoin/pull/34422).
|
||||
|
||||
## [v7.0](https://github.com/bitcoin-core/libmultiprocess/commits/v7.0)
|
||||
- Adds SpawnProcess race fix, cmake `target_capnp_sources` option, ci and documentation improvements. Adds `version.h` header declaring major and minor version numbers.
|
||||
- Used in Bitcoin Core, pulled in by [#34363](https://github.com/bitcoin/bitcoin/pull/34363).
|
||||
- Intermediate version used in Bitcoin Core master branch between 30.x and 31.x branches, pulled in by [#34363](https://github.com/bitcoin/bitcoin/pull/34363).
|
||||
|
||||
## [v7.0-pre2](https://github.com/bitcoin-core/libmultiprocess/commits/v7.0-pre2)
|
||||
- Fixes intermittent mptest hang and makes other minor improvements.
|
||||
- Used in Bitcoin Core 30.1 and 30.2 releases and 30.x branch, pulled in by [#33518](https://github.com/bitcoin/bitcoin/pull/33518) and [#33519](https://github.com/bitcoin/bitcoin/pull/33519).
|
||||
|
||||
## [v7.0-pre1](https://github.com/bitcoin-core/libmultiprocess/commits/v7.0-pre1)
|
||||
|
||||
- Adds support for log levels to reduce logging and "thread busy" error to avoid a crash on misuse.
|
||||
- Minimum required version for Bitcoin Core 30.1 and 30.2 releases and 30.x branch, pulled in by [#33412](https://github.com/bitcoin/bitcoin/pull/33412), [#33518](https://github.com/bitcoin/bitcoin/pull/33518), and [#33519](https://github.com/bitcoin/bitcoin/pull/33519).
|
||||
- Minimum required version since Bitcoin Core 30.1, pulled in by [#33412](https://github.com/bitcoin/bitcoin/pull/33412), [#33518](https://github.com/bitcoin/bitcoin/pull/33518), and [#33519](https://github.com/bitcoin/bitcoin/pull/33519).
|
||||
|
||||
## [v6.0](https://github.com/bitcoin-core/libmultiprocess/commits/v6.0)
|
||||
|
||||
- Adds CI scripts and build and test fixes.
|
||||
- Used in Bitcoin Core 30.0 release, pulled in by [#32345](https://github.com/bitcoin/bitcoin/pull/32345), [#33241](https://github.com/bitcoin/bitcoin/pull/33241), and [#33322](https://github.com/bitcoin/bitcoin/pull/33322).
|
||||
|
||||
## [v6.0-pre1](https://github.com/bitcoin-core/libmultiprocess/commits/v6.0-pre1)
|
||||
|
||||
- Adds fixes for unclean shutdowns and thread sanitizer issues.
|
||||
- Drops `EventLoop::addClient` and `EventLoop::removeClient` methods,
|
||||
requiring clients to use new `EventLoopRef` class instead.
|
||||
|
||||
@@ -189,7 +189,7 @@ auto PassField(Priority<1>, TypeList<>, ServerContext& server_context, const Fn&
|
||||
}
|
||||
})) {
|
||||
MP_LOG(loop, Log::Error) << "IPC server request #" << req << " uncaught exception (" << kj::str(*exception).cStr() << ")";
|
||||
throw kj::mv(*exception);
|
||||
kj::throwRecoverableException(kj::mv(*exception));
|
||||
}
|
||||
return call_context;
|
||||
// End of scope: if KJ_DEFER was reached, it runs here
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
//! pointing at the prior merge commit. The /doc/versions.md file should also be
|
||||
//! updated, noting any significant or incompatible changes made since the
|
||||
//! previous version.
|
||||
#define MP_MAJOR_VERSION 9
|
||||
#define MP_MAJOR_VERSION 10
|
||||
|
||||
//! Minor version number. Should be incremented in stable branches after
|
||||
//! backporting changes. The /doc/versions.md file should also be updated to
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
|
||||
namespace {
|
||||
|
||||
constexpr auto FAILURE_TIMEOUT = std::chrono::seconds{30};
|
||||
|
||||
// Poll for child process exit using waitpid(..., WNOHANG) until the child exits
|
||||
// or timeout expires. Returns true if the child exited and status_out was set.
|
||||
// Returns false on timeout or error.
|
||||
@@ -94,9 +96,9 @@ KJ_TEST("SpawnProcess does not run callback in child")
|
||||
::close(fd);
|
||||
|
||||
int status{0};
|
||||
// Give the child up to 1 second to exit. If it does not, terminate it and
|
||||
// Give the child some time to exit. If it does not, terminate it and
|
||||
// reap it to avoid leaving a zombie behind.
|
||||
const bool exited{WaitPidWithTimeout(pid, std::chrono::milliseconds{1000}, status)};
|
||||
const bool exited{WaitPidWithTimeout(pid, FAILURE_TIMEOUT, status)};
|
||||
if (!exited) {
|
||||
::kill(pid, SIGKILL);
|
||||
::waitpid(pid, &status, /*options=*/0);
|
||||
|
||||
@@ -10,7 +10,6 @@ from dataclasses import dataclass
|
||||
from io import BytesIO
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
import platform
|
||||
from typing import Optional
|
||||
|
||||
from test_framework.messages import CBlock
|
||||
@@ -161,12 +160,5 @@ async def make_mining_ctx(self):
|
||||
return ctx, mining
|
||||
|
||||
def assert_capnp_failed(e, description_prefix):
|
||||
if e.description == "remote exception: unknown non-KJ exception of type: kj::Exception":
|
||||
# macOS + REDUCE_EXPORTS bug: Cap'n Proto fails to recognize
|
||||
# its own exception type and returns a generic error instead.
|
||||
# https://github.com/bitcoin/bitcoin/pull/34422#discussion_r2863852691
|
||||
# Assert this only occurs on Darwin until fixed.
|
||||
assert_equal(platform.system(), "Darwin")
|
||||
else:
|
||||
assert e.description.startswith(description_prefix), f"Expected description starting with '{description_prefix}', got '{e.description}'"
|
||||
assert e.description.startswith(description_prefix), f"Expected description starting with '{description_prefix}', got '{e.description}'"
|
||||
assert_equal(e.type, "FAILED")
|
||||
|
||||
Reference in New Issue
Block a user