RabbitMQ 4.2.2 is a maintenance release in the 4.2.x release series.
It is strongly recommended that you read 4.2.0 release notes
in detail if upgrading from a version prior to 4.2.0.
Minimum Supported Erlang Version
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 Server
Bug Fixes
-
Fixes a binding deletion-related memory leak in Khepri.
This leak primarily affected systems with high binding churn.
GitHub issue: #15024
-
Corrected a performance regression around metric collection that could have a meaningful impact on quorum queues.
GitHub issue: rabbitmq/seshat#16
-
AMQP 1.0 link error frames did not have settlement set in certain failure scenarios,
namely when attaching a link failed due to a missing source (queue or stream).GitHub issue: #15004
-
AMQP 1.0 clients that publish messages without a body now get a clearer error message.
Messages without a body explicitly violate the AMQP 1.0 specification.GitHub issue: #15048
-
Default operator policy pre-configuration in
rabbitmq.confwere unintentionally missing a key,
default_policies.operator.$id.apply_to, for controlling what objects the policy applies to.GitHub issue: #14988
-
Definition import is now more defensive when importing exchanges.
GitHub issue: #15128
Enhancements
-
More efficient Khepri (metadata store) querying.
GitHub issue: rabbitmq/khepri#349
-
Removed a cool down delay between stream chunk redelivery attempts.
GitHub issue: #14766
-
Stream data directory can now be configured via
rabbitmq.conf.GitHub issue: #15014
-
Stream replication: IP address family (IPv4 or IPv6) can now be configured via
rabbitmq.conf.GitHub issue: #15012
OAuth 2 Plugin
Bug Fixes
-
When multiple resource server IDs are configured, management UI login screen now provides a way to pre-select a specific resource ID
before logging in.As part of this change, when multiple resource server IDs are configured, their order stored internally now reflects
that inrabbitmq.conf.GitHub issue: #15044
Management Plugin
Bug Fixes
-
GET /api/deprecated-features/usedno longer returns an emptystatefield.GitHub issue: #14340
-
Feature flag icons now contrast well when the dark mode is used in the UI.
GitHub issue: #14620
-
Corrected an invalid
apply_tovalue (classic_queueinstead ofclassic_queues)
on the policy declaration form.Declaring a policy "directly" via the HTTP API was not affected.
GitHub issue: #15054
Enhancements
-
Queue declaration form fields were reordered so that the queue type dropdown comes before
the virtual host.GitHub issue: #15017
-
The order of configured OAuth 2 resource servers is now preserved in the management UI.
Additionally, a resource server ID can now be pre-selected during service-provider-initiated logons.GitHub issue: #15044
Prometheus Plugin
Enhancements
-
GET /metrics/per-objectresponses on systems with thousands of objections now takes 20-30% less time.GitHub issue: #15035
-
Prometheus scraping endpoint responses are now streamed instead of being fully buffered before transmission.
This reduces memory peak footprint and improves response times for nodes with a larger number of objects.GitHub issue: #15018
Bug Fixes
-
Fixed a dependency loading issue with
ddskerl(a Prometheus library dependency)
that could causestop_appto fail.GitHub issue: #15027
CLI Tools
Bug Fixes
-
rabbitmq-queues quorum_statuscould run into an exception when a quorum queue member dies before recording any metrics.GitHub issue: #15003
Web MQTT Plugin
Bug Fixes
-
The plugin now supports the
mqttv3.1WebSocket subprotocol in addition tomqtt,
improving compatibility with older MQTT clients.GitHub issue: #15009
AWS Peer Discovery Plugin
Bug Fixes
-
The plugin now uses IPv6 discovery endpoints in IPv6-only environments.
GitHub issue: #14974
Tracing Plugin
Bug Fixes
-
Trace files served via the management UI now include proper UTF-8 charset specification.
GitHub issue: #14970
Trust Store Plugin
Bug Fixes
-
The plugin now merges user-provided TLS options with the options it needs in a safer manner.
GitHub issue: #15116