4.2.0 release notes updates

This commit is contained in:
Michael Klishin 2025-09-24 21:10:39 -04:00
parent 7236131f48
commit 8b4a3f6521
No known key found for this signature in database
GPG Key ID: 16AB14D00D613900
1 changed files with 107 additions and 2 deletions

View File

@ -74,10 +74,10 @@ Pull Request: [#14474](https://github.com/rabbitmq/rabbitmq-server/pull/14474)
[Blue-Green Deployment migration from RabbitMQ 3.13.x](https://www.rabbitmq.com/blog/2025/07/29/latest-benefits-of-rmq-and-migrating-to-qq-along-the-way)
to 4.2.0 is now easier to automate thanks to a new set of commands provided by [`rabbitmqadmin` v2](https://www.rabbitmq.com/docs/management-cli).
### Incoming and Outgoing Message Interceptors for Native Protocols
### Incoming and Outgoing Message Interceptors for Native Protocols (AMQP 1.0, AMQP 0-9-1, MQTTv3, MQTTv5)
Incoming and outgoing messages can now be intercepted on the broker.
This works for AMQP 1.0, AMQP 0.9.1, and MQTT.
This works for AMQP 1.0, AMQP 0.9.1, MQTTv3, and MQTTv5.
What the interceptor does is entirely up to its implementation, for example it can validate message metadata, add annotations, or perform arbitrary side effects.
Custom interceptors can be developed and integrated via [plugins](https://www.rabbitmq.com/docs/next/plugins).
@ -220,6 +220,25 @@ This section is **incomplete** and will be expanded as 4.2 approaches its releas
#### Bug Fixes
* Classic queues could run into a rare message store exception that resuulted in
a loss of a few messages.
Special kudos to the contributors who have spent a very significant amount of time
reproducing and debugging the issue: @lhoguin @lukebakken @trvrnrth @gomoripeti
GitHub issues: [#14181](https://github.com/rabbitmq/rabbitmq-server/discussions/14181), [#14576](https://github.com/rabbitmq/rabbitmq-server/pull/14576)
* Messages routed to quorum queues during or immediately before a network partition,
in some cases were not re-republished internally in certain cases.
GitHub issue: [#14589](https://github.com/rabbitmq/rabbitmq-server/pull/14589)
* Quorum queues with disabled [poison message handling](https://www.rabbitmq.com/docs/quorum-queues#poison-message-handling)
(an unlimited number of redeliveries, which is **not** a recommended practice) could accumulate
a significant number of Raft log segment files.
GitHub issues: [#14202](https://github.com/rabbitmq/rabbitmq-server/issues/14202), [#14458](https://github.com/rabbitmq/rabbitmq-server/pull/14458)
* `default_password`, `ssl_options.password` now can tell between a generated random password
value and an [encrypted value](https://www.rabbitmq.com/docs/configure#configuration-encryption) better.
@ -235,6 +254,12 @@ This section is **incomplete** and will be expanded as 4.2 approaches its releas
### Stream Plugin
#### Enhancements
* Consuming from a stream now uses fewer system calls and therefore is more efficient.
GitHub issues: [#14189](https://github.com/rabbitmq/rabbitmq-server/pull/14189), [rabbitmq/osiris#192](https://github.com/rabbitmq/osiris/pull/192)
#### Bug Fixes
* Stream client connections that authenticate using a JWT token (OAuth 2) have
@ -247,10 +272,90 @@ This section is **incomplete** and will be expanded as 4.2 approaches its releas
GitHub issues: [#14403](https://github.com/rabbitmq/rabbitmq-server/pull/14403), [#14406](https://github.com/rabbitmq/rabbitmq-server/pull/14406)
### CLI Tools
#### Enhancements
* `rabbitmq-diagnostics ` is a new command that provides a message size distribution.
Use it to get an estimate of the size of the messages flowing through the cluster.
GitHub issue: [#14560](https://github.com/rabbitmq/rabbitmq-server/pull/14560)
### Management Plugin
#### Enhancements
* Users now can be protected from deletion or modification over the HTTP API.
To protect a user, [tag it](https://www.rabbitmq.com/docs/access-control#user-tags) with `protected`:
```shell
rabbitmqctl set_user_tags "a-user" "protected"
```
To lift the protection, remove the tag using `rabbitmqctl set_tags` or delete the user via `rabbitmqctl delete_user`
re-create it with a different set of tags.
GitHub issues: [#14282](https://github.com/rabbitmq/rabbitmq-server/discussions/14282), [#14545](https://github.com/rabbitmq/rabbitmq-server/pull/14545)
### Shovel Plugin
#### Enhancements
* Shovels now support a new "protocol" called `local`.
In addition to AMQP 0-9-1 and AMQP 1.0, Shovels
now support a new "protocol" option called `local`.
These specialized shovels are internally based on AMQP 1.0 but instead of
separate TCP connections, use the intra-cluster connections
between cluster nodes and the internal API for consumption, publishing
and AMQP 1.0 credit flow.
Such shovels can only be used for consuming and publishing
within the same cluster, not across clusters, but can offer
higher throughput and use fewer resources per connections
than their AMQP 0-9-1 and AMQP 1.0 counterparts.
#### Bug Fixes
* Prometheus metric collector failed with an exception when the scraper endpoint
was hit when one or more shovels were still starting.
### AWS Peer Discovery Plugin
####
* The plugin implicitly depended on ordering of `` and `` EC2 API response fields,.
which could result in obscure cluster formation issues.
GitHub issue: [#14557](https://github.com/rabbitmq/rabbitmq-server/pull/14557)
### Web MQTT Plugin
#### Enhancements
* HTTP/2 is enabled for WebSocket connections by default.
GitHub issue: [#14500](https://github.com/rabbitmq/rabbitmq-server/pull/14500)
### Web STOMP Plugin
#### Enhancements
* HTTP/2 is enabled for WebSocket connections by default.
GitHub issue: [#14500](https://github.com/rabbitmq/rabbitmq-server/pull/14500)
### Dependency Changes
* `ra` was upgraded to [`2.17.1`](https://github.com/rabbitmq/ra/releases)
* `osiris` was upgraded to [`1.10.0`](https://github.com/rabbitmq/osiris/releases)
* `khepri` was upgraded to [`0.17.2`](https://github.com/rabbitmq/khepri/releases)
* `khepri_mnesia_migration` was upgraded to [`0.8.0`](https://github.com/rabbitmq/khepri_mnesia_migration/releases)
* `cuttlefish` was upgraded to [`3.5.0`](https://github.com/kyorai/cuttlefish/releases)