RabbitMQ 3.12.2
is a preview of a maintenance release in the 3.12.x
release series.
Please refer to the upgrade section from the 3.12.0 release notes
if upgrading from a version prior to 3.12.0.
This release requires Erlang 25 and supports Erlang versions up to 26.0.x
.
RabbitMQ and Erlang/OTP Compatibility Matrix has more details on
Erlang version requirements for RabbitMQ.
Minimum Supported Erlang Version
As of 3.12.0, RabbitMQ requires Erlang 25. Nodes will fail to start on older Erlang releases.
Users upgrading from 3.11.x (or older releases) on Erlang 25 to 3.12.x on Erlang 26
(both RabbitMQ and Erlang are upgraded at the same time) must consult
the v3.12.0 release notes first.
Changes Worth Mentioning
Release notes can be found on GitHub at rabbitmq-server/release-notes.
Core Server
Enhancements
-
Free disk space monitor on Windows is now more selective in what errors are
logged.GitHub issue: #8837
Bug Fixes
-
Queue recovery on node restart in certain conditions could run into an exception
GitHub issue: #8746
-
file_handle_cache
operations are now safer when handling non-existent keys.GitHub issue: #8784
-
Fixed a potential resource leak in at-least-once dead lettering from quorum queues.
GitHub issue: #8799
CLI Tools
Enhancements
-
A new command,
rabbitmqctl deactivate_free_disk_space_monitoring
, can be used to (temporarily or permanently) disable
free disk space monitoring on a node.To re-activate it, use
rabbitmqctl activate_free_disk_space_monitoring
.GitHub issue: #8801
AMQP 1.0 Plugin
Bug Fixes
-
AMQP 1.0 clients that try to publish in a way that results in the message not being routed
anywhere are now notified with a more sensible settlement status.GitHub issue: #7823
Prometheus Plugin
Enhancements
-
Prometheus scraping API endpoints now support optional authentication.
Contributed by @SimonUnge (AWS).
GitHub issue: #8661
-
The plugin now filters out values that are
undefined
orNaN
, simply excluding
them from the API endpoint response.Previously, if a metric was not computed for any reason (e.g. free disk space monitor
was disabled on the node), its value could end up being rendered asundefined
orNaN
,
two values that Prometheus scrapers cannot handle (for numerical types such as gauges).GitHub issue: #8660
Management Plugin
Bug Fixes
-
It was not possible to close a table column selection pane on
screens that had little vertical space.Contributed by @Antsthebul.
GitHub issue: #8701
STOMP Plugin
Bug Fixes
-
This is a potentially breaking change.
The plugin will now enforce maximum STOMP frame size. Frames larger than that
size will be rejected. The default maximum size is 4 MiB. It can be increased or decreased:# increase maximum supported STOMP frame size to 10 MiB stomp.max_frame_size = 10485760
To reduce it from the default 4 MiB to 2 MiB:
# 2 MiB stomp.max_frame_size = 2097152
GitHub issue: #8802
Shovel Plugin
Bug Fixes
-
Shovel will gracefully stop when its destination (target) does not exist.
Such shovels will then be periodically restarted to retry.Contributed by @markus812498 (CloudAMQP).
GitHub issue: #8697
Web MQTT Plugin
Enhacements
-
It is now possible to opt in to deactivate file handle cache use in the plugin:
web_mqtt.use_file_handle_cache = false
GitHub issue: #8790
Web STOMP Plugin
Enhacements
-
It is now possible to opt in to deactivate file handle cache use in the plugin:
web_stomp.use_file_handle_cache = false
GitHub issue: #8790
Dependency Upgrades
ra
was upgraded to2.6.3
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.12.2.tar.xz
instead of the source tarball produced by GitHub.