RabbitMQ 4.0.6
is a maintenance release in the 4.0.x
release series.
Starting June 1st, 2024, community support for this series will only be provided to regularly contributing users and those
who hold a valid commercial support license.
It is strongly recommended that you read 4.0 release notes
in detail if upgrading from a version prior to 4.0.0
.
Minimum Supported Erlang Version
This release requires Erlang 26 and supports Erlang versions up to 27.2.x
.
RabbitMQ and Erlang/OTP Compatibility Matrix has more details on
Erlang version requirements for RabbitMQ.
Nodes will fail to start on older Erlang releases.
Changes Worth Mentioning
Release notes can be found on GitHub at rabbitmq-server/release-notes.
Core Broker
Bug Fixes
-
When a quorum queue leader has changed, followers were not always notified of
unapplied [for/by them] log commands.GitHub issue: #13095
-
Default cluster formation timeout with Khepri now matches that of Mnesia (5 minutes by default).
Discovered and reported by @evolvedlight.
GitHub issue: #13195
-
When stream consumer was cancelled, an internal event was not emitted.
-
Stream consumer metrics were not cleared when its respective connection was closed.
GitHub issue: #13086
-
Quorum queues could return a list of members (replicas) with duplicates in some cases.
GitHub issue: #13168
-
Classic queues with priorities could run into an exception.
GitHub issue: #13088
-
Corrected a log message.
GitHub issue: #13155
Enhancements
-
A new mechanism for protecting a virtual host from deletion using metadata.
CLI Tools
Bug Fixes
-
rabbitmqctl import_definitions
hanged when definitions were provided via the standard input
instead of a file.GitHub issue: #13157
Enhancements
-
rabbitmqadmin
v2 has matured enough to recommend
it over the original version of the tool -
rabbitmq-diagnostics
CLI documentation was improved to clarify that all certificates
discovered will be checked for expiration.GitHub issue: #13038
-
New health checks for metadata store initialization:
rabbitmq-diagnostics check_if_metadata_store_is_initialized
rabbitmq-diagnostics check_if_metadata_store_is_initialized_with_data
GitHub issue: #13169
Prometheus Plugin
Bug Fixes
-
Improved metric description.
GitHub issue: #13178
Management Plugin
Bug Fixes
-
Pagination-related sections of the HTTP API reference were clarified to explain
that the maximum page size cannot exceed 500.GitHub issue: #13042
-
Empty
channel_details
objects are now serialized as empty objects and not empty arrays.GitHub issue: #13091
Enhancements
-
New health checks for metadata store initialization:
- GET
/api/health/checks/metadata-store/initialized
- GET
/api/health/checks/metadata-store/initialized/with-data
GitHub issue: #13169
- GET
Deprecations
-
The original HTTP API One True Health Check™ is now a no-op. A comparable "mega health check"
has long been deprecated in CLI tools and was made a no-op in4.0.0
.This endpoint was using a deprecated feature: a classic non-exclusive transient (non-durable) queue.
See Health Checks for modern focused alternatives.
GitHub issue: #13047
Consul Peer Discovery Plugin
Enhancements
-
cluster_formation.registration.enabled
is a new configuration setting that allows the backend to skip registration.This is useful when Consul is used for peer discovery but a different tool such as Nomad
is used to keep track of the services and their registration, unregistration.Contributed by @frederikbosch.
GitHub issue: #13201
Erlang AMQP 1.0 Client
Bug Fixes
-
Purging an non-existing queue now returns a 404 response.
GitHub issue: #13148
Dependency Changes
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-4.0.6.tar.xz
instead of the source tarball produced by GitHub.