Releases: rabbitmq/rabbitmq-server
RabbitMQ 3.7.8-rc.1
RabbitMQ 3.7.8 RC1
RabbitMQ 3.7.8 a release candidate of a maintenance release. It focuses on bug fixes and
further improves Erlang/OTP 21 compatibility.
Upgrades and Compatibility
This release has no known incompatibilities with earlier 3.7.x releases.
Upgrading to Erlang 21.0
When upgrading to this release and upgrading Erlang to 21.0 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, RabbitMQ must be upgraded before Erlang.
Documentation Guides and Change Log
See 3.7.0 release notes upgrade and
compatibility notes 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.
Changes
Core Server
Bug Fixes
-
Virtual host (specifically binding) recovery has been optimized.
GitHub issue: rabbitmq/rabbitmq-server#1650
-
A queue sync operation now can be cancelled when a resource alarm is in effect on the receiving node.
GitHub issue: rabbitmq/rabbitmq-server#1636
-
A resource alarm triggered during boot could prevent node from starting.
GitHub issue: rabbitmq/rabbitmq-server#1644
-
Syslog configuration parameters could be rejected by config validator.
GitHub issue: rabbitmq/rabbitmq-server#1639
-
rabbitmq-echopid.batnow loadsrabbitmq-env.batcorrectly.GitHub issue: rabbitmq/rabbitmq-server#1642
Enhancements
-
rabbitmqctl rename_cluster_nodedocumentation improvements.GitHub issue: rabbitmq/rabbitmq-server#1641
Management Plugin
Enhancements
-
Switching sections will now scroll to the top of the newly rendered page.
GitHub issue: rabbitmq/rabbitmq-management#590
STOMP Plugin
Bug Fixes
-
Nodes experiencing very high connection churn could run out of Erlang processes.
GitHub issues: rabbitmq/rabbitmq-stomp#125, rabbitmq/rabbitmq-server#1640
Federation Plugin
Bug Fixes
-
Improved OTP release handling compatibility.
Contributed by Ayanda Dube.
GitHub issue: rabbitmq/rabbitmq-federation#78
Enhancements
-
Link initialization optimizations.
Contributed by Ayanda Dube.
GitHub issues: rabbitmq/rabbitmq-federation#79, rabbitmq/rabbitmq-federation#80
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-3.7.8.tar.gz.
RabbitMQ 3.7.7
RabbitMQ 3.7.7
RabbitMQ 3.7.7 a maintenance release. This release introduces
compatibility with Erlang/OTP 21.
Upgrades and Compatibility
This release has no known incompatibilities with earlier 3.7.x releases.
Upgrading to Erlang 21.0
When upgrading to this release and upgrading Erlang to 21.0 at the same time, extra care has to be taken.
Since CLI tools from any earlier RabbitMQ release will fail on Erlang 21, RabbitMQ must be upgraded before Erlang.
Documentation Guides and Change Log
See 3.7.0 release notes upgrade and
compatibility notes 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.
Changes
Core Server
Enhancements
-
This release is compatible with Erlang/OTP 21, the newest major
Erlang runtime release.GitHub issue: rabbitmq/rabbitmq-server#1616
-
Windows installer will now take default Erlang cookie location differences between Erlang versions into account.
GitHub issue: rabbitmq/rabbitmq-server-release#82
Management Plugin
Enhancements
-
It is now possible to configure Web browser session timeout. Default is still 8 hours.
GitHub issue: rabbitmq/rabbitmq-management#584
Federation Plugin
Bug Fixes
-
Direct connections downstream were not closed in some cases.
Contributed by Ricardo Gonçalves.
GitHub issue: rabbitmq/rabbitmq-federation#76
LDAP Plugin
Bug Fixes
-
It wasn't possible to set
auth_ldap.dn_lookup_bindto the value ofanonin the new style config format.GitHub issue: rabbitmq/rabbitmq-auth-backend-ldap#94
Consul Peer Discovery Plugin
Bug Fixes
-
The following combination of settings was rejected by the plugin, even though they are reasonable
and were recommended by the docs:cluster_formation.consul.svc_addr_auto = true # en0 is just an example, it could be any other NIC name cluster_formation.consul.svc_addr_nic = en0
GitHub issue: rabbitmq/rabbitmq-peer-discovery-consul#12
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-3.7.7.tar.gz.
RabbitMQ 3.7.7-rc.2
RabbitMQ 3.7.7 RC2
RabbitMQ 3.7.7-rc.2 a candidate of a maintenance release. This release introduces
compatibility with Erlang/OTP 21.
Upgrades and Compatibility
This release has no known incompatibilities with earlier 3.7.x releases.
Upgrading to Erlang 21.0
When upgrading to this release and upgrading Erlang to 21.0 at the same time, extra care has to be taken.
Since CLI tools in any earlier RabbitMQ release will fail on Erlang 21, RabbitMQ must be upgraded before Erlang.
Documentation Guides and Change Log
See 3.7.0 release notes upgrade and
compatibility notes 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.
Changes
Core Server
Enhancements
-
This release is compatible with Erlang/OTP 21, the newest major
Erlang runtime release.GitHub issue: rabbitmq/rabbitmq-server#1616
Management Plugin
Enhancements
-
It is now possible to configure Web browser session timeout. Default is still 8 hours.
GitHub issue: rabbitmq/rabbitmq-management#584
Federation Plugin
Bug Fixes
-
Direct connections downstream were not closed in some cases.
Contributed by Ricardo Gonçalves.
GitHub issue: rabbitmq/rabbitmq-federation#76
LDAP Plugin
Bug Fixes
-
It wasn't possible to set
auth_ldap.dn_lookup_bindto the value ofanonin the new style config format.GitHub issue: rabbitmq/rabbitmq-auth-backend-ldap#94
Consul Peer Discovery Plugin
Bug Fixes
-
The following combination of settings was rejected by the plugin, even though they are reasonable
and were recommended by the docs:cluster_formation.consul.svc_addr_auto = true # en0 is just an example, it could be any other NIC name cluster_formation.consul.svc_addr_nic = en0
GitHub issue: rabbitmq/rabbitmq-peer-discovery-consul#12
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-3.7.7.tar.gz.
RabbitMQ 3.7.7-rc.1
RabbitMQ 3.7.7 RC1
This release has been superseded by 3.7.7-rc.2.
RabbitMQ 3.7.7-beta.2
RabbitMQ 3.7.7 Beta 2
This release has been superseded by 3.7.7 RC 1.
RabbitMQ 3.7.7-beta.1
This release has been superseded by 3.7.7-beta.2.
RabbitMQ 3.7.6
RabbitMQ 3.7.6
RabbitMQ 3.7.6 a maintenance release that primarily includes bug fixes.
Upgrades and Compatibility
This release includes one potential incompatibility with earlier 3.7.x releases. Only systems
that use a high number (hundreds) of queue priorities are affected.
See 3.7.0 release notes upgrade and compatibility notes if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades.
See RabbitMQ change log for release notes of other releases.
Changes
Core Server
Bug Fixes
-
Max priority cap for queues is now enforced and set to 255. Applications that rely on a higher number of priorities will break.
Such applications must be updated to use no more than 255 priorities.GitHub issue: rabbitmq-server#1590
-
Bulk deletion of exclusive queues when their owning connection closes has been optimized.
GitHub issues: rabbitmq/rabbitmq-server#1566, rabbitmq/rabbitmq-server#1513
Enhancements
-
On Erlang 20.2.3 or later, more optimal memory allocators will be used. On some workloads that leads
to significant reduction in node's RAM consumption. The change is workload-specific, however, on the workloads
tested that do introduce a negative effect (more RAM used) the difference was very small (about 1%).It is possible to go back to the previous settings,
+MBas aoffcbf +MHas aoffcbf +MBlmbcs 5120 +MHlmbcs 5120 +MMmcs 10,
by specifying them in theRABBITMQ_SERVER_ADDITIONAL_ERL_ARGSenvironment variable.On Erlang/OTP releases older than 20.2.3 there will be no default changes.
GitHub issue: rabbitmq/rabbitmq-server#1604
-
Logging to Syslog without 3rd party plugins.
GitHub issue: rabbitmq-server#1600
-
connection.closedevents now include client-provided connection name and more client details.
That information is in turn available via the rabbitmq_event_exchange.GitHub issue: rabbitmq-server#1596
CLI Tools
Enhancements
-
await_online_nodes <count> [--timeout <timeout>]is a new command that will wait until the target
node's cluster has at least<count>nodes. The command supports a timeout. It is meant to simplify
cluster provisioning automation and can be used as the very first check performed after starting a node.Note that the command requires at least one node to be running and reachable.
GitHub issue: rabbitmq-cli#235
-
rabbitmq-diagnostics ping [--node <target> --timeout <timeout>]is a new minimalistic health check command.
It only verifies if the target node is up, registered with epmd and accepts/authenticates CLI tool connections.
It fills the gap betweenrabbitmq-diagnostics node_health_check, which performs a lot of checks, take a lot more time
and is fairly opinionated in what it does.pingis more suitable in environments where
failing aliveness checks will result in node restarts, namely Kubernetes.GitHub issue: rabbitmq-cli#253
Management and Management Agent Plugins
Bug Fixes
-
Queue metrics could be missing after a node restart or plugin [re-]enablement.
GitHub issue: rabbitmq/rabbitmq-management-agent#58
-
rabbitmqadminnow correctly percent-encodes spaces in connection names.GitHub issue: rabbitmq/rabbitmq-management#576
-
When creating a new vhost, user permissions will only be granted to the users that exist in the
internal database. If an external authentication/authorization service is used, the step is skipped.GitHub issue: rabbitmq-management#531
-
Virtual host imported from definitions or created via HTTP API will explicitly await for the vhost to initialise
on all cluster nodes.GitHub issue: rabbitmq/rabbitmq-management#575
LDAP Plugin
Bug Fixes
-
LDAP connection pool now correctly purges connections in more failure scenarios (e.g. LDAP server restart)
GitHub issue: rabbitmq-auth-backend-ldap#92
HTTP Authentication/Authorization Plugin
Enhancements
-
201 Createdresponses are now accepted from HTTP services that back the plugin.GitHub issue: rabbitmq-auth-backend-http#68
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-3.7.6.tar.gz.
RabbitMQ 3.6.16
RabbitMQ 3.6.16
RabbitMQ 3.6.16 is a maintenance release that primarily includes selected backports from
the 3.7.x series. Users of earlier 3.6.x releases
are recommended to upgrade to a 3.7.x release, e.g. 3.7.6.
Upgrades and Compatibility
See the Upgrades documentation guide for general
documentation on upgrades.
This release nearly exclusively contains backports of bug fixes, optimisations and small enhancements
(e.g. safer defaults) from the 3.7.x series. Some of them are potentially breaking but
should only affect a very small percentage of users. They are:
- The max 255 priority cap is now enforced at all levels
- Default
rabbit.channel_maxvalue is now about 2K, a much safer value than 65K used previously - Default idle LDAP connection timeout is now 300 seconds instead of infinity
This release has no other known incompatibilities with versions 3.6.7 through
3.6.15. See the upgrade and compatibility sections in the 3.6.7 release
notes
if upgrading from an earlier release.
3.6.x Series Support Timeline
Please read this note on RabbitMQ 3.6.x series support
timeline.
Core Server
Bug Fixes
-
Queue master locator
min-mastersincorrectly calculated the number of masters.GitHub issue: rabbitmq-server#1519
-
Maximum supported number of queue priorities (255) is now enforced.
GitHub issue: rabbitmq-server#1590
Enhancements
-
On Erlang 20.2.3 or later, more optimal memory allocators will be used. On some workloads that leads
to significant reduction in node's RAM consumption. The change is workload-specific, however, on the workloads
tested that do introduce a negative effect (more RAM used) the difference was very small (about 1%).It is possible to go back to the previous settings,
+MBas aoffcbf +MHas aoffcbf +MBlmbcs 5120 +MHlmbcs 5120 +MMmcs 10,
by specifying them in theRABBITMQ_SERVER_ADDITIONAL_ERL_ARGSenvironment variable.On Erlang/OTP releases older than 20.2.3 there will be no default changes.
GitHub issue: rabbitmq/rabbitmq-server#1604, rabbitmq/rabbitmq-server#1612
-
queue.deleteoperations will now force delete queues that don't have a promotable
master.GitHub issue: rabbitmq-server#1501
-
ha-promote-on-failureis a new mirrored queue setting that's similar toha-promote-on-shutdown
but for unexpected master termination.GitHub issue: rabbitmq-server#1578
-
Lock contention in internal database is now much lower when a node with a lot of exclusive queues
shuts down or is otherwise considered to be unavailable by peers. This means fewer CPU cycles
spent cleaning up the exclusive queues.GitHub issue: rabbitmq-server#1570
-
Default max number of channels allowed on a connection (a.k.a.
channel_max) has been lowered from65535to2047.
The new default is much safer and will reduce the effect application channel leaks have on node resource consumption. This is a potentially breaking change.Systems where a lot (at least hundreds) of channels per connection are used should explicitly override
channel_maxin the config file to a higher suitable value, e.g.:
[
{rabbit, [
{channel_max, 4000}
]}
].GitHub issue: rabbitmq-server#1593
Management Plugin
Bug Fixes
-
Eliminated unnecessary encoding conversions that could lead to increased memory consumption.
GitHub issue: rabbitmq-management#550
-
rabbitmqadmincould run into an exception with certain formatting settings on Python 2.x.GitHub issue: rabbitmq-management#568
-
rabbitmqadminincorrectly encoded spaces in connection name valuesGitHub issue: rabbitmq-management#579
-
HTTP API stats documentation used incorrect field names.
GitHub issue: rabbitmq-management#561
Enhancements
-
Reduced padding usage in tables in the management UI.
GitHub issue: rabbitmq-management#541
LDAP Plugin
Bug Fixes
-
LDAP server-initiated connection closure was not handled gracefully by connection pool.
Kudos to Adam Gardner for doing all the hard work investigating this issue.GitHub issues: rabbitmq-auth-backend-ldap#82, rabbitmq-auth-backend-ldap#90
-
rabbit.idle_timeoutnow defaults to 300 seconds instead ofinfinity.GitHub issue: rabbitmq-auth-backend-ldap#81
Upgrading
To upgrade a non-clustered RabbitMQ simply install the new version. All
configuration and persistent message data are retained. When upgrading
using definitions export/import from versions earlier than 3.6.0, see
http://rabbitmq.com/passwords.html.
To upgrade a RabbitMQ cluster, follow the instructions in RabbitMQ
documentation.
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.6.16.tar.xz.
RabbitMQ 3.7.6-rc.2
RabbitMQ 3.7.6 RC2
RabbitMQ 3.7.6-rc.2 a candidate of a maintenance release that primarily includes bug fixes.
Upgrades and Compatibility
This release includes one potential incompatibility with earlier 3.7.x releases. Only systems
that use a high number (hundreds) of queue priorities are affected.
See 3.7.0 release notes upgrade and compatibility notes if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades.
See RabbitMQ change log for release notes of other releases.
Changes
Core Server
Bug Fixes
-
Max priority cap for queues is now enforced and set to 255. Applications that rely on a higher number of priorities will break. Such applications must be updated to use no more than 255 priorities.
GitHub issue: rabbitmq-server#1590
-
Bulk deletion of exclusive queues when their owning connection closes has been optimized.
GitHub issues: rabbitmq/rabbitmq-server#1566, rabbitmq/rabbitmq-server#1513
Enhancements
-
On Erlang 20.2.3 or later, more optimal memory allocators will be used. On some workloads that leads
to significant reduction in node's RAM consumption. The change is workload-specific, however, on the workloads
tested that do introduce a negative effect (more RAM used) the difference was very small (about 1%).It is possible to go back to the previous settings,
+MBas aoffcbf +MHas aoffcbf +MBlmbcs 5120 +MHlmbcs 5120 +MMmcs 10,
by specifying them in theRABBITMQ_SERVER_ADDITIONAL_ERL_ARGSenvironment variable.On Erlang/OTP releases older than 20.2.3 there will be no default changes.
GitHub issue: rabbitmq/rabbitmq-server#1604
-
connection.closedevents now include client-provided connection name and more client details.
That information is in turn available via the rabbitmq_event_exchange.GitHub issue: rabbitmq-server#1596
CLI Tools
Enhancements
-
await_online_nodes <count> [--timeout <timeout>]is a new command that will wait until the target
node's cluster has at least<count>nodes. The command supports a timeout. It is meant to simplify
cluster provisioning automation and can be used as the very first check performed after starting a node.Note that the command requires at least one node to be running and reachable.
GitHub issue: rabbitmq-cli#235
Management and Management Agent Plugins
Bug Fixes
- Queue metrics could be missing after a node restart or plugin [re-]enablement.
GitHub issue: rabbitmq/rabbitmq-management-agent#58
rabbitmqadminnow correctly percent-encodes spaces in connection names.
GitHub issue: rabbitmq/rabbitmq-management#576
- When creating a new vhost, user permissions will only be granted to the users that exist in the
internal database. If an external authentication/authorization service is used, the step is skipped.
GitHub issue: rabbitmq-management#531
- Virtual host imported from definitions or created via HTTP API will explicitly await for the vhost to initialise
on all cluster nodes.
GitHub issue: rabbitmq/rabbitmq-management#575
LDAP Plugin
Bug Fixes
-
LDAP connection pool now correctly purges connections in more failure scenarios (e.g. LDAP server restart)
GitHub issue: rabbitmq-auth-backend-ldap#92
HTTP Authentication/Authorization Plugin
Enhancements
-
201 Createdresponses are now accepted from HTTP services that back the plugin.GitHub issue: rabbitmq-auth-backend-http#68
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-3.7.6.tar.gz.
RabbitMQ 3.6.16-rc.1
RabbitMQ 3.6.16 RC1
RabbitMQ 3.6.16 RC1 is a release candidate of a maintenance release.
Upgrades and Compatibility
See the Upgrades documentation guide for general
documentation on upgrades.
This release nearly exclusively contains backports of bug fixes, optimisations and small enhancements
(e.g. safer defaults) from the 3.7.x series. Some of them are potentially breaking but
should only affect a very small percentage of users. They are:
- The max 255 priority cap is now enforced at all levels
- Default
rabbit.channel_maxvalue is now about 2K, a much safer value than 65K used previously - Default idle LDAP connection timeout is now 300 seconds instead of infinity
This release has no other known incompatibilities with versions 3.6.7 through
3.6.15. See the upgrade and compatibility sections in the 3.6.7 release
notes
if upgrading from an earlier release.
3.6.x Series Support Timeline
Please read this node on RabbitMQ 3.6.x series support
timeline.
Core Server
Bug Fixes
-
Queue master locator
min-mastersincorrectly calculated the number of masters.GitHub issue: rabbitmq-server#1519
-
Maximum supported number of queue priorities (255) is now enforced.
GitHub issue: rabbitmq-server#1590
Enhancements
-
queue.deleteoperations will now force delete queues that don't have a promotable
master.GitHub issue: rabbitmq-server#1501
-
ha-promote-on-failureis a new mirrored queue setting that's similar toha-promote-on-shutdown
but for unexpected master termination.GitHub issue: rabbitmq-server#1578
-
Lock contention in internal database is now much lower when a node with a lot of exclusive queues
shuts down or is otherwise considered to be unavailable by peers. This means fewer CPU cycles
spent cleaning up the exclusive queues.
GitHub issue: rabbitmq-server#1570
-
Default max number of channels allowed on a connection (a.k.a.
channel_max) has been lowered from65535to2047.
The new default is much safer and will reduce the effect application channel leaks have on node resource consumption. This is a potentially breaking change.Systems where a lot (at least hundreds) of channels per connection are used should explicitly override
channel_maxin the config file to a higher suitable value, e.g.:
[
{rabbit, [
{channel_max, 4000}
]}
]. GitHub issue: rabbitmq-server#1593
Management Plugin
Bug Fixes
-
Eliminated unnecessary encoding conversions that could lead to increased memory consumption.
GitHub issue: rabbitmq-management#550
-
rabbitmqadmincould run into an exception with certain formatting settings on Python 2.x.GitHub issue: rabbitmq-management#568
-
rabbitmqadminincorrectly encoded spaces in connection name valuesGitHub issue: rabbitmq-management#579
-
HTTP API stats documentation used incorrect field names.
GitHub issue: rabbitmq-management#561
Enhancements
-
Reduced padding usage in tables in the management UI.
GitHub issue: rabbitmq-management#541
LDAP Plugin
Bug Fixes
-
LDAP server-initiated connection closure was not handled gracefully by connection pool.
Kudos to Adam Gardner for doing all the hard work investigating this issue.GitHub issues: rabbitmq-auth-backend-ldap#82, rabbitmq-auth-backend-ldap#90
-
rabbit.idle_timeoutnow defaults to 300 seconds instead ofinfinity.GitHub issue: rabbitmq-auth-backend-ldap#81
Upgrading
To upgrade a non-clustered RabbitMQ simply install the new version. All
configuration and persistent message data are retained. When upgrading
using definitions export/import from versions earlier than 3.6.0, see
http://rabbitmq.com/passwords.html.
To upgrade a RabbitMQ cluster, follow the instructions in RabbitMQ
documentation.
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.6.16.tar.xz.