Releases: rabbitmq/rabbitmq-server
RabbitMQ 3.11.21
RabbitMQ 3.11.21
is a maintenance release in the 3.11.x
release series.
This release series goes out of community support on Dec 31, 2023.
Please refer to the upgrade section from v3.11.0 release notes
if upgrading from a version prior to 3.11.0.
This release requires Erlang 25 and supports Erlang versions up to 25.3.x
.
RabbitMQ and Erlang/OTP Compatibility Matrix has more details on
Erlang version requirements for RabbitMQ.
Minimum Supported Erlang Version
As of 3.11.0, RabbitMQ requires Erlang 25. Nodes will fail to start on older Erlang releases.
Erlang 25 as our new baseline means much improved performance on ARM64 architectures, profiling with flame graphs
across all architectures, and the most recent TLS 1.3 implementation available to all RabbitMQ 3.11 users.
Changes Worth Mentioning
Release notes can be found on GitHub at rabbitmq-server/release-notes.
Core Server
Bug Fixes
-
Certain diagnostics operations during rolling upgrades from 3.10 to 3.11 could fail
if thelistener_records_in_ets
feature flag was enabled in the middle of the upgrade.Contributed by @gomoripeti (CloudAMQP).
GitHub issue: #8984
-
On Windows, PowerShell will no longer be used as a fallback for
handle.exe
for computing how many file and socket handles a node uses.If a user does not have
handle.exe`` installed in the
PATH`` of their Windows system,
a message will be logged once, and then the total handles being used will be set to 0.PowerShell ended up being a CPU-intensive alternative that's not worth the gains
for many installations.GitHub issue: #8700
-
Node maintenance state was not replicated to all nodes, even though it was accessible
from any node (and for any node).GitHub issue: #9011
CLI Tools
Enhacements
-
Some warnings were emitted even when
--formatter
was set tojson
.GitHub issue: #8912
HTTP AuthN/AuthZ Backend Plugin
Bug Fixes
-
AMQP 1.0 client connections were refused with this plugin.
GitHub issue: #9043
LDAP AuthN/AuthZ Backend Plugin
Bug Fixes
-
AMQP 1.0 client connections were refused with this plugin.
GitHub issue: #9043
Dependency Upgrades
osiris
was upgraded to1.6.2
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.11.21.tar.xz
instead of the source tarball produced by GitHub.
RabbitMQ 3.13.0-beta.4
RabbitMQ 3.13.0-beta.4
RabbitMQ 3.13.0-beta.4
is a preview of a new feature release.
Highlights
This release includes several new features, optimizations, and graduates (makes mandatory) a number of feature flags.
The user-facing areas that have seen the biggest improvements in this release are
- Support for consumer-side stream filtering
- MQTTv5 support
- Improved classic non-mirrored queue performance with message sizes larger than
4 KiB (or a different customized CQ index embedding threshold) - Classic queues use version 2 of the storage implementation (CQv2).
This should significantly improve performance of non-mirrored classic queues
This release also features many internal API improvements in preparation to 4.0
with Khepri.
See Compatibility Notes below to learn about breaking or potentially breaking changes in this release.
Release Artifacts
RabbitMQ preview releases are distributed via GitHub.
Community Docker image is another installation option
for previews. It is updated with a delay (usually a few days).
Erlang/OTP Compatibility Notes
This release requires Erlang 26.0 or later.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 26.x.
Upgrading to 3.13
Documentation guides on upgrades
See the Upgrading guide for documentation on upgrades and RabbitMQ change log
for release notes of other releases.
Required Feature Flags
TBD
Mixed version cluster compatibility
RabbitMQ 3.13.0 nodes can run alongside 3.12.x
nodes. 3.12.x
-specific features can only be made available when all nodes in the cluster
upgrade to 3.13.0 or any other patch release in the new series.
While operating in mixed version mode, some aspects of the system may not behave as expected. The list of known behavior changes is covered below.
Once all nodes are upgraded to 3.13.0, these irregularities will go away.
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).
Compatibility Notes
TBD
Minimum Supported Erlang Version
Starting with this release, RabbitMQ requires Erlang 26.0 or later versions. Nodes will fail to start
on older Erlang releases.
Client Library Compatibility
Client libraries that were compatible with RabbitMQ 3.12.x
will be compatible with 3.13.0
.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Core Server
Enhancements
-
Target quorum queue replica state is now continuously reconciled.
When the number of online replicas of a quorum queue goes below (or above) its target,
new replicas will be automatically placed if enough cluster nodes are available.
This is a more automatic version of how quorum queue replicas have originally been grown.For automatic shrinking of queue replicas, the user must opt in.
Contributed by @SimonUnge (AWS).
GitHub issue: #8218
-
Reduced memory footprint, improved memory use predictability and throughput of classic queues (version 2, or CQv2).
This particularly benefits classic queues with longer backlogs.Classic queue v2 (CQv2) storage implementation is now the default. It is possible to switch
the default back to CQv1 usingrabbitmq.conf
:# uses CQv1 by default classic_queue.default_version = 1
Individual queues can be declared by passing
x-queue-version
argument and/or through aqueue-version
policy.GitHub issue: #8308
-
Non-mirrored classic queues: optimizations of storage for larger (greater than 4 kiB) messages.
-
A subsystem for marking features as deprecated.
GitHub issue: #7390
-
Plugins now can register custom queue types. This means that a plugin now can provide
a custom queue type.Contributed by @luos (Erlang Solutions).
Bug Fixes
This release includes all bug fixes shipped in the 3.12.x
series.
-
Feature flag discovery on a newly added node could discover an incomplete inventory of feature flags.
GitHub issue: #8477
-
Feature flag discovery operations will now be retried multiple times in case of network failures.
GitHub issue: #8491
-
The state of node maintenance status across the cluster is now replicated. It previously was accessible
to all nodes but not replicated.GitHub issue: #9005
Stream Plugin
Enhancements
-
Support for (consumer) stream filtering.
This allows consumers that are only interested in a subset of data in a stream to receive
less data. Note that false positives are possible, so this feature should be accompanied by
client library or application-level filtering.GitHub issue: #8207
MQTT Plugin
Enhancements
-
Support for MQTTv5 (with limitations).
-
Negative message acknowledgements are now propagated to MQTTv5 clients.
GitHub issue: #9034
-
Potential incompatibility:
mqtt.subscription_ttl
configuration setting is now deprecated in favor of
mqtt.max_session_expiry_interval_seconds
that targets MQTTv5.GitHub issue: #8846
AMQP 1.0 Plugin
Bug Fixes
-
During AMQP 1.0 to AMQP 0-9-1 conversion, the Correlation ID message property is now stored as
x-correlation-id
(instead ofx-correlation
) for values longer than 255 bytes.This is a potentially breaking change.
GitHub issue: #8680
Dependency Changes
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.13.0.tar.xz
instead of the source tarball produced by GitHub.
RabbitMQ 3.13.0-beta.3
RabbitMQ 3.13.0-beta.3
RabbitMQ 3.13.0-beta.3
is a preview of a new feature release.
Highlights
This release includes several new features, optimizations, and graduates (makes mandatory) a number of feature flags.
The user-facing areas that have seen the biggest improvements in this release are
- Support for consumer-side stream filtering
- MQTTv5 support
- Improved classic non-mirrored queue performance with message sizes larger than
4 KiB (or a different customized CQ index embedding threshold) - Classic queues use version 2 of the storage implementation (CQv2).
This should significantly improve performance of non-mirrored classic queues
This release also features many internal API improvements in preparation to 4.0
with Khepri.
See Compatibility Notes below to learn about breaking or potentially breaking changes in this release.
Release Artifacts
RabbitMQ preview releases are distributed via GitHub.
Community Docker image is another installation option
for previews. It is updated with a delay (usually a few days).
Erlang/OTP Compatibility Notes
This release requires Erlang 26.0 or later.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 26.x.
Upgrading to 3.13
Documentation guides on upgrades
See the Upgrading guide for documentation on upgrades and RabbitMQ change log
for release notes of other releases.
Required Feature Flags
TBD
Mixed version cluster compatibility
RabbitMQ 3.13.0 nodes can run alongside 3.12.x
nodes. 3.12.x
-specific features can only be made available when all nodes in the cluster
upgrade to 3.13.0 or any other patch release in the new series.
While operating in mixed version mode, some aspects of the system may not behave as expected. The list of known behavior changes is covered below.
Once all nodes are upgraded to 3.13.0, these irregularities will go away.
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).
Compatibility Notes
TBD
Minimum Supported Erlang Version
Starting with this release, RabbitMQ requires Erlang 26.0 or later versions. Nodes will fail to start
on older Erlang releases.
Client Library Compatibility
Client libraries that were compatible with RabbitMQ 3.12.x
will be compatible with 3.13.0
.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Core Server
Enhancements
-
Target quorum queue replica state is now continuously reconciled.
When the number of online replicas of a quorum queue goes below (or above) its target,
new replicas will be automatically placed if enough cluster nodes are available.
This is a more automatic version of how quorum queue replicas have originally been grown.For automatic shrinking of queue replicas, the user must opt in.
Contributed by @SimonUnge (AWS).
GitHub issue: #8218
-
Reduced memory footprint, improved memory use predictability and throughput of classic queues (version 2, or CQv2).
This particularly benefits classic queues with longer backlogs.Classic queue v2 (CQv2) storage implementation is now the default. It is possible to switch
the default back to CQv1 usingrabbitmq.conf
:# uses CQv1 by default classic_queue.default_version = 1
Individual queues can be declared by passing
x-queue-version
argument and/or through aqueue-version
policy.GitHub issue: #8308
-
Non-mirrored classic queues: optimizations of storage for larger (greater than 4 kiB) messages.
-
A subsystem for marking features as deprecated.
GitHub issue: #7390
-
Plugins now can register custom queue types. This means that a plugin now ca provide
a custom queue type.Contributed by @luos (Erlang Solutions).
Bug Fixes
This release includes all bug fixes shipped in the 3.12.x
series.
-
Feature flag discovery on a newly added node could discover an incomplete inventory of feature flags.
GitHub issue: #8477
-
Feature flag discovery operations will now be retried multiple times in case of network failures.
GitHub issue: #8491
Stream Plugin
Enhancements
-
Support for (consumer) stream filtering.
This allows consumers that are only interested in a subset of data in a stream to receive
less data. Note that false positives are possible, so this feature should be accompanied by
client library or application-level filtering.GitHub issue: #8207
MQTT Plugin
Enhancements
-
Support for MQTTv5 (with limitations).
-
Potential incompatibility:
mqtt.subscription_ttl
configuration setting is now deprecated in favor of
mqtt.max_session_expiry_interval_seconds
that targets MQTTv5.GitHub issue: #8846
AMQP 1.0 Plugin
Bug Fixes
-
During AMQP 1.0 to AMQP 0-9-1 conversion, the Correlation ID message property is now stored as
x-correlation-id
(instead ofx-correlation
) for values longer than 255 bytes.This is a potentially breaking change.
GitHub issue: #8680
Dependency Changes
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.13.0.tar.xz
instead of the source tarball produced by GitHub.
RabbitMQ 3.10.25
RabbitMQ 3.10.25
is a maintenance release in the 3.10.x
release series.
This series reaches its end of community support on July 31st, 2023.
Please refer to the upgrade section from v3.10.0 release notes
if upgrading from a version prior to 3.10.0.
This release requires Erlang 24.3 and supports Erlang 25.
RabbitMQ and Erlang/OTP Compatibility Matrix has more details on
Erlang version requirements for RabbitMQ.
Minimum Supported Erlang Version
Erlang versions older than 24.3 have reached end of support.
This release of RabbitMQ requires Erlang 24.3.4.8
or later versions. Nodes will fail to start on older Erlang releases.
Erlang 25.3 is recommended: it offers much improved performance on ARM64 architectures, profiling with flame graphs
across all architectures, and the most recent TLS 1.3 implementation.
Changes Worth Mentioning
Release notes can be found on GitHub at rabbitmq-server/release-notes.
Core Server
Bug Fixes
-
Declaration of a classic queue could run into an exception.
GitHub issue: #8629
Stream Plugin
Bug Fixes
-
Stream client connections that authenticated using x.509 certificates
failed.GitHub issue: #8488
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
OAuth 2 Plugin
Enhancements
-
oauth2
is now an accepted alias for the OAuth 2 authentication and authorization backend:auth_backends.1 = oauth2
Previously the only option for OAuth 2 was using a full module name,
rabbit_auth_backend_oauth2
.GitHub issue: #8513
Dependency Upgrades
None in this release.
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.10.25.tar.xz
instead of the source tarball produced by GitHub.
RabbitMQ 3.12.2
RabbitMQ 3.12.2
is 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: #8740
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.
RabbitMQ 3.11.20
RabbitMQ 3.11.20
is a maintenance release in the 3.11.x
release series.
Please refer to the upgrade section from v3.11.0 release notes
if upgrading from a version prior to 3.11.0.
This release requires Erlang 25 and supports Erlang versions up to 25.3.x
.
RabbitMQ and Erlang/OTP Compatibility Matrix has more details on
Erlang version requirements for RabbitMQ.
Minimum Supported Erlang Version
As of 3.11.0, RabbitMQ requires Erlang 25. Nodes will fail to start on older Erlang releases.
Erlang 25 as our new baseline means much improved performance on ARM64 architectures, profiling with flame graphs
across all architectures, and the most recent TLS 1.3 implementation available to all RabbitMQ 3.11 users.
Changes Worth Mentioning
Release notes can be found on GitHub at rabbitmq-server/release-notes.
Core Server
Bug Fixes
-
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: #8683
-
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
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.11.20.tar.xz
instead of the source tarball produced by GitHub.
RabbitMQ 3.13.0-beta.2
RabbitMQ 3.13.0-beta.2
RabbitMQ 3.13.0-beta.2
is a preview of a new feature release.
Highlights
This release includes several new features, optimizations, and graduates (makes mandatory) a number of feature flags.
The user-facing areas that have seen the biggest improvements in this release are
- Support for consumer-side stream filtering
- MQTTv5 support
- Improved classic non-mirrored queue performance with message sizes larger than
4 KiB (or a different customized CQ index embedding threshold) - Classic queues use version 2 of the storage implementation (CQv2).
This should significantly improve performance of non-mirrored classic queues
This release also features many internal API improvements in preparation to 4.0
with Khepri.
See Compatibility Notes below to learn about breaking or potentially breaking changes in this release.
Release Artifacts
RabbitMQ preview releases are distributed via GitHub.
Community Docker image is another installation option
for previews. It is updated with a delay (usually a few days).
Erlang/OTP Compatibility Notes
This release requires Erlang 26.0 or later.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 26.x.
Upgrading to 3.13
Documentation guides on upgrades
See the Upgrading guide for documentation on upgrades and RabbitMQ change log
for release notes of other releases.
Required Feature Flags
TBD
Mixed version cluster compatibility
RabbitMQ 3.13.0 nodes can run alongside 3.12.x
nodes. 3.12.x
-specific features can only be made available when all nodes in the cluster
upgrade to 3.13.0 or any other patch release in the new series.
While operating in mixed version mode, some aspects of the system may not behave as expected. The list of known behavior changes is covered below.
Once all nodes are upgraded to 3.13.0, these irregularities will go away.
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).
Compatibility Notes
TBD
Minimum Supported Erlang Version
Starting with this release, RabbitMQ requires Erlang 26.0 or later versions. Nodes will fail to start
on older Erlang releases.
Client Library Compatibility
Client libraries that were compatible with RabbitMQ 3.12.x
will be compatible with 3.13.0
.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Core Server
Enhancements
-
Target quorum queue replica state is now continuously reconciled.
When the number of online replicas of a quorum queue goes below (or above) its target,
new replicas will be automatically placed if enough cluster nodes are available.
This is a more automatic version of how quorum queue replicas have originally been grown.For automatic shrinking of queue replicas, the user must opt in.
Contributed by @SimonUnge (AWS).
GitHub issue: #8218
-
Reduced memory footprint, improved memory use predictability and throughput of classic queues (version 2, or CQv2).
This particularly benefits classic queues with longer backlogs.Classic queue v2 (CQv2) storage implementation is now the default. It is possible to switch
the default back to CQv1 usingrabbitmq.conf
:# uses CQv1 by default classic_queue.default_version = 1
Individual queues can be declared by passing
x-queue-version
argument and/or through aqueue-version
policy.GitHub issue: #8308
-
Non-mirrored classic queues: optimizations of storage for larger (greater than 4 kiB) messages.
-
A subsystem for marking features as deprecated.
GitHub issue: #7390
-
Plugins now can register custom queue types. This means that a plugin now ca provide
a custom queue type.Contributed by @luos (Erlang Solutions).
GitHub issue: #8834
Bug Fixes
This release includes all bug fixes shipped in the 3.12.x
series.
-
Feature flag discovery on a newly added node could discover an incomplete inventory of feature flags.
GitHub issue: #8477
-
Feature flag discovery operations will now be retried multiple times in case of network failures.
GitHub issue: #8491
Stream Plugin
Enhancements
-
Support for (consumer) stream filtering.
This allows consumers that are only interested in a subset of data in a stream to receive
less data. Note that false positives are possible, so this feature should be accompanied by
client library or application-level filtering.GitHub issue: #8207
MQTT Plugin
Enhancements
-
Support for MQTTv5 (with limitations).
-
Potential incompatibility:
mqtt.subscription_ttl
configuration setting is now deprecated in favor of
mqtt.max_session_expiry_interval_seconds
that targets MQTTv5.GitHub issue: #8846
AMQP 1.0 Plugin
Bug Fixes
-
During AMQP 1.0 to AMQP 0-9-1 conversion, the Correlation ID message property is now stored as
x-correlation-id
(instead ofx-correlation
) for values longer than 255 bytes.This is a potentially breaking change.
GitHub issue: #8680
Dependency Changes
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.13.0.tar.xz
instead of the source tarball produced by GitHub.
RabbitMQ 3.12.2-beta.1
RabbitMQ 3.12.2-beta.1
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
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
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
-
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
-
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:
# increase maximum supported STOMP frame size to 10 MiB stomp.max_frame_size = 10485760
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.
GitHub issue: #8790
Web STOMP Plugin
Enhacements
-
It is now possible to opt in to deactivate file handle cache use in the plugin.
GitHub issue: #8790
Dependency Upgrades
None in this release.
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.
RabbitMQ 3.13.0-beta.1
RabbitMQ 3.13.0-beta.1
RabbitMQ 3.13.0-beta.1
is a preview of a new feature release.
Highlights
This release includes several new features, optimizations, and graduates (makes mandatory) a number of feature flags.
The user-facing areas that have seen the biggest improvements in this release are
- MQTTv5 support
- Improved classic non-mirrored queue performance with message sizes larger than
4 KiB (or a different customized CQ index embedding threshold) - Classic queues use version 2 of the storage implementation (CQv2).
This should significantly improve performance of non-mirrored classic queues
This release also features many internal API improvements in preparation to 4.0
with Khepri.
See Compatibility Notes below to learn about breaking or potentially breaking changes in this release.
Release Artifacts
RabbitMQ preview releases are distributed via GitHub.
Community Docker image is another installation option
for previews. It is updated with a delay (usually a few days).
Erlang/OTP Compatibility Notes
This release requires Erlang 6.0 or later.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 26.x.
Upgrading to 3.13
Documentation guides on upgrades
See the Upgrading guide for documentation on upgrades and RabbitMQ change log
for release notes of other releases.
Required Feature Flags
TBD
Mixed version cluster compatibility
RabbitMQ 3.13.0 nodes can run alongside 3.12.x
nodes. 3.12.x
-specific features can only be made available when all nodes in the cluster
upgrade to 3.13.0 or any other patch release in the new series.
While operating in mixed version mode, some aspects of the system may not behave as expected. The list of known behavior changes is covered below.
Once all nodes are upgraded to 3.13.0, these irregularities will go away.
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).
Compatibility Notes
TBD
Minimum Supported Erlang Version
Starting with this release, RabbitMQ requires Erlang 26.0 or later versions. Nodes will fail to start
on older Erlang releases.
Client Library Compatibility
Client libraries that were compatible with RabbitMQ 3.12.x
will be compatible with 3.13.0
.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Core Server
Enhancements
-
Reduced memory footprint, improved memory use predictability and throughput of classic queues (version 2, or CQv2).
This particularly benefits classic queues with longer backlogs.Classic queue v2 (CQv2) storage implementation is now the default. It is possible to switch
the default back to CQv1 usingrabbitmq.conf
:# uses CQv1 by default classic_queue.default_version = 1
Individual queues can be declared by passing
x-queue-version
argument and/or through aqueue-version
policy.GitHub issue: #8308
-
Non-mirrored classic queues: optimizations of storage for larger (greater than 4 kiB) messages.
-
A subsystem for marking features as deprecated.
GitHub issue: #7390
Bug Fixes
This release includes all bug fixes shipped in the 3.12.x
series.
-
Feature flag discovery on a newly added node could discover an incomplete inventory of feature flags.
GitHub issue: #8477
-
Feature flag discovery operations will now be retried multiple times in case of network failures.
GitHub issue: #8491
MQTT Plugin
Enhancements
AMQP 1.0 Plugin
Bug Fixes
-
During AMQP 1.0 to AMQP 0-9-1 conversion, the Correlation ID message property is now stored as
x-correlation-id
(instead ofx-correlation
) for values longer than 255 bytes.This is a potentially breaking change.
GitHub issue: #8680
Dependency Changes
TBD
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.13.0.tar.xz
instead of the source tarball produced by GitHub.
RabbitMQ 3.12.1
RabbitMQ 3.12.1
is 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
Bug Fixes
-
Declaration of a classic queue could run into an exception.
GitHub issue: #8629
-
Classic queues v1 (CQv1) that had a backlog of messages stored by 3.9 and earlier versions
could run into an exception during queue index recovery after an upgrade to 3.10.x or any later series.CQv2 and queues without a backlog were not affected.
Contributed by @gomoripeti (CloudAMQP).
GitHub issue: #8453
-
Nodes that had a large number of quorum queues could observe accumulation of Erlang processes
under significant load. A follow-up change to #7389.GitHub issue: #8591
-
Feature flag discovery on a newly added node could discover an incomplete inventory of feature flags.
GitHub issue: #8477
-
Feature flag discovery operations will now be retried multiple times in case of network failures.
GitHub issue: #8491
-
Nodes in clusters that had quorum queues and non-mirrored classic queues on stopped (or failed) nodes
could run into an exception.The same exception could affect
rabbitmqctl list_queues
.GitHub issue: #8596
-
Proxy Protocol v2 LOCAL packets were not supported.
GitHub issue: #8654
Enhancements
-
When a quorum queue does not find its local replica data files on boot, it will now log
a warning.GitHub issue: #8630
Management Plugin
Bug Fixes
-
An attempt to clear limits of a non-existent virtual host failed with a 500 status code.
GitHub issue: #8523
Enhacements
-
Management UI will now display node maintenance status.
Contributed by @SimonUnge (AWS).
GitHub issue: #8558
-
The "Queues" tab in the UI was renamed to "Queue and Streams" to better reflect
its contents.GitHub issue: #8520
-
New HTTP API endpoints for quorum queue replica management, equivalent to
therabbitmq-queues
commands that manage replicas.POST /api/queues/quorum/{vhost}/{name}/replicas/add DELETE /api/queues/quorum/{vhost}/{name}/replicas/remove POST /api/queues/quorum/replicas/on/{node}/grow DELETE /api/queues/quorum/replicas/on/{node}/shrink
GitHub issue: #8561
Stream Plugin
Bug Fixes
-
Stream client connections that authenticated using x.509 certificates
failed.GitHub issue: #8488
OAuth 2 Plugin
Bug Fixes
-
Only set OAuth 2 client's CA certificate file setting when it is defined.
GitHub issue: #8548
Enhancements
-
The plugin will now accept JWT tokens without a
scope
. Such tokens would only be useful when the plugin
is used exclusively for authentication and not authorization.GitHub issue: #8391
-
oauth2
is now an accepted alias for the OAuth 2 authentication and authorization backend:auth_backends.1 = oauth2
Previously the only option for OAuth 2 was using a full module name,
rabbit_auth_backend_oauth2
.GitHub issue: #8513
STOMP Plugin
Bug Fixes
-
STOMP plugin log entries had an extra line feed character.
GitHub issue: #2568
Dependency Upgrades
ra
was upgraded to2.6.2
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.12.1.tar.xz
instead of the source tarball produced by GitHub.