4.1.0-rc.1 release notes

This commit is contained in:
Michael Klishin 2025-04-01 22:02:01 -04:00
parent 213822eb5d
commit 5b99c6b5b9
No known key found for this signature in database
GPG Key ID: 44BF2725475205B2
1 changed files with 122 additions and 5 deletions

View File

@ -40,7 +40,7 @@ key in `rabbitmq.conf` and do not set it in the application code.
[`amqplib`](https://github.com/amqp-node/amqplib/) is a popular client library that has been using
a low `frame_max` default of `4096`. Its users must [upgrade to a compatible version](https://github.com/amqp-node/amqplib/pull/787)
or explicitly use a higher `frame_max`.
(starting with `0.10.7`) or explicitly use a higher `frame_max`.
### MQTT
@ -117,6 +117,14 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
#### Enhancements
* Quorum queue log reads are now offloaded to channels (sessions, connections).
In practical terms this means improved consumer throughput, lower interference of publishers
on queue delivery rate to consumers, and improved CPU core utilization by each quorum queue
(assuming there are enough cores available to the node).
GitHub issue: [#12713](https://github.com/rabbitmq/rabbitmq-server/pull/12713)
* Feature flag quality of live improvements.
Certain required feature flags will now be automatically required on node boot
@ -136,6 +144,22 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
GitHub issue: [#12415](https://github.com/rabbitmq/rabbitmq-server/pull/12415)
* Larger (up to 8192 bytes) [JWT tokens](https://www.rabbitmq.com/docs/oauth2) now can be used by AMQP 0-9-1 clients.
Before a client connection can negotiate a maximum frame size (`frame_max`), it must authenticate
successfully. Before the authenticated phase, a special lower `frame_max` value
is used.
Clients that do override `frame_max` now must use values of 8192 bytes or greater.
We recommend using the default server value of `131072`: do not override the `frame_max`
key in `rabbitmq.conf` and do not set it in the application code.
[`amqplib`](https://github.com/amqp-node/amqplib/) is a popular client library that has been using
a low `frame_max` default of `4096`. Its users must [upgrade to a compatible version](https://github.com/amqp-node/amqplib/pull/787)
(starting with `0.10.7`) or explicitly use a higher `frame_max`.
GitHub issue: [#13541](https://github.com/rabbitmq/rabbitmq-server/issues/13541)
* AMQP 1.0 connections that use OAuth 2.0 now can renew their JWT tokens
This allows clients to set a new token proactively before the current one [expires](/docs/oauth2#token-expiration), ensuring uninterrupted connectivity.
If a client does not set a new token before the existing one expires, RabbitMQ will automatically close the AMQP 1.0 connection.
@ -162,6 +186,24 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
GitHub issue: [#13231](https://github.com/rabbitmq/rabbitmq-server/pull/13231)
* Quorum queue checkpoint algorithm was tweaked to take checkpoints more frequently, thus
clearing older segment files more aggressively.
Workloads that use larger messages should continue following [the documented recommendations](https://www.rabbitmq.com/docs/quorum-queues#performance-tuning-large-messages) to
avoid large disk space footprint of segment files.
GitHub issue: [#13622](https://github.com/rabbitmq/rabbitmq-server/pull/13622)
* Previously a node that was a cluster member but then was [reset](https://www.rabbitmq.com/docs/clustering#restarting-with-hostname-changes) could not
rejoin the cluster if the [schema data store](https://www.rabbitmq.com/docs/metadata-store) was Mnesia.
Now the reset node will try to leave the cluster and retry rejoining again.
This was already the case for Khepri.
Contributed by @SimonUnge.
GitHub issue: [#13643](https://github.com/rabbitmq/rabbitmq-server/pull/13643)
* Nodes will now fall back to system CA certificate list (if available) when no CA certificate
is explicitly configured.
@ -171,8 +213,6 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
* AMQP 1.0 and AMQP 0-9-1 connections now dynamically adjust their TCP socket buffers.
GitHub issue: [#13363](https://github.com/rabbitmq/rabbitmq-server/pull/13363)
* Peer discovery resilience improvements.
@ -203,6 +243,14 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
#### Bug Fixes
* Quorum queue leadership transfer could take several seconds longer than necessary to complete.
GitHub issue: [#13190](https://github.com/rabbitmq/rabbitmq-server/pull/13190)
* Quorum queue follow replica's last index could lag behind that of the leader.
GitHub issue: [#13328](https://github.com/rabbitmq/rabbitmq-server/pull/13328)
* AMQP 0-9-1 channel exception generator could not handle entity names (say, queue or stream names)
that contained non-ASCII characters.
@ -356,7 +404,7 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
GitHub issue: [#12720](https://github.com/rabbitmq/rabbitmq-server/pull/12720)
### Management UI
### Management Plugin
#### Breaking Changes and Deprecations
@ -415,6 +463,30 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
GitHub issues: [#13545](https://github.com/rabbitmq/rabbitmq-server/pull/13545), [#3478](https://github.com/rabbitmq/rabbitmq-server/issues/3478)
* New health check commands help detect quorum queues without an elected leader.
```
# verifies all quorum queues across all virtual hosts
GET /health/checks/quorum-queues-without-elected-leaders/all-vhosts/
```
```
# verifies all quorum queues in the given virtual host
GET /health/checks/quorum-queues-without-elected-leaders/vhost/{vhost}
```
```
# verifies a subset of quorum queue that match the pattern across all virtual hosts
GET /health/checks/quorum-queues-without-elected-leaders/all-vhosts/pattern/{pattern}
```
```
# verifies a subset of quorum queue that match the pattern in the given virtual host
GET /health/checks/quorum-queues-without-elected-leaders/vhost/{vhost}/pattern/{pattern}
```
Note that the values in the path must be percent-encoded, including the pattern.
* Web app tab title now changes depending on the selected top-level tab.
GitHub issue: [#13512](https://github.com/rabbitmq/rabbitmq-server/pull/13512)
@ -438,6 +510,29 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
GitHub issue: [#12818](https://github.com/rabbitmq/rabbitmq-server/pull/12818)
### Stream Plugin
#### Enhancements
* Stream replication connections now can be configured to use IPv6 using `advanced.config`:
```erl
[
{osiris, [
{replica_ip_address_family, inet6}
]}
].
```
#### Bug Fixes
* When a connection of one or more consumers in a [Single Active Consumer](https://www.rabbitmq.com/docs/streams#single-active-consumer) group failed,
the group could try to activate (promote) one of the consumers are are no longer online. In practical terms
this means that other consumers were not getting any deliveries.
GitHub issue: [#13657](https://github.com/rabbitmq/rabbitmq-server/pull/13657)
### OAuth 2 AuthN and AuthZ Plugin
#### Breaking Changes and Deprecations
@ -483,6 +578,15 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
GitHub issue: [#12598](https://github.com/rabbitmq/rabbitmq-server/issues/12598)
### LDAP Plugin
#### Enhancements
* The `in_group_nested` query now uses case-insensitive matching, which is more typical of the LDAP tooling.
GitHub issue: [#13629](https://github.com/rabbitmq/rabbitmq-server/pull/13629)
### Federation Plugin
#### Enhancements
@ -491,9 +595,21 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
GitHub issue: [#13115](https://github.com/rabbitmq/rabbitmq-server/pull/13115)
#### Bug Fixes
* Queue federation could cause a deadlock in a quorum queue replica process.
GitHub issue: [#12713](https://github.com/rabbitmq/rabbitmq-server/pull/12713)
### Shovel Plugin
#### Enhancements
* New Shovel metric: the number of forwarded messages.
GitHub issue: [#13626](https://github.com/rabbitmq/rabbitmq-server/pull/13626)
#### Bug Fixes
* AMQP 0-9-1 channel exception generator could not handle entity names (say, queue or stream names)
@ -600,11 +716,12 @@ This section can be incomplete and will be expanded as 4.1 approaches its releas
### Dependency Changes
* `ra` was upgraded to [`2.16.3`](https://github.com/rabbitmq/ra/releases)
* `ra` was upgraded to [`2.16.6`](https://github.com/rabbitmq/ra/releases)
* `osiris` was upgraded to [`1.8.6`](https://github.com/rabbitmq/osiris/releases)
* `observer_cli` was upgraded to [`1.8.2`](https://github.com/zhongwencool/observer_cli/releases)
* `eetcd` was upgraded to [`0.5.0`](https://github.com/zhongwencool/eetcd/releases)
* `gun` was upgraded to [`2.1.0`](https://github.com/ninenines/gun/releases)
* `credentials_obfuscation` was upgraded to [`3.5.0`](https://github.com/rabbitmq/credentials-obfuscation/releases)
## Source Code Archives