RabbitMQ 4.2.3
RabbitMQ 4.2.3 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
-
Default queue type handling is now more defensive, avoiding an issue where attempts to declare a queue in a virtual host without any DQT set would result in a
PRECONDITION_FAILEDexception instead of falling back to the classic queue type for DQT. -
Classic queue recovery on Windows could fail due to an OS-specific file locking behavior. Such failures are now retried in two more contexts.
GitHub issue: #15136
-
Certain exchange update operations in Khepri could cause severe contention.
GitHub issue: #15236
-
Topic exchange binding deletions could leave orphaned trie edges in the Khepri projection, potentially causing a slowly creeping memory leak.
Enhancements
-
Topic binding deletion in Khepri is now significantly more efficient.
Deleting 100k topic bindings could previously take up to 30 minutes and now takes some 3-4 seconds.
GitHub issue: #15214
-
It is now possible to
rabbitmq-queues shrinkonly a subset of quorum queues on a node using a pattern (a regex).GitHub issue: #15021
-
CRL (Certificate Revocation List) cache can now be configured via
rabbitmq.conf.
Federation Plugins
Bug Fixes
-
Restored exchange federation compatibility in mixed 4.2.x/4.1.x multi-node clusters.
GitHub issue: #15252
Enhancements
-
Federation links and their connections are now stopped in parallel.
This significantly improves shutdown time for nodes with many (into thousands) federation links.
GitHub issue: #15271
-
Federation links no longer restart during plugin or node shutdown.
For nodes with hundreds or thousands of federation links, link recovery could significantly delay node shutdown.
GitHub issue: #15258
-
Federation links use AMQP 0-9-1 connections to remote nodes (clusters).
Previously the timeout used when those connections are closed was fixed to 10 seconds. Now it is configurable via
rabbitmq.confin milliseconds:# 3 seconds for exchange federation federation.exchanges.connection_close_timeout = 3000 # 3 seconds for queue federation federation.queues.connection_close_timeout = 3000The maximum supported value is 5 seconds (5000 ms).
GitHub issue: #15268
CLI Tools
Enhancements
-
rabbitmq-streams growandrabbitmq-streams shrinkare new commands that mirror existingrabbitmq-queues growandrabbitmq-queues shrinkfunctionality for streams.GitHub issue: #15189
MQTT Plugin
Enhancements
-
A new configuration option,
mqtt.disconnect_on_unauthorized, controls whether MQTT connections are closed upon authorization failures (for example, an attempt to consume from a topic the client has no permission for).When set to
false, the connection remains open and an appropriate protocol-level response is sent to the client instead.The default value is
true, same as RabbitMQ MQTT implementation's historic behavior.GitHub issue: #15201
Management Plugin
Bug Fixes
-
OAuth 2:
preferred_auth_mechanismandstrict_auth_mechanismare no longer validated when not used (configured).GitHub issue: #15148
etcd Peer Discovery Plugin
Bug Fixes
-
When credentials were provided, the password was double-encrypted, resulting in etcd authentication failures.
GitHub issue: #15191
HTTP Auth Backend Plugin
Bug Fixes
-
The
customize_hostname_checkTLS option was unintentionally ignored.GitHub issue: #15184