RabbitMQ 4.3.2 is a maintenance release in the 4.3.x release series.
It is strongly recommended that you read 4.3.0 release notes
in detail if upgrading from a version prior to 4.3.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
-
Enabling the
tie_binding_to_dest_with_keep_while_condfeature flag could fail in some
rare cases.GitHub issue: #16587
-
Users created without a password or a password hash (for example, those that rely on
X.509 certificate-based authentication) over the HTTP API are now stored correctly,
exactly like the users whose password was cleared withrabbitmqctl clear_password. -
Consumer activity status of classic queue consumers was not always correctly updated and reported
when single active consumer was enabled. -
The values of the
x-consumer-timeoutandx-consumer-disconnected-timeoutoptional arguments
are now validated at queue declaration time.GitHub issue: #16557
-
Default queue type (DQT) validation now treats empty strings the same way as a missing value: by falling back.
to the default (classic queues). -
Feature flag operations now avoid unnecessary work: flags that are already enabled on all cluster nodes
are excluded from synchronization, and enabling an empty set of flags is a no-op.GitHub issue: #16497
-
Configuration changes for deprecated features are now
honored when possible.GitHub issue: #16500
Enhancements
-
The per-node channel limit (
channel_max_per_node) is now also enforced for channels opened
on direct Erlang client connections used by the Shovel and Federation plugins, matching the behavior
enforced for "regular" AMQP 0-9-1 clients. -
Modules are now loaded in parallel early on node boot, reducing node startup time.
GitHub issue: #16479
-
Several new
rabbitmq.confkeys now supports encrypted values.GitHub issue: #16632
CLI Tools
Bug Fixes
-
rabbitmqctl set_topic_permissionsnow validates target user and exchange for existence.GitHub issue: #16590
-
rabbitmqctl add_vhostnow validates the provided default queue type value.GitHub issue: #16481
Stream Plugin
Bug Fixes
-
Fixed a frame assembly performance regression in the stream protocol reader.
GitHub issue: #16588
Enhancements
-
Several stream protocol reader optimizations: stream metadata queries now contact cluster nodes concurrently,
subscription lookups use a more efficient data structure, and frame processing short-circuits
when a connection reaches a terminal state.GitHub issue: #16588
Management Plugin
Bug Fixes
-
CORS hardening:
access-control-request-headersvalues are now validated and
a wildcard (*)originheader value is rejected.GitHub issue: #16544
-
Definitions import now limits the size of multipart upload bodies, and definitions export
download filenames are restricted to a safe character set.GitHub issue: #16544
-
HTTP API 500 responses no longer include internal error details in the response body.
GitHub issue: #16544
-
Several HTTP response headers are now consistently lowercase, and a previously missing
content-typeheader was added to certain responses.GitHub issue: #16544
Enhancements
-
A one-time warning is now logged when the HSTS or CSP headers are disabled.
GitHub issue: #16544
-
The timestamp of the oldest message in a stream is now displayed on the stream page.
GitHub issue: #15412
-
The queue list page can now display a "Delayed" message count column, for example, for
quorum queues that have a retry policy configured.GitHub issue: #16639
Prometheus Plugin
Enhancements
-
More plugin configuration keys, such as
prometheus.ssl.password, now support
encrypted values inrabbitmq.conf.
MQTT Plugin
Bug Fixes
-
mqtt.tcp_listen_options.*settings inrabbitmq.confdid not take effect
due to a configuration translation issue.GitHub issue: #16529