Releases: rabbitmq/rabbitmq-server
RabbitMQ 3.7.25-rc.1
RabbitMQ 3.7.25-rc.1
RabbitMQ 3.7.25-rc.1 is a preview of a maintenance release. It focuses on bug fixes and usability
improvements.
This is the last general 3.7.x release.
RabbitMQ 3.7.x series are now covered by the extended support policy.
Erlang/OTP Compatibility Notes
This release no longer supports Erlang/OTP 20.3.
While previously recent 3.7.x nodes could start on Erlang 20.3 and to some extent tested on it despite
the Erlang 21.3+ requirements in release notes and documentation, starting with this release, 21.3+ is a hard
requirement enforced in the code to ensure forward compatibility with Erlang 23.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See 3.7.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Enhancements
-
Erlang
20.3and earlier version support has been completely removed after months of being documented as unsupported.
This release, however, gains Erlang23.0forward compatibility.GitHub issue: rabbitmq/rabbitmq-server#2269
Management Plugin
Enhancements
-
More frequent garbage collection by stats DB cache processes in environments where HTTP API queries produced
large data sets.GitHub issue: rabbitmq/rabbitmq-management#788
-
rabbitmqadminbinding deletion now defaults to the same property key value as binding creation.Contributed by Ivan Kaloyanov.
GitHub issue: rabbitmq/rabbitmq-management#779
Bug Fixes
-
rabbitmqadmin importmangled non-ASCII characters.GitHub issue: rabbitmq/rabbitmq-management#785
Federation Plugin
Enhancements
-
Internal resources cleanup is now more selective on abnormal link termination. A new upstream parameter,
resource-cleanup-mode,
can be set to"never"used to prevent internal queues from being deleted by exchange federation links on termination.
Use this when data safety is more important than protection from resource leaks. It then will be up to the operator to make
sure such resources are periodically deleted or use a suitable TTL.GitHub issue: rabbitmq/rabbitmq-federation#105
Shovel Management Plugin
Bug Fixes
-
Shovels are now correctly removed even when deletion commands are executed against a different node
(not the one on which the target Shovel has been created).GitHub issue: rabbitmq/rabbitmq-shovel#68
Trust Store Plugin
Enhancements
-
HTTPS certificate provider will not longer terminate if upstream service response contains
invalid JSON.GitHub issue: rabbitmq/rabbitmq-trust-store#73
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.7.25.tar.xz.
RabbitMQ 3.8.3
RabbitMQ 3.8.3
RabbitMQ 3.8.3 is a maintenance release.
Erlang/OTP Compatibility Notes
This release requires Erlang/OTP 21.3 or later.
22.x series is recommended.
Provisioning Latest Erlang Releases explains what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release from 3.7.6 or an older version, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later, RabbitMQ must be upgraded at the same time as Erlang.
Alternatively the node can be upgraded to 3.7.18 first, then Erlang 21.x or 22.x, then to RabbitMQ 3.8.x.
Upgrade Doc Guides and Change Log
See 3.8.0 release notes upgrade and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred, with an option to change the value or disable scheduled run entirely.
More frequent binary heap GC runs seem unneccesary on Erlang 22.Contributed by Aleksander Nycz.
GitHub issue: rabbitmq/rabbitmq-common#343
-
Eliminated an inefficiency in recovery of quorum queues with a backlog of messages.
GitHub issue: rabbitmq/rabbitmq-server#2260
-
In a case where a node hosting a quorum queue replica went offline and was removed from the cluster,
and later came back, quorum queues could enter a loop of Raft leader elections.GitHub issue: rabbitmq/rabbitmq-server#2255
-
Quorum queues with a dead lettering could fail to recover.
GitHub issue: rabbitmq/rabbitmq-server#2256
-
The node now can recover even if virtual host recovery terms file was corrupted.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2195
-
Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2209
-
Syslog client is now started even when Syslog logging is configured only for some log sinks.
GitHub issue: rabbitmq/rabbitmq-server#2044
-
Policies that quorum queues ignored were still listed as applied to them.
GitHub issue: rabbitmq/rabbitmq-server#2210
-
If a quorum queue leader rebalancing operation timed out, CLI tools failed with an exception instead of a sensible internal API response.
Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-server#2214
-
Handle timeout error on the rebalance function.
Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-server#2218
-
Handle and raise protocol error for absent queues assumed to be alive.
Contributed by Ayanda Dube.
GitHub issue: rabbitmq/rabbitmq-server#2233
Enhancements
-
Some Proxy protocol errors are now logged at debug level.
This reduces log noise in environments where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending any data.GitHub issue: rabbitmq/rabbitmq-server#2204
-
Quorum queue deletion operation no longer supports the "if unused" and "if empty" options.
They are typically used for transient queues don't make much sense for quorum ones.GitHub issue: rabbitmq/rabbitmq-server#2211
-
Do not treat applications that do not depend on rabbit as plugins.
This is especially important for applications that should not be stopped before rabbit is stopped.GitHub Issue: rabbitmq/rabbitmq-server#2212
-
RabbitMQ nodes will now gracefully shutdown when receiving a
SIGTERMsignal.
Previously the runtime would invoke a default handler that terminates the VM giving RabbitMQ no chance to execute its shutdown steps.GitHub issue: rabbitmq/rabbitmq-server#2222
-
Every cluster now features a persistent internal cluster ID that can be used by core features or plugins.
Unlike the human-readable cluster name, the value cannot be overriden by the user.GitHub issue: rabbitmq/rabbitmq-server#2226
-
Speedup execution of boot steps by a factor of 2N, where N is the number of attributes per step.
Contributed by Ayanda Dube.
GitHub issue: rabbitmq/rabbitmq-server#2246
CLI Tools
Bug Fixes
-
rabbitmq-diagnostics statusfailed to display the results when executed against a node that had high VM watermark set as an absolute value (usingvm_memory_high_watermark.absolute).GitHub issue: rabbitmq/rabbitmq-cli#395
Enhancements
-
New health checks that can be used to determine if it's a good moment to shut down a node for an upgrade.
# Exits with a non-zero code if target node hosts master replica of at least one queue # that has out-of-sync mirror. rabbitmq-diagnostics check_if_node_is_mirror_sync_critical # Exits with a non-zero code if one or more quorum queues will lose online quorum # should target node be shut down rabbitmq-diagnostics check_if_node_is_quorum_critical
GitHub issue: rabbitmq/rabbitmq-cli#389
-
Some proxy protocol errors are now logged at debug level.
-
This reduces log noise in environments where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending any data.
GitHub issue: rabbitmq/rabbitmq-server#2204
Management and Management Agent Plugins
Bug Fixes
-
Consumer section on individual page was unintentionally hidden.
GitHub issue: rabbitmq/rabbitmq-management#758
-
Fix queue-type select by adding unsafe-inline CSP policy.
GitHub issue: rabbitmq/rabbitmq-management#769
Enhancements
-
An undocumented "automagic login" feature on the login form was removed.
GitHub issue: rabbitmq/rabbitmq-management#748
-
A new
POST /loginendpoint can be used by custom management UI login forms to authenticate the user and set the cookie.GitHub issue: rabbitmq/rabbitmq-management#764
-
A new
POST /rebalance/queuesendpoint that is the HTTP API equivalent ofrabbitmq-queues rebalanceGitHub issue: rabbitmq/rabbitmq-management#782
-
Warning about a missing
handle.exeinPATHon Windows is now only logged every 10 minutes.GitHub issue: rabbitmq/rabbitmq-management-agent#90
-
rabbitmqadmin declare queuenow supports a newqueue_typeparameter to simplify declaration of quorum queues.GitHub issue: rabbitmq/rabbitmq-management#761
-
HTTP API request log entries now includes acting user.
GitHub issue: rabbitmq/rabbitmq-management#760
-
Content Security Policy headers are now also set for static assets such as JavaScript files.
GitHub issue: rabbitmq/rabbitmq-management#767
Prometheus Plugin
Enhancements
-
Add option to aggregate metrics for channels, queues & connections. Metrics are now aggregated by default (safe by default).
This new behaviour can be disabled viaprometheus.return_per_object_metrics = trueconfig.GitHub issue: rabbitmq/rabbitmq-prometheus#28
Kubernetes Peer Discovery Plugin
Enhancements
-
The plugin will now notify Kubernetes API of node startup and peer stop/unavailability events.
Contributed by Gabriele Santomagg...
RabbitMQ 3.8.3-rc.2
RabbitMQ 3.8.3-rc.2
RabbitMQ 3.8.3-rc.2 is a candidate of a maintenance release.
Erlang/OTP Compatibility Notes
This release requires Erlang/OTP 21.3 or later.
22.x series is recommended.
Provisioning Latest Erlang Releases explains what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release from 3.7.6 or an older version, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later, RabbitMQ must be upgraded at the same time as Erlang.
Alternatively the node can be upgraded to 3.7.18 first, then Erlang 21.x or 22.x, then to RabbitMQ 3.8.x.
Upgrade Doc Guides and Change Log
See 3.8.0 release notes upgrade and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred, with an option to change the value or disable scheduled run entirely.
More frequent binary heap GC runs seem unneccesary on Erlang 22.Contributed by Aleksander Nycz.
GitHub issue: rabbitmq/rabbitmq-common#343
-
Eliminated an inefficiency in recovery of quorum queues with a backlog of messages.
GitHub issue: rabbitmq/rabbitmq-server#2260
-
In a case where a node hosting a quorum queue replica went offline and was removed from the cluster,
and later came back, quorum queues could enter a loop of Raft leader elections.GitHub issue: rabbitmq/rabbitmq-server#2255
-
Quorum queues with a dead lettering could fail to recover.
GitHub issue: rabbitmq/rabbitmq-server#2256
-
The node now can recover even if virtual host recovery terms file was corrupted.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2195
-
Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2209
-
Syslog client is now started even when Syslog logging is configured only for some log sinks.
GitHub issue: rabbitmq/rabbitmq-server#2044
-
Policies that quorum queues ignored were still listed as applied to them.
GitHub issue: rabbitmq/rabbitmq-server#2210
-
If a quorum queue leader rebalancing operation timed out, CLI tools failed with an exception instead of a sensible internal API response.
Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-server#2214
-
Handle timeout error on the rebalance function.
Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-server#2218
-
Handle and raise protocol error for absent queues assumed to be alive.
Contributed by Ayanda Dube.
GitHub issue: rabbitmq/rabbitmq-server#2233
Enhancements
-
Some PROXY protocol errors are now logged at debug level.
This reduces log noise in environments where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending any data.GitHub issue: rabbitmq/rabbitmq-server#2204
-
Quorum queue deletion operation no longer supports the "if unused" and "if empty" options.
They are typically used for transient queues don't make much sense for quorum ones.GitHub issue: rabbitmq/rabbitmq-server#2211
-
Do not treat applications that do not depend on rabbit as plugins.
This is especially important for applications that should not be stopped before rabbit is stopped.GitHub Issue: rabbitmq/rabbitmq-server#2212
-
RabbitMQ nodes will now gracefully shutdown when receiving a
SIGTERMsignal.
Previously the runtime would invoke a default handler that terminates the VM giving RabbitMQ no chance to execute its shutdown steps.GitHub issue: rabbitmq/rabbitmq-server#2222
-
Every cluster now features a persistent internal cluster ID that can be used by core features or plugins.
Unlike the human-readable cluster name, the value cannot be overriden by the user.GitHub issue: rabbitmq/rabbitmq-server#2226
-
Speedup execution of boot steps by a factor of 2N, where N is the number of attributes per step.
Contributed by Ayanda Dube.
GitHub issue: rabbitmq/rabbitmq-server#2246
CLI Tools
Bug Fixes
-
rabbitmq-diagnostics statusfailed to display the results when executed against a node that had high VM watermark set as an absolute value (usingvm_memory_high_watermark.absolute).GitHub issue: rabbitmq/rabbitmq-cli#395
Enhancements
-
New health checks that can be used to determine if it's a good moment to shut down a node for an upgrade.
# Exits with a non-zero code if target node hosts master replica of at least one queue # that has out-of-sync mirror. rabbitmq-diagnostics check_if_node_is_mirror_sync_critical # Exits with a non-zero code if one or more quorum queues will lose online quorum # should target node be shut down rabbitmq-diagnostics check_if_node_is_quorum_critical
GitHub issue: rabbitmq/rabbitmq-cli#389
-
Some proxy protocol errors are now logged at debug level.
-
This reduces log noise in environments where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending any data.
GitHub issue: rabbitmq/rabbitmq-server#2204
Management and Management Agent Plugins
Bug Fixes
-
Consumer section on individual page was unintentionally hidden.
GitHub issue: rabbitmq/rabbitmq-management#758
-
Fix queue-type select by adding unsafe-inline CSP policy.
GitHub issue: rabbitmq/rabbitmq-management#769
Enhancements
-
An undocumented "automagic login" feature on the login form was removed.
GitHub issue: rabbitmq/rabbitmq-management#748
-
A new
POST /loginendpoint can be used by custom management UI login forms to authenticate the user and set the cookie.GitHub issue: rabbitmq/rabbitmq-management#764
-
Warning about a missing
handle.exeinPATHon Windows is now only logged every 10 minutes.GitHub issue: rabbitmq/rabbitmq-management-agent#90
-
rabbitmqadmin declare queuenow supports a newqueue_typeparameter to simplify declaration of quorum queues.GitHub issue: rabbitmq/rabbitmq-management#761
-
HTTP API request log entries now includes acting user.
GitHub issue: rabbitmq/rabbitmq-management#760
-
Content Security Policy headers are now also set for static assets such as JavaScript files.
GitHub issue: rabbitmq/rabbitmq-management#767
Prometheus Plugin
Enhancements
-
Add option to aggregate metrics for channels, queues & connections. Metrics are now aggregated by default (safe by default).
This new behaviour can be disabled viaprometheus.return_per_object_metrics = trueconfig.GitHub issue: rabbitmq/rabbitmq-prometheus#28
Kubernetes Peer Discovery Plugin
Enhancements
-
The plugin will now notify Kubernetes API of node startup and peer stop/unavailability events.
Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-peer-discovery-k8s#61
Etcd Peer Discovery Plugin
Bug Fixes
- Only run...
RabbitMQ 3.8.3-rc.1
RabbitMQ 3.8.3-rc.1
RabbitMQ 3.8.3-rc.1 is a candidate of a maintenance release.
Erlang/OTP Compatibility Notes
This release requires Erlang/OTP 21.3 or later.
22.x series is recommended.
Provisioning Latest Erlang Releases explains what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release from 3.7.6 or an older version, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later, RabbitMQ must be upgraded at the same time as Erlang.
Alternatively the node can be upgraded to 3.7.18 first, then Erlang 21.x or 22.x, then to RabbitMQ 3.8.x.
Upgrade Doc Guides and Change Log
See 3.8.0 release notes upgrade and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred, with an option to change the value or disable scheduled run entirely.
More frequent binary heap GC runs seem unneccesary on Erlang 22.Contributed by Aleksander Nycz.
GitHub issue: rabbitmq/rabbitmq-common#343
-
Syslog client is now started even when Syslog logging is configured only for some log sinks.
GitHub issue: rabbitmq/rabbitmq-server#2044
-
The node now can recover even if virtual host recovery terms file was corrupted.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2195
-
Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2209
-
Policies that quorum queues ignored were still listed as applied to them.
GitHub issue: rabbitmq/rabbitmq-server#2210
-
If a quorum queue leader rebalancing operation timed out, CLI tools failed with an exception instead of a sensible internal API response.
Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-server#2214
-
Handle timeout error on the rebalance function.
Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-server#2218
-
Handle and raise protocol error for absent queues assumed to be alive.
Contributed by Ayanda Dube.
GitHub issue: rabbitmq/rabbitmq-server#2233
Enhancements
-
Some PROXY protocol errors are now logged at debug level.
This reduces log noise in environments where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending any data.GitHub issue: rabbitmq/rabbitmq-server#2204
-
Quorum queue deletion operation no longer supports the "if unused" and "if empty" options.
They are typically used for transient queues don't make much sense for quorum ones.GitHub issue: rabbitmq/rabbitmq-server#2211
-
Do not treat applications that do not depend on rabbit as plugins.
This is especially important for applications that should not be stopped before rabbit is stopped.GitHub Issue: rabbitmq/rabbitmq-server#2212
-
RabbitMQ nodes will now gracefully shutdown when receiving a
SIGTERMorSIGQUITsignals.
Previously the runtime would invoke a default handler that terminates the VM giving RabbitMQ no chance to execute its shutdown steps.In addition,
SIGUSER1andSIGUSR2signals are ignored.GitHub issue: rabbitmq/rabbitmq-server#2222
-
Every cluster now features a persistent internal cluster ID that can be used by core features or plugins.
Unlike the human-readable cluster name, the value cannot be overriden by the user.GitHub issue: rabbitmq/rabbitmq-server#2226
-
Speedup execution of boot steps by a factor of 2N, where N is the number of attributes per step.
Contributed by Ayanda Dube.
GitHub issue: rabbitmq/rabbitmq-server#2246
CLI Tools
Bug Fixes
-
rabbitmq-diagnostics statusfailed to display the results when executed against a node that had high VM watermark set as an absolute value (usingvm_memory_high_watermark.absolute).GitHub issue: rabbitmq/rabbitmq-cli#395
Enhancements
-
New health checks that can be used to determine if it's a good moment to shut down a node for an upgrade.
# Exits with a non-zero code if target node hosts master replica of at least one queue # that has out-of-sync mirror. rabbitmq-diagnostics check_if_node_is_mirror_sync_critical # Exits with a non-zero code if one or more quorum queues will lose online quorum # should target node be shut down rabbitmq-diagnostics check_if_node_is_quorum_critical
GitHub issue: rabbitmq/rabbitmq-cli#389
-
Some proxy protocol errors are now logged at debug level.
-
This reduces log noise in environments where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending any data.
GitHub issue: rabbitmq/rabbitmq-server#2204
Management and Management Agent Plugins
Bug Fixes
-
Consumer section on individual page was unintentionally hidden.
GitHub issue: rabbitmq/rabbitmq-management#758
-
Fix queue-type select by adding unsafe-inline CSP policy.
GitHub issue: rabbitmq/rabbitmq-management#769
Enhancements
-
An undocumented "automagic login" feature on the login form was removed.
GitHub issue: rabbitmq/rabbitmq-management#748
-
A new
POST /loginendpoint can be used by custom management UI login forms to authenticate the user and set the cookie.GitHub issue: rabbitmq/rabbitmq-management#764
-
Warning about a missing
handle.exeinPATHon Windows is now only logged every 10 minutes.GitHub issue: rabbitmq/rabbitmq-management-agent#90
-
rabbitmqadmin declare queuenow supports a newqueue_typeparameter to simplify declaration of quorum queues.GitHub issue: rabbitmq/rabbitmq-management#761
-
HTTP API request log entries now includes acting user.
GitHub issue: rabbitmq/rabbitmq-management#760
-
Content Security Policy headers are now also set for static assets such as JavaScript files.
GitHub issue: rabbitmq/rabbitmq-management#767
Prometheus Plugin
Enhancements
-
Add option to aggregate metrics for channels, queues & connections. Metrics are now aggregated by default (safe by default).
This new behaviour can be disabled viaprometheus.return_per_object_metrics = trueconfig.GitHub issue: rabbitmq/rabbitmq-prometheus#28
Kubernetes Peer Discovery Plugin
Enhancements
-
The plugin will now notify Kubernetes API of node startup and peer stop/unavailability events.
Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-peer-discovery-k8s#61
Etcd Peer Discovery Plugin
Bug Fixes
-
Only run healthcheck when backend is configured.
GitHub issue: rabbitmq/rabbitmq-peer-discovery-etcd#21
Federation Plugin
Bug Fixes
-
Use vhost to delete federated exchange.
GitHub issue: rabbitmq/rabbitmq-federation#99
Enhancements
- "Command" operations such as binding propagation now use a separate channel f...
RabbitMQ 3.7.24
RabbitMQ 3.7.24
RabbitMQ 3.7.24 is a maintenance release.
RabbitMQ 3.7.x series is supported through March 2020.
Erlang/OTP Compatibility Notes
Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See 3.7.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2209
-
Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred,
with an option to change the value or disable scheduled run entirely. More frequent binary heap GC runs seem
unneccesary on Erlang 22.Contributed by Aleksander Nycz.
GitHub issue: rabbitmq/rabbitmq-common#343
-
The node now can recover even if virtual host recovery terms file was corrupted.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2195
-
Better error reporting in an edge case with classic queue master replica election.
Contributed by Ayanda Dube.
GitHub issue: rabbitmq/rabbitmq-common#355
-
Fixed an incorrect return value in the internal queue data store module.
Contributed by Sergey Loguntsov.
GitHub issue: rabbitmq/rabbitmq-server#2221
-
Syslog client is now started even when Syslog logging is configured only for some log sinks.
GitHub issue: rabbitmq/rabbitmq-server#2044
Enhancements
-
RabbitMQ nodes will now gracefully shutdown when receiving a
SIGTERMorSIGQUITsignals.
Previously the runtime would invoke a default handler that terminates the VM giving
RabbitMQ no chance to execute its shutdown steps.In addition,
SIGUSER1andSIGUSR2signals are ignored.GitHub issue: rabbitmq/rabbitmq-server#2222
-
Some proxy protocol errors are now logged at debug level. This reduces log noise in environments
where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending
any data.GitHub issue: rabbitmq/rabbitmq-server#2204
Management and Management Agent Plugins
Enhancements
-
A new
POST /loginendpoint can be used by custom management UI login forms to authenticate the user
and set the cookie.GitHub issue: rabbitmq/rabbitmq-management#764
-
Warning about a missing
handle.exeinPATHon Windows is now only logged every few minutes.GitHub issue: rabbitmq/rabbitmq-management-agent#90
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.7.24.tar.xz.
RabbitMQ 3.7.24-rc.2
RabbitMQ 3.7.24-rc.2
RabbitMQ 3.7.24-rc.2 is a candidate of a maintenance release.
RabbitMQ 3.7.x series is supported through March 2020.
Erlang/OTP Compatibility Notes
Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See 3.7.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2209
-
Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred,
with an option to change the value or disable scheduled run entirely. More frequent binary heap GC runs seem
unneccesary on Erlang 22.Contributed by Aleksander Nycz.
GitHub issue: rabbitmq/rabbitmq-common#343
-
The node now can recover even if virtual host recovery terms file was corrupted.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2195
-
Better error reporting in an edge case with classic queue master replica election.
Contributed by Ayanda Dube.
GitHub issue: rabbitmq/rabbitmq-common#355
-
Fixed an incorrect return value in the internal queue data store module.
Contributed by Sergey Loguntsov.
GitHub issue: rabbitmq/rabbitmq-server#2221
-
Syslog client is now started even when Syslog logging is configured only for some log sinks.
GitHub issue: rabbitmq/rabbitmq-server#2044
Enhancements
-
RabbitMQ nodes will now gracefully shutdown when receiving a
SIGTERMorSIGQUITsignals.
Previously the runtime would invoke a default handler that terminates the VM giving
RabbitMQ no chance to execute its shutdown steps.In addition,
SIGUSER1andSIGUSR2signals are ignored.GitHub issue: rabbitmq/rabbitmq-server#2222
-
Some proxy protocol errors are now logged at debug level. This reduces log noise in environments
where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending
any data.GitHub issue: rabbitmq/rabbitmq-server#2204
Management and Management Agent Plugins
Enhancements
-
A new
POST /loginendpoint can be used by custom management UI login forms to authenticate the user
and set the cookie.GitHub issue: rabbitmq/rabbitmq-management#764
-
Warning about a missing
handle.exeinPATHon Windows is now only logged every few minutes.GitHub issue: rabbitmq/rabbitmq-management-agent#90
Trust Store Plugin
Enhancements
-
HTTPS certificate provider will not longer terminate if upstream service response contains
invalid JSON.GitHub issue: rabbitmq/rabbitmq-trust-store#73
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.7.24.tar.xz.
RabbitMQ 3.8.3-beta.3
RabbitMQ 3.8.3-beta.3
RabbitMQ 3.8.3-beta.3 is a preview of a maintenance release.
Erlang/OTP Compatibility Notes
This release requires Erlang/OTP 21.3 or later.
22.x series is recommended.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release from 3.7.6 or an older version, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded at the same time as Erlang. Alternatively the node can be upgraded
to 3.7.18 first, then Erlang 21.x or 22.x, then to RabbitMQ 3.8.x.
Upgrade Doc Guides and Change Log
See 3.8.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2209
-
Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred,
with an option to change the value or disable scheduled run entirely. More frequent binary heap GC runs seem
unneccesary on Erlang 22.Contributed by Aleksander Nycz.
GitHub issue: rabbitmq/rabbitmq-common#343
-
The node now can recover even if virtual host recovery terms file was corrupted.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2195
-
If a quorum queue leader rebalancing operation timed out, CLI tools failed with an exception
instead of a sensible internal API response.Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-server#2214
-
Syslog client is now started even when Syslog logging is configured only for some log sinks.
GitHub issue: rabbitmq/rabbitmq-server#2044
Enhancements
-
Quorum queue deletion operation no longer supports the "if unused" and "if empty" options.
They are typically used for transient queues don't make much sense for quorum ones.GitHub issue: rabbitmq/rabbitmq-server#2211
-
Every cluster now features a persistent internal cluster ID that can be used by core features
or plugins. Unlike the human-readable cluster name, the value cannot be overriden by the user.GitHub issue: rabbitmq/rabbitmq-server#2226
CLI Tools
Bug Fixes
-
rabbitmq-diagnostics statusfailed to display the results when executed against a node
that had high VM watermark set as an absolute value (usingvm_memory_high_watermark.absolute).GitHub issue: rabbitmq/rabbitmq-cli#395
Enhancements
-
RabbitMQ nodes will now gracefully shutdown when receiving a
SIGTERMorSIGQUITsignals.
Previously the runtime would invoke a default handler that terminates the VM giving
RabbitMQ no chance to execute its shutdown steps.In addition,
SIGUSER1andSIGUSR2signals are ignored.GitHub issue: rabbitmq/rabbitmq-server#2222
-
New health checks that can be used to determine if it's a good moment to shut down a node for an upgrade.
# Exits with a non-zero code if target node hosts master replica of at least one queue # that has out-of-sync mirror. rabbitmq-diagnostics check_if_node_is_mirror_sync_critical # Exits with a non-zero code if one or more quorum queues will lose online quorum # should target node be shut down rabbitmq-diagnostics check_if_node_is_quorum_critical
GitHub issue: rabbitmq/rabbitmq-cli#389
-
Some proxy protocol errors are now logged at debug level. This reduces log noise in environments
where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending
any data.GitHub issue: rabbitmq/rabbitmq-server#2204
Management and Management Agent Plugins
Bug Fixes
-
Consumer section on individual page was unintentionally hidden.
GitHub issue: rabbitmq/rabbitmq-management#758
-
Policies that quorum queues ignored were still listed as applied to them.
GitHub issue: rabbitmq/rabbitmq-server#2210
Enhancements
-
An undocumented "automagic login" feature on the login form was removed.
GitHub issue: rabbitmq/rabbitmq-management#748
-
A new
POST /loginendpoint can be used by custom management UI login forms to authenticate the user
and set the cookie.GitHub issue: rabbitmq/rabbitmq-management#764
-
Warning about a missing
handle.exeinPATHon Windows is now only logged every few minutes.GitHub issue: rabbitmq/rabbitmq-management-agent#90
-
rabbitmqadmin declare queuenow supports a newqueue_typeparameter to simplify declaration of
quorum queues.GitHub issue: rabbitmq/rabbitmq-management#761
-
HTTP API request log entries now includes acting user.
GitHub issue: rabbitmq/rabbitmq-management#760
-
Content Security Policy headers are now also set for static assets such as JavaScript files.
GitHub issue: rabbitmq/rabbitmq-management#767
Kubernetes Peer Discovery Plugin
Enhancements
The plugin will now notify Kubernetes API of node startup and peer stop/unavailability events.
Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-peer-discovery-k8s#61
Federation Plugin
Enhancements
-
"Command" operations such as binding propagation now use a separate channel for all links,
preventing latency spikes for asynchronous operations (such as message publishing)
(a head-of-line blocking problem).Contributed by Grigory Starinkin.
GitHub issue: rabbitmq/rabbitmq-federation#97
Auth Backend OAuth 2 Plugin
-
Additional scopes can be fetched from a predefined JWT token field. Those scopes will be combined
with the standard scopes field.Contributed by @papugamichal.
GitHub issue: rabbitmq/rabbitmq-auth-backend-oauth2#41
Trust Store Plugin
Enhancements
-
HTTPS certificate provider will not longer terminate if upstream service response contains
invalid JSON.GitHub issue: rabbitmq/rabbitmq-trust-store#73
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.8.3.tar.xz.
RabbitMQ 3.7.24-rc.1
RabbitMQ 3.7.24-rc.1
RabbitMQ 3.7.24-rc.1 is a candidate of a maintenance release.
RabbitMQ 3.7.x series is supported through March 2020.
Erlang/OTP Compatibility Notes
Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See 3.7.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2209
-
Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred,
with an option to change the value or disable scheduled run entirely. More frequent binary heap GC runs seem
unneccesary on Erlang 22.Contributed by Aleksander Nycz.
GitHub issue: rabbitmq/rabbitmq-common#343
-
The node now can recover even if virtual host recovery terms file was corrupted.
Contributed by @tomyouyou.
GitHub issue: rabbitmq/rabbitmq-server#2195
-
Fixed an incorrect return value in the internal queue data store module.
Contributed by Sergey Loguntsov.
GitHub issue: rabbitmq/rabbitmq-server#2221
-
Syslog client is now started even when Syslog logging is configured only for some log sinks.
GitHub issue: rabbitmq/rabbitmq-server#2044
Enhancements
-
RabbitMQ nodes will now gracefully shutdown when receiving a
SIGTERMorSIGQUITsignals.
Previously the runtime would invoke a default handler that terminates the VM giving
RabbitMQ no chance to execute its shutdown steps.In addition,
SIGUSER1andSIGUSR2signals are ignored.GitHub issue: rabbitmq/rabbitmq-server#2222
-
Some proxy protocol errors are now logged at debug level. This reduces log noise in environments
where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending
any data.GitHub issue: rabbitmq/rabbitmq-server#2204
Management and Management Agent Plugins
Enhancements
-
A new
POST /loginendpoint can be used by custom management UI login forms to authenticate the user
and set the cookie.GitHub issue: rabbitmq/rabbitmq-management#764
-
Warning about a missing
handle.exeinPATHon Windows is now only logged every few minutes.GitHub issue: rabbitmq/rabbitmq-management-agent#90
Trust Store Plugin
Enhancements
-
HTTPS certificate provider will not longer terminate if upstream service response contains
invalid JSON.GitHub issue: rabbitmq/rabbitmq-trust-store#73
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.7.24.tar.xz.
RabbitMQ 3.8.3-beta.2
RabbitMQ 3.8.3-beta.2
RabbitMQ 3.8.3-beta.2 is a preview of a maintenance release.
Erlang/OTP Compatibility Notes
This release requires Erlang/OTP 21.3 or later.
22.x series is recommended.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release from 3.7.6 or an older version, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded at the same time as Erlang. Alternatively the node can be upgraded
to 3.7.18 first, then Erlang 21.x or 22.x, then to RabbitMQ 3.8.x.
Upgrade Doc Guides and Change Log
See 3.8.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred,
with an option to change the value or disable scheduled run entirely. More frequent binary heap GC runs seem
unneccesary on Erlang 22.Contributed by Aleksander Nycz.
GitHub issue: rabbitmq/rabbitmq-common#343
-
Syslog client is now started even when Syslog logging is configured only for some log sinks.
GitHub issue: rabbitmq/rabbitmq-server#2044
CLI Tools
Enhancements
-
New health checks that can be used to determine if it's a good moment to shut down a node for an upgrade.
# Exits with a non-zero code if target node hosts master replica of at least one queue # that has out-of-sync mirror. rabbitmq-queues check_if_node_is_mirror_sync_critical # Exits with a non-zero code if one or more quorum queues will lose online quorum # should target node be shut down rabbitmq-queues check_if_node_is_quorum_critical
GitHub issue: rabbitmq/rabbitmq-cli#389
Management Plugin
Bug Fixes
-
Consumer section on individual page was unintentionally hidden.
GitHub issue: rabbitmq/rabbitmq-management#758
Enhancements
-
An undocumented "automagic login" feature on the login form was removed.
GitHub issue: rabbitmq/rabbitmq-management#748
Kubernetes Peer Discovery Plugin
Enhancements
The plugin will now notify Kubernetes API of node startup and peer stop/unavailability events.
Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-peer-discovery-k8s#61
Federation Plugin
Enhancements
-
"Command" operations such as binding propagation now use a separate channel for all links,
preventing latency spikes for asynchronous operations (such as message publishing)
(a head-of-line blocking problem).Contributed by Grigory Starinkin.
GitHub issue: rabbitmq/rabbitmq-federation#97
Auth Backend OAuth 2 Plugin
-
Additional scopes can be fetched from a predefined JWT token field. Those scopes will be combined
with the standard scopes field.Contributed by @papugamichal.
GitHub issue: rabbitmq/rabbitmq-auth-backend-oauth2#41
Trust Store Plugin
Enhancements
-
HTTPS certificate provider will not longer terminate if upstream service response contains
invalid JSON.GitHub issue: rabbitmq/rabbitmq-trust-store#73
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.8.3.tar.xz.
RabbitMQ 3.7.24-beta.1
RabbitMQ 3.7.24-beta.1
RabbitMQ 3.7.24-beta.1 is a preview of a maintenance release.
RabbitMQ 3.7.x series is supported through March 2020.
Erlang/OTP Compatibility Notes
Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See 3.7.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred,
with an option to change the value or disable scheduled run entirely. More frequent binary heap GC runs seem
unneccesary on Erlang 22.Contributed by Aleksander Nycz.
GitHub issue: rabbitmq/rabbitmq-common#343
-
Syslog client is now started even when Syslog logging is configured only for some log sinks.
GitHub issue: rabbitmq/rabbitmq-server#2044
Trust Store Plugin
Enhancements
-
HTTPS certificate provider will not longer terminate if upstream service response contains
invalid JSON.GitHub issue: rabbitmq/rabbitmq-trust-store#73
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.7.24.tar.xz.