rabbitmq-server/release-notes/4.1.1.md

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

171 lines
5.9 KiB
Markdown
Raw Permalink Normal View History

2025-06-05 05:24:01 +08:00
RabbitMQ `4.1.1` is a maintenance release in the `4.1.x` [release series](https://www.rabbitmq.com/release-information).
2025-06-05 05:27:31 +08:00
It is **strongly recommended** that you read [4.1.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.1.0)
2025-06-05 05:24:01 +08:00
in detail if upgrading from a version prior to `4.1.0`.
### Minimum Supported Erlang Version
2025-06-05 20:30:13 +08:00
[RabbitMQ and Erlang/OTP Compatibility Matrix](https://www.rabbitmq.com/docs/which-erlang) has more details on Erlang version requirements for RabbitMQ.
2025-06-05 05:24:01 +08:00
Nodes **will fail to start** on older Erlang releases.
## Changes Worth Mentioning
Release notes can be found on GitHub at [rabbitmq-server/release-notes](https://github.com/rabbitmq/rabbitmq-server/tree/v4.1.x/release-notes).
### Core Server
#### Enhancements
* [Default queue type](https://www.rabbitmq.com/docs/vhosts#default-queue-type) is now injected into virtual host metadata when the virtual host
is created.
This seemingly subtle change elimiantes confusing inconsistencies between different
definition export methods and scenarios.
GitHub issue: [#13854](https://github.com/rabbitmq/rabbitmq-server/pull/13854)
* Empty classic queues init faster after a clean shutdown.
GitHub issue: [#13870](https://github.com/rabbitmq/rabbitmq-server/pull/13870)
#### Bug Fixes
* Classic queue message store compaction could fall behind (not be able to keep up with)
very busy publishers.
GitHub issue: [#13987](https://github.com/rabbitmq/rabbitmq-server/pull/13987)
* Classic queue message store could run into a rare exception
when a message was routed to multiple queues.
GitHub issue: [#13758](https://github.com/rabbitmq/rabbitmq-server/issues/13758)
* Quorum queue commit map operation order was Erlang-version specific,
potentially leading to confusing inconsistencies between replica behaviors.
GitHub issue: [#14025](https://github.com/rabbitmq/rabbitmq-server/pull/14025)
* Quorum queue failed to recover from a rare timeout during cluster formation.
GitHub issue: [#13828](https://github.com/rabbitmq/rabbitmq-server/issues/13828)
* RabbitMQ could fail to log certain client connection errors for TLS-enabled
listeners.
GitHub issue: [#13985](https://github.com/rabbitmq/rabbitmq-server/pull/13985)
2025-06-05 20:30:13 +08:00
* Private key password could appear in certain exceptions at (failed) node boot time.
GitHub issue: [#13999](https://github.com/rabbitmq/rabbitmq-server/pull/13999), [#14028](https://github.com/rabbitmq/rabbitmq-server/pull/14028)
### MQTT Plugin
#### Bug Fixes
* When an MQTTv5 client that had a QoS 0 subscription is closed, the
transient queue that was backing it will now be deleted.
GitHub issue: [#14006](https://github.com/rabbitmq/rabbitmq-server/pull/14006)
2025-06-05 05:24:01 +08:00
### Stream Plugin
#### Bug Fixes
* Stream producer could run into an exception (`accept_chunk_out_of_order`) when a publishing filter
was enabled.
GitHub issue: [#13897](https://github.com/rabbitmq/rabbitmq-server/issues/13897)
* Stream [SAC](https://www.rabbitmq.com/docs/streams#single-active-consumer) coordinator failed when a super stream consumer was added next to
a SAC consumer.
GitHub issue: [#13835](https://github.com/rabbitmq/rabbitmq-server/issues/13835)
### CLI Tools
#### Enhancements
* `rabbitmq-queues force_checkpoint [--vhost-pattern <pattern>] [--queue-pattern <pattern>]`
is a new command that forces a group of quorum queues to take a checkpoint and
delete its on disk segment files, where possible.
GitHub issue: [#13938](https://github.com/rabbitmq/rabbitmq-server/pull/13938)
### Management Plugin
#### Enhancements
* A separate chain for authentication and authorization backends now can be used
used exclusively for the HTTP API and the management UI.
GitHub issue: [#13819](https://github.com/rabbitmq/rabbitmq-server/pull/13819)
* Reduced memory footprint of the plugin for certain workloads.
GitHub issue: [#13900](https://github.com/rabbitmq/rabbitmq-server/pull/13900)
* When UI session expires, the user is redirected to the login page.
GitHub issue: [#13975](https://github.com/rabbitmq/rabbitmq-server/pull/13975)
2025-06-05 20:46:33 +08:00
* `GET /api/health/checks/below-node-connection-limit` is a new health check
2025-06-05 05:24:01 +08:00
that responds a 200 OK if the target node has fewer connections to the AMQP
and AMQPS ports than the configured maximum.
GitHub issue: [#13782](https://github.com/rabbitmq/rabbitmq-server/issues/13782)
* `GET /api/health/checks/ready-to-serve-clients` is a new health check
that responds a 200 OK if the target node is ready to serve clients
(booted, not above the connection limit, not in [maintenance mode](https://www.rabbitmq.com/docs/upgrade#maintenance-mode)).
GitHub issue: [#13782](https://github.com/rabbitmq/rabbitmq-server/issues/13782)
* Protocol listener health check now supports comma-separated lists of
protocol names.
GitHub issue: [#13874](https://github.com/rabbitmq/rabbitmq-server/pull/13874)
* New page for declaring super streams (partitioned streams).
GitHub issue: [#13852](https://github.com/rabbitmq/rabbitmq-server/pull/13852)
### OAuth 2 Plugin
#### Enhancements
* Select variables now can be used in scopes, for example: `"rabbitmq.write:*/x-{vhost}-*/u-{sub}-*"`
GitHub issue: [#14008](https://github.com/rabbitmq/rabbitmq-server/pull/14008)
### Shovel Plugin
#### Bug Fixes
* Shovels could fail to convert messages published by an AMQP 0-9-1
client to AMQP 1.0 if the headers had a complex structure.
GitHub issue: [#13801](https://github.com/rabbitmq/rabbitmq-server/pull/13801)
### Dependency Changes
* `ra` was updated to [`2.16.9`](https://github.com/rabbitmq/ra/releases)
* `osiris` was updated to [`1.8.8`](https://github.com/rabbitmq/osiris/releases)
## Source Code Archives
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-4.1.1.tar.xz`
instead of the source tarball produced by GitHub.