5.9 KiB
RabbitMQ 4.3.0
RabbitMQ 4.3.0 is a new feature release.
Breaking Changes and Compatibility Notes
Classic Queues v1 Storage (CQv1) is Removed
This release removes the original classic queue storage implementation these days
known as CQv1. A 2nd generation implementation called CQv2 has been adopted
as the default starting with 4.2.0.
This means that attemptes to declare a queue using the following optional queue arguments will fail:
x-queue-modeset to any valuex-queue-versionset to1
Existing classic queues upgraded to CQv2 during an earlier upgrade to 4.2.x will continue
operating as usual.
Release Highlights
TBD
Upgrading to 4.3.0
Documentation guides on upgrades
See the Upgrading guide for documentation on upgrades and GitHub releases for release notes of individual releases.
This release series supports upgrades from 4.2.x. Upgrades from earlier series are not supported:
users must upgrade to the latest available 4.2.x patch release before upgrading to 4.3.0.
New Required Feature Flags
All feature flags introduced in 4.2.0 and earlier are required, including the following:
rabbitmq_4.2.0rabbitmq_4.1.0rabbitmq_4.0.0khepri_dbquorum_queue_non_votersmessage_containers_deaths_v2
Enable all required feature flags before upgrading to 4.3.0.
If your RabbitMQ cluster had plugin rabbitmq_amqp1_0 enabled in RabbitMQ 3.13.x (and your cluster still serves AMQP 1.0 client connections in 4.x), your cluster should do at least one rolling update after enabling feature flag rabbitmq_4.0.0 but before upgrading to 4.3.0.
Deprecated Features
In 4.3.0 the deprecation phase of the following features advanced from permitted_by_default to denied_by_default:
amqp_filter_set_bug
Mixed version cluster compatibility
RabbitMQ 4.3.0 nodes can run alongside 4.2.x.
Mixed version clusters are a mechanism that allows rolling upgrade and are not meant to be run for extended periods of time (no more than a few hours).
Recommended Post-upgrade Procedures
This version does not require any additional post-upgrade procedures compared to other versions.
Changes Worth Mentioning
Core Server
Bug Fixes
-
Quorum queue at-most-once dead lettering for the overflow behaviour
drop-headnow happens in the correct order.GitHub issue: #14926
-
Feature flag state in the registry and on disk were not consistent for a period of time during node boot.
GitHub issue: #14943
Stream Plugin
Bug Fixes
-
stream.read_aheadis a new setting that controls how much data is prefetched from disk for stream reads (consumption).GitHub issue: #14948/
-
Stream deletion is now more resilient and can handle certain mid-deletion failure scenarios.
GitHub issue: #14852
Grafana Dashboards
Enhancements
- The dashboards were updated for the most recent RabbitMQ release series.
Management Plugin
Enhancements
-
GET /api/queues/{vhost}requests no longer perform unnecessary virtual host permission checks and log less (atdebuglevel) as a result.GitHub issue: #14923
Shovel Plugin
Bug Fixes
-
Improved target node resource alarm handling for AMQP 1.0 and local shovels.
GitHub issue: #14886
-
Local shovels could run into an exception that would cause a shovel restart.
GitHub issue: #14872
-
AMQP 1.0 shovels ignored the
saslURI parameter.GitHub issue: #14867
OAuth 2 Plugin
Bug Fixes
-
A usability improvement allows the plugin to automatically load the trusted system x.509 (TLS) certificates.
GitHub issue: #14927
LDAP Plugin
Enhancements
-
LDAP queries, including multi-line ones, now can be specified in
rabbitmq.conf.GitHub issue: #14868
Bug Fixes
-
A usability improvement allows the plugin to automatically load the trusted system certificates when the user only enables TLS for the LDAP client but does not configure any other settings.
GitHub issue: #14937
HTTP Auth Backend Plugin
Enhancements
-
The HTTP Auth Backend can now optionally provide a custom authorization denial reason to AMQP clients.
To opt in, return
deny <Reason>(instead of onlydeny) in the HTTP response body of your HTTP auth backend and set the following in yourrabbitmq.conffile:
auth_http.authorization_failure_disclosure = true
See the README for more information.
GitHub issue: #14641
Tracing Plugin
Bug Fixes
-
Trace file downloads now sets charset to UTF-8 when serving trace files.
GitHub issue: #13952
Dependency Changes
cuttlefishwas upgraded to3.6.0
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-4.3.0.tar.xz
instead of the source tarball produced by GitHub.