Releases: rabbitmq/rabbitmq-server
RabbitMQ 3.7.0 Milestone 19
Release Highlights
This is the release notes for RabbitMQ 3.7.0 Milestone 19. This is a preview of
a feature release that's expected to ship in 2017.
Breaking Changes
-
Minimum required Erlang/OTP version is now 19.2. Recent Erlang versions can be obtained from Erlang Solutions, RabbitMQ zero dependency Erlang RPM, as well as main and backports repositories of recent Ubuntu and Debian releases.
GitHub issues: rabbitmq-server#1305, rabbitmq-server#1307.
-
.NET client is now .NET Core-compatible.
Starting with3.7.0
, .NET client releases are decoupled from RabbitMQ server releases and exclusively distributed via the RabbitMQ.Client NuGet package. -
Starting with
3.7.0
, Java client releases are decoupled from RabbitMQ server releases and exclusively distributed via Maven: RabbitMQ Milestones Maven repository, RabbitMQ Maven repository, as well as Maven Central. -
Users tagged with
administrator
now implicitly have access to most operations in all vhosts,
including those they don't have explicit permissions for.GitHub issue: rabbitmq-management#461
-
Plugins now must depend on the
rabbit
application in order to be recognised as such byrabbitmq-plugins list
.
Plugins that do not have the dependency will still function, can be enabled or disabled but won't appear
inrabbitmq-plugins list
output. -
rabbitmq_management_visualiser
plugin no longer ships with RabbitMQ and is considered to be deprecated.
Erlang/OTP 20 Support
Erlang/OTP 20 has breaking changes that affected RabbitMQ.
3.7.0 supports OTP 20, including upgrades of existing installations to OTP 20.
This required changes to the core and multiple plugins that ship with RabbitMQ.
GitHub issues: rabbitmq-server#1243, rabbitmq-server#1250, rabbitmq-server#1268,
rabbitmq-server#1272, rabbitmq-federation#58, rabbitmq-management-agent#47,
rabbitmq-management#415, rabbitmq-stomp#115
Core Server
Enhancements
-
New configuration file format
RabbitMQ now supports a new configuration file format.
The format is based on sysctl
and is similar to.ini
files. Erlang term configuration files are still supported, it is also
possible to combine the two formats (use bothrabbitmq.conf
andadvanced.config
).Most documentation examples were updated to use both new and classic config formats. See the docs
at next.rabbitmq.com, in particular the configuration guide,
for more information.GitHub issues: rabbitmq-server#550,
rabbitmq-server#1103,
rabbitmq-auth-backend-ldap#59 -
Pluggable cluster peer discovery
Automatic clustering for blank (without an existing database) nodes now can discover
peers using pluggable backends. This is a set of features adopted from the rabbitmq-autocluster plugin by Gavin Roy.
Two implementations are available out of the box: one uses a config file- and another DNS A records.
Several more are available via plugins:GitHub issues: rabbitmq-server#486, rabbitmq-server#988, rabbitmq-server#1143
rabbitmq-server#1202, rabbitmq-server#1171, rabbitmq-server#1257, rabbitmq-server#1247 -
Nodes in a cluster now can be restared in arbitrary order. They will attempt to contact
one of the previously seen peers periodically (10 times with 30 second intervals by default).GitHub issue: rabbitmq-server#1022,
rabbitmq-server#487 -
CLI tools were significatnly redesigned,
now can be extended from plugins and support command
aliases (à la Git). There's also a new tool,rabbitmq-diagnostics
, and several new commands available.GitHub issues: rabbitmq-server#577, rabbitmq-cli#38, rabbitmq-server#1085,
rabbitmq-cli#10, rabbitmq-cli#178, rabbitmq-cli#180. -
Every virtual host now has separate message stores.
This improves resiliency and reduces contention in multitenant environments,
plus makes development of tools that perform backups and recovery of resting data easier
in the future.During the upgrade nodes will migrate data to this new layout. This can take some time.
To reduce the amount of time, drain as many queues as possible before upgrading, e.g.
by stopping publishers without stopping consumers for a period of time.GitHub issues: rabbitmq-server#567, rabbitmq-server#1146, rabbitmq-server#1280,
rabbitmq-management#446, rabbitmq-server#1303, rabbitmq-management#460, rabbitmq-server#1321 -
New LevelDB-based message store index plugin.
GitHub issue: rabbitmq-server#838
-
Support config file path values with and without file extensions
RabbitMQ no longer requires
RABBITMQ_CONFIG_FILE
values to not have a.config
or.conf
suffix. It will try appending both suffixes as needed when searching for suitable config file(s) to load.Github Issue: rabbitmq-server#691
-
Operators now can configure how many concurrent connections are allowed in a vhost.
GitHub issue: rabbitmq-server#500
-
Operators now can configure how many queues can exist in a vhost.
GitHub issue: rabbitmq-server#501
-
Operator policies: their definitions are merged with the standard (user) policies and allow operators put global
limits in place, e.g. max queue length or message TTL.GitHub issue: rabbitmq-server#930
-
Plugin version constraints
RabbitMQ now has a mechanism for plugin authors to indicate what versions a plugin is compatible with.
Incompatible plugins are logged and ignored.Github issues: rabbitmq-server#591, rabbitmq-server#735, rabbitmq-server#1090
-
Lager-based logging: less not prone to overload, pluggable backends, debug log level, more flexibility in configuration.
RabbitMQ...
RabbitMQ 3.6.11 RC2
RabbitMQ 3.6.11 RC2
RabbitMQ 3.6.11
RC2 is a preview of maintenance release.
Upgrades and Compatibility
See the "Upgrading clusters" section of the documentation
for general documentation on upgrades.
We recommend monitoring — or at least manually sampling — the RSS of
the Erlang VM running RabbitMQ, comparing it to the value reported in the management UI
to compute the delta. Then adjust configured VM high memory watermark an
possibly provisioning more RAM as needed.
This release has no other known incompatibilities with versions 3.6.7 through 3.6.10.
See 3.6.7 release notes
upgrade and compatibility sections if upgrading from an earlier release.
Core Server
Bug Fixes
-
Node RAM consumption calculation strategy has changed
to a more precise one. Previously the value was underreported. It is possible to switch to the behavior in earlier versions
if desired. This will affect monitoring charts and possibly require bumping VM memory high watermark
or provisioning more RAM.GitHub issue: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-server#1270
-
Erlang/OTP 20 is now supported.
GitHub issues: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-federation#58, rabbitmq-management-agent#47, rabbitmq-management#415, rabbitmq-stomp#115
-
supervisor2
: supervisor could fail to restart failed child processes in some cases.
This could affect multiple plugins, e.g. federation.Contributed by Aliaksey Artamonau (Couchbase).
GitHub issues: rabbitmq-common#201,
rabbitmq-server#1238 -
Memory used by binary heap ("binaries") was reduced for some scenarios that involve mirrored queues.
GitHub issue: rabbitmq-common#208
-
When high VM memory watermarked is set to a value greater than 1.0,
1.0
will be used as effective value now instead of the default (0.4
).GitHub issue: rabbitmq-server#1285
Enhancements
-
Total amount of RAM as seen by a node now can be overridden via config file.
GitHub issue: rabbitmq-server#1224
-
Default value of
RABBITMQ_DISTRIBUTIONBUFFER_SIZE
is now128000
. This makes inter-node communication
throughput more stable on 1 GBbit/s (or greater) network links.GitHub issue: rabbitmq-server#1306
-
Plugins that are already expanded (unarhived from
.ez
archives on node boot) won't be
expanded again.Contributed by Alex Lebedeff (Mirantis).
GitHub issue: rabbitmq-server#1226
Management plugin
Enhancements
-
Listing queues, exchanges, vhosts via HTTP API is now more efficient for common cases
(e.g. when pagination is not used or only a subset of fields is requested).GitHub issue: rabbitmq-management#402
-
Inter-node cluster link traffic information was missing.
GitHub issue: rabbitmq-management#434
-
It is now possible to pre-configure user permission at the time of its creation.
GitHub issue: rabbitmq-management#441
-
rabbitmqadmin
now supports--ssl-insecure
(-k
), serving the same purpose as-k
in curlGitHub issue: rabbitmq-management#452
-
rabbitmqadmin
now supports setting HTTP API endpoint hostname, port, username, and password
using a URI.GitHub issue: rabbitmq-management#437
-
HTTP API requests now are less likely to produce log noise.
GitHub issue: rabbitmq-web-dispatch#27
Bug Fixes
-
Queue master migration no longer leaves statistics database records behind.
GitHub issue: rabbitmq-management#427
-
Consumer argument serialisation to JSON was fixed.
GitHub issue: rabbitmq-management#424
-
It is now again possible to create a user without a password (or password hash).
Such users won't be able to sign in with internal authentication backend
but can be used with external authentication mechanisms (x509 certificates) and backends
(LDAP, HTTP, etc).GitHib issue: rabbitmq-management#383
-
Pagination combined with a user-provided set of columns returned no results.
GitHub issue: rabbitmq-management#404
-
Regular expressions used for filtering were not correctly escaped.
GitHub issue: rabbitmq-management#419
-
rabbitmqadmin
now handles float rates.GitHub issue: rabbitmq-management#457
-
rabbitmqadmin
now ignoresSIGPIPE
signals and much less likely to terminate when its output is piped to
another process.GitHub issue: rabbitmq-management#438
-
HTTP requests with unintialised fields are less likely to crash log event handler.
GitHub issue: rabbitmq-web-dispatch#27
Federation Plugin
Bug Fixes
-
Federation links now recover better in certain scenarios, e.g. when one side of a link could be reset.
GitHub issue: rabbitmq-federation#59
STOMP Plugin
Bug Fixes
-
Erlang/OTP 20 is now supported.
GitHub issue: rabbitmq-stomp#115
MQTT Plugin
Enhancements
-
No-op MQTT message retainer.
GitHub issue: rabbitmq-mqtt#136
Bug Fixes
-
MQTT connection processes now use connection log level.
GitHub issue: rabbitmq-mqtt#142
Consistent Hashing Exchange
Bug Fixes
-
Bucket distribution is now consistent (doesn't change) between plugin and node restarts
(assuming bindings haven't changed).GitHub issue: rabbitmq-consistent-hash-exchange#32
Top Plugin
Bug Fixes
-
rabbitmq-top
now gracefully covers scenarios when it is enabled only on a subset of cluster nodes.GitHub issue: rabbitmq-top#23
-
Node drop down on ETS table tab redirected to the processes tab.
GitHub issue: rabbitmq-top#24
Message Timestamp Plugin
Enhancements
-
Timestamp in milliseconds is also injected as a header (unless the header is present).
GitHub issue: rabbitmq-message-timestamp#16
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-3.6.11.tar.gz
.
RabbitMQ 3.6.11 RC1
RabbitMQ 3.6.11 RC1
RabbitMQ 3.6.11
RC1 is a preview of maintenance release.
Upgrades and Compatibility
See the "Upgrading clusters" section of the documentation
for general documentation on upgrades.
We recommend monitoring — or at least manually sampling — the RSS of
the Erlang VM running RabbitMQ, comparing it to the value reported in the management UI
to compute the delta. Then adjust configured VM high memory watermark an
possibly provisioning more RAM as needed.
This release has no other known incompatibilities with versions 3.6.7 through 3.6.10.
See 3.6.7 release notes
upgrade and compatibility sections if upgrading from an earlier release.
Core Server
Bug Fixes
-
Node RAM consumption calculation strategy has changed
to a more precise one. Previously the value was underreported. It is possible to switch to the behavior in earlier versions
if desired. This will affect monitoring charts and possibly require bumping VM memory high watermark
or provisioning more RAM.GitHub issue: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-server#1270
-
Erlang/OTP 20 is now supported.
GitHub issues: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-federation#58, rabbitmq-management-agent#47, rabbitmq-management#415, rabbitmq-stomp#115
-
supervisor2
: supervisor could fail to restart failed child processes in some cases.
This could affect multiple plugins, e.g. federation.Contributed by Aliaksey Artamonau (Couchbase).
GitHub issues: rabbitmq-common#201,
rabbitmq-server#1238 -
Memory used by binary heap ("binaries") was reduced for some scenarios that involve mirrored queues.
GitHub issue: rabbitmq-common#208
-
When high VM memory watermarked is set to a value greater than 1.0,
1.0
will be used as effective value now instead of the default (0.4
).GitHub issue: rabbitmq-server#1285
Enhancements
-
Total amount of RAM as seen by a node now can be overridden via config file.
GitHub issue: rabbitmq-server#1224
-
Default value of
RABBITMQ_DISTRIBUTIONBUFFER_SIZE
is now128000
. This makes inter-node communication
throughput more stable on 1 GBbit/s (or greater) network links.GitHub issue: rabbitmq-server#1306
-
Plugins that are already expanded (unarhived from
.ez
archives on node boot) won't be
expanded again.Contributed by Alex Lebedeff (Mirantis).
GitHub issue: rabbitmq-server#1226
Management plugin
Enhancements
-
Listing queues, exchanges, vhosts via HTTP API is now more efficient for common cases
(e.g. when pagination is not used or only a subset of fields is requested).GitHub issue: rabbitmq-management#402
-
Inter-node cluster link traffic information was missing.
GitHub issue: rabbitmq-management#434
-
It is now possible to pre-configure user permission at the time of its creation.
GitHub issue: rabbitmq-management#441
-
rabbitmqadmin
now supports setting HTTP API endpoint hostname, port, username, and password
using a URI.GitHub issue: rabbitmq-management#437
-
HTTP API requests now are less likely to produce log noise.
GitHub issue: rabbitmq-web-dispatch#27
Bug Fixes
-
Queue master migration no longer leaves statistics database records behind.
GitHub issue: rabbitmq-management#427
-
Consumer argument serialisation to JSON was fixed.
GitHub issue: rabbitmq-management#424
-
It is now again possible to create a user without a password (or password hash).
Such users won't be able to sign in with internal authentication backend
but can be used with external authentication mechanisms (x509 certificates) and backends
(LDAP, HTTP, etc).GitHib issue: rabbitmq-management#383
-
Pagination combined with a user-provided set of columns returned no results.
GitHub issue: rabbitmq-management#404
-
Regular expressions used for filtering were not correctly escaped.
GitHub issue: rabbitmq-management#419
-
rabbitmqadmin
now handles float rates.GitHub issue: rabbitmq-management#457
-
rabbitmqadmin
now ignoresSIGPIPE
signals and much less likely to terminate when its output is piped to
another process.GitHub issue: rabbitmq-management#438
-
HTTP requests with unintialised fields are less likely to crash log event handler.
GitHub issue: rabbitmq-web-dispatch#27
Federation Plugin
Bug Fixes
-
Federation links now recover better in certain scenarios, e.g. when one side of a link could be reset.
GitHub issue: rabbitmq-federation#59
STOMP Plugin
Bug Fixes
-
Erlang/OTP 20 is now supported.
GitHub issue: rabbitmq-stomp#115
MQTT Plugin
Bug Fixes
-
MQTT connection processes now use connection log level.
GitHub issue: rabbitmq-mqtt#142
Consistent Hashing Exchange
Bug Fixes
-
Bucket distribution is now consistent (doesn't change) between plugin and node restarts
(assuming bindings haven't changed).GitHub issue: rabbitmq-consistent-hash-exchange#32
Top Plugin
Bug Fixes
-
rabbitmq-top
now gracefully covers scenarios when it is enabled only on a subset of cluster nodes.GitHub issue: rabbitmq-top#23
-
Node drop down on ETS table tab redirected to the processes tab.
GitHub issue: rabbitmq-top#24
Message Timestamp Plugin
Enhancements
-
Timestamp in milliseconds is also injected as a header (unless the header is present).
GitHub issue: rabbitmq-message-timestamp#16
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-3.6.11.tar.gz
.
RabbitMQ 3.7.0 Milestone 18
Release Highlights
This is the release notes for RabbitMQ 3.7.0 Milestone 18. This is a preview of
a feature release that's expected to ship in 2017.
Breaking Changes
-
Minimum required Erlang/OTP version is now 18.3. Recent Erlang versions can be obtained from Erlang Solutions or RabbitMQ Erlang RPM repository.
GitHub issue: rabbitmq-server#546
-
.NET client is now .NET Core-compatible.
Starting with3.7.0
, .NET client releases are decoupled from RabbitMQ server releases and exclusively distributed via the RabbitMQ.Client NuGet package. -
Starting with
3.7.0
, Java client releases are decoupled from RabbitMQ server releases and exclusively distributed via Maven: RabbitMQ Milestones Maven repository, RabbitMQ Maven repository, as well as Maven Central. -
Plugins now must depend on the
rabbit
application in order to be recognised as such byrabbitmq-plugins list
.
Plugins that do not have the dependency will still function, can be enabled or disabled but won't appear
inrabbitmq-plugins list
output. -
rabbitmq_management_visualiser
plugin no longer ships with RabbitMQ and is considered to be deprecated.
Erlang/OTP 20 Support
Erlang/OTP 20 has breaking changes that affected RabbitMQ.
3.7.0 supports OTP 20, including upgrades of existing installations to OTP 20.
This required changes to the core and multiple plugins that ship with RabbitMQ.
GitHub issues: rabbitmq-server#1243,
rabbitmq-server#1250,
rabbitmq-server#1268,
rabbitmq-server#1272,
rabbitmq-federation#58,
rabbitmq-management-agent#47,
rabbitmq-management#415,
rabbitmq-stomp#115
Core Server
Enhancements
-
New configuration file format
RabbitMQ now supports a new configuration file format.
The format is based on sysctl
and is similar to.ini
files. Erlang term configuration files are still supported, it is also
possible to combine the two formats (use bothrabbitmq.conf
andadvanced.config
).Most documentation examples were updated to use both new and classic config formats. See the docs
at next.rabbitmq.com, in particular the configuration guide,
for more information.GitHub issues: rabbitmq-server#550,
rabbitmq-server#1103,
rabbitmq-auth-backend-ldap#59 -
Pluggable cluster peer discovery
Automatic clustering for blank (without an existing database) nodes now can discover
peers using pluggable backends. This is a set of features adopted from the rabbitmq-autocluster plugin by Gavin Roy.
Two implementations are available out of the box: one uses a config file- and another DNS A records.
Several more are available via plugins:GitHub issues: rabbitmq-server#486,
rabbitmq-server#988,
rabbitmq-server#1143
rabbitmq-server#1202,
rabbitmq-server#1171,
rabbitmq-server#1257,
rabbitmq-server#1247 -
Nodes in a cluster now can be restared in arbitrary order. They will attempt to contact
one of the previously seen peers periodically (10 times with 30 second intervals by default).GitHub issue: rabbitmq-server#1022,
rabbitmq-server#487 -
CLI tools were significatnly redesigned,
now can be extended from plugins and support command
aliases (à la Git). There's also a new tool,rabbitmq-diagnostics
, and several new commands available.GitHub issues: rabbitmq-server#577,
rabbitmq-cli#38,
rabbitmq-server#1085,
rabbitmq-cli#10,
rabbitmq-cli#178,
rabbitmq-cli#180. -
Every virtual host now has separate message stores.
This improves resiliency and reduces contention in multitenant environments,
plus makes development of tools that perform backups and recovery of resting data easier
in the future.During the upgrade nodes will migrate data to this new layout. This can take some time.
To reduce the amount of time, drain as many queues as possible before upgrading, e.g.
by stopping publishers without stopping consumers for a period of time.GitHub issues: rabbitmq-server#567,
rabbitmq-server#1146,
rabbitmq-server#1280,
rabbitmq-management#446 -
New LevelDB-based message store index plugin.
GitHub issue: rabbitmq-server#838
-
Support config file path values with and without file extensions
RabbitMQ no longer requires
RABBITMQ_CONFIG_FILE
values to not have a.config
or.conf
suffix. It will try appending both suffixes as needed when searching for suitable config file(s) to load.Github Issue: rabbitmq-server#691
-
Operators now can configure how many concurrent connections are allowed in a vhost.
GitHub issue: rabbitmq-server#500
-
Operators now can configure how many queues can exist in a vhost.
GitHub issue: rabbitmq-server#501
-
Operator policies: their definitions are merged with the standard (user) policies and allow operators put global
limits in place, e.g. max queue length or message TTL.GitHub issue: rabbitmq-server#930
-
Plugin version constraints
RabbitMQ now has a mechanism for plugin authors to indicate what versions a plugin is compatible with.
Incompatible plugins are logged and ignored.Github issues: rabbitmq-server#591,
rabbitmq-server#735,
rabbitmq-server#1090 -
Lager-based logging: less not prone to overload, pluggable backends, debug log level, more flexibility in configuration.
RabbitMQ now uses Lager for its logging subsystem.
This brings a group of benefits: (quite verbose) debug log level, pluggable logging
backends (e.g. logging to Syslog no longer requires external tools), and much
more flexibility in logging configuration.See rabbitmq.config.example
for examples of logging configuration with Lager.GitHub issue: rabbitmq-server#94
-
Topic authorization built around topic e...
RabbitMQ 3.6.11 Milestone 5
RabbitMQ 3.6.11 Milestone 5
RabbitMQ 3.6.11
Milestone 5 is a milestone of maintenance release.
Upgrades and Compatibility
See the "Upgrading clusters" section of the documentation
for general documentation on upgrades.
We recommend monitoring — or at least manually sampling — the RSS of
the Erlang VM running RabbitMQ, comparing it to the value reported in the management UI
to compute the delta. Then adjust configured VM high memory watermark an
possibly provisioning more RAM as needed.
This release has no other known incompatibilities with versions 3.6.7 through 3.6.10.
See 3.6.7 release notes
upgrade and compatibility sections if upgrading from an earlier release.
Core Server
Bug Fixes
-
Node RAM consumption calculation strategy has changed
to a more precise one. Previously the value was underreported. It is possible to switch to the behavior in earlier versions
if desired. This will affect monitoring charts and possibly require bumping VM memory high watermark
or provisioning more RAM.GitHub issue: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-server#1270
-
Erlang/OTP 20 is now supported.
GitHub issues: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-federation#58, rabbitmq-management-agent#47, rabbitmq-management#415, rabbitmq-stomp#115
-
supervisor2
: supervisor could fail to restart failed child processes in some cases.
This could affect multiple plugins, e.g. federation.Contributed by Aliaksey Artamonau (Couchbase).
GitHub issues: rabbitmq-common#201,
rabbitmq-server#1238 -
Memory used by binary heap ("binaries") was reduced for some scenarios that involve mirrored queues.
GitHub issue: rabbitmq-common#208
-
When high VM memory watermarked is set to a value greater than 1.0,
1.0
will be used as effective value now instead of the default (0.4
).GitHub issue: rabbitmq-server#1285
Enhancements
-
Total amount of RAM as seen by a node now can be overridden via config file.
GitHub issue: rabbitmq-server#1224
-
Plugins that are already expanded (unarhived from
.ez
archives on node boot) won't be
expanded again.Contributed by Alex Lebedeff (Mirantis).
GitHub issue: rabbitmq-server#1226
Management plugin
Enhancements
-
Listing queues, exchanges, vhosts via HTTP API is now more efficient for common cases
(e.g. when pagination is not used or only a subset of fields is requested).GitHub issue: rabbitmq-management#402
-
Inter-node cluster link traffic information was missing.
GitHub issue: rabbitmq-management#434
-
It is now possible to pre-configure user permission at the time of its creation.
GitHub issue: rabbitmq-management#441
-
rabbitmqadmin
now supports setting HTTP API endpoint hostname, port, username, and password
using a URI.GitHub issue: rabbitmq-management#437
-
HTTP API requests now are less likely to produce log noise.
GitHub issue: rabbitmq-web-dispatch#27
Bug Fixes
-
Queue master migration no longer leaves statistics database records behind.
GitHub issue: rabbitmq-management#427
-
It is now again possible to create a user without a password (or password hash).
Such users won't be able to sign in with internal authentication backend
but can be used with external authentication mechanisms (x509 certificates) and backends
(LDAP, HTTP, etc).GitHib issue: rabbitmq-management#383
-
Pagination combined with a user-provided set of columns returned no results.
GitHub issue: rabbitmq-management#404
-
Regular expressions used for filtering were not correctly escaped.
GitHub issue: rabbitmq-management#419
-
rabbitmqadmin
now ignoresSIGPIPE
signals and much less likely to terminate when its output is piped to
another process.GitHub issue: rabbitmq-management#438
-
HTTP requests with unintialised fields are less likely to crash log event handler.
GitHub issue: rabbitmq-web-dispatch#27
Federation Plugin
Bug Fixes
-
Federation links now recover better in certain scenarios, e.g. when one side of a link could be reset.
GitHub issue: rabbitmq-federation#59
STOMP Plugin
Bug Fixes
-
Erlang/OTP 20 is now supported.
GitHub issue: rabbitmq-stomp#115
Consistent Hashing Exchange
Bug Fixes
-
Bucket distribution is now consistent (doesn't change) between plugin and node restarts
(assuming bindings haven't changed).GitHub issue: rabbitmq-consistent-hash-exchange#32
Top Plugin
Bug Fixes
-
rabbitmq-top
now gracefully covers scenarios when it is enabled only on a subset of cluster nodes.GitHub issue: rabbitmq-top#23
-
Node drop down on ETS table tab redirected to the processes tab.
GitHub issue: rabbitmq-top#24
Message Timestamp Plugin
Enhancements
-
Timestamp in milliseconds is also injected as a header (unless the header is present).
GitHub issue: rabbitmq-message-timestamp#16
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-3.6.11.tar.gz
.
RabbitMQ 3.6.11 Milestone 4
RabbitMQ 3.6.11 Milestone 4
RabbitMQ 3.6.11
Milestone 4 is a milestone of maintenance release.
Upgrades and Compatibility
See the "Upgrading clusters" section of the documentation
for general documentation on upgrades.
We recommend monitoring — or at least manually sampling — the RSS of
the Erlang VM running RabbitMQ, comparing it to the value reported in the management UI
to compute the delta. Then adjust configured VM high memory watermark an
possibly provisioning more RAM as needed.
This release has no other known incompatibilities with versions 3.6.7 through 3.6.10.
See 3.6.7 release notes
upgrade and compatibility sections if upgrading from an earlier release.
Core Server
Bug Fixes
-
Node RAM consumption calculation strategy has changed
to a more precise one. Previously the value was underreported. It is possible to switch to the behavior in earlier versions
if desired. This will affect monitoring charts and possibly require bumping VM memory high watermark
or provisioning more RAM.GitHub issue: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-server#1270
-
Erlang/OTP 20 is now supported.
GitHub issues: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-federation#58, rabbitmq-management-agent#47, rabbitmq-management#415, rabbitmq-stomp#115
-
supervisor2
: supervisor could fail to restart failed child processes in some cases.
This could affect multiple plugins, e.g. federation.Contributed by Aliaksey Artamonau (Couchbase).
GitHub issues: rabbitmq-common#201,
rabbitmq-server#1238 -
Memory used by binary heap ("binaries") was reduced for some scenarios that involve mirrored queues.
GitHub issue: rabbitmq-common#208
-
When high VM memory watermarked is set to a value greater than 1.0,
1.0
will be used as effective value now instead of the default (0.4
).GitHub issue: rabbitmq-server#1285
Enhancements
-
Total amount of RAM as seen by a node now can be overridden via config file.
GitHub issue: rabbitmq-server#1224
-
Plugins that are already expanded (unarhived from
.ez
archives on node boot) won't be
expanded again.Contributed by Alex Lebedeff (Mirantis).
GitHub issue: rabbitmq-server#1226
Management plugin
Enhancements
-
Listing queues, exchanges, vhosts via HTTP API is now more efficient for common cases
(e.g. when pagination is not used or only a subset of fields is requested).GitHub issue: rabbitmq-management#402
-
It is now possible to pre-configure user permission at the time of its creation.
GitHub issue: rabbitmq-management#441
-
rabbitmqadmin
now supports setting HTTP API endpoint hostname, port, username, and password
using a URI.GitHub issue: rabbitmq-management#437
-
HTTP API requests now are less likely to produce log noise.
GitHub issue: rabbitmq-web-dispatch#27
Bug Fixes
-
Queue master migration no longer leaves statistics database records behind.
GitHub issue: rabbitmq-management#427
-
It is now again possible to create a user without a password (or password hash).
Such users won't be able to sign in with internal authentication backend
but can be used with external authentication mechanisms (x509 certificates) and backends
(LDAP, HTTP, etc).GitHib issue: rabbitmq-management#383
-
Pagination combined with a user-provided set of columns returned no results.
GitHub issue: rabbitmq-management#404
-
Regular expressions used for filtering were not correctly escaped.
GitHub issue: rabbitmq-management#419
-
rabbitmqadmin
now ignoresSIGPIPE
signals and much less likely to terminate when its output is piped to
another process.GitHub issue: rabbitmq-management#438
STOMP Plugin
Bug Fixes
-
Erlang/OTP 20 is now supported.
GitHub issue: rabbitmq-stomp#115
Consistent Hashing Exchange
Bug Fixes
-
Bucket distribution is now consistent (doesn't change) between plugin and node restarts
(assuming bindings haven't changed).GitHub issue: rabbitmq-consistent-hash-exchange#32
Top Plugin
Bug Fixes
-
rabbitmq-top
now gracefully covers scenarios when it is enabled only on a subset of cluster nodes.GitHub issue: rabbitmq-top#23
-
Node drop down on ETS table tab redirected to the processes tab.
GitHub issue: rabbitmq-top#24
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-3.6.11.tar.gz
.
RabbitMQ 3.7.0 Milestone 17
Release Highlights
This is the release notes for RabbitMQ 3.7.0 Milestone 16. This is a preview of
a feature release that's expected to ship in 2017.
Breaking Changes
-
Minimum required Erlang/OTP version is now 18.3. Recent Erlang versions can be obtained from Erlang Solutions or RabbitMQ Erlang RPM repository.
GitHub issue: rabbitmq-server#546
-
.NET client is now .NET Core-compatible.
Starting with3.7.0
, .NET client releases are decoupled from RabbitMQ server releases and exclusively distributed via the RabbitMQ.Client NuGet package. -
Starting with
3.7.0
, Java client releases are decoupled from RabbitMQ server releases and exclusively distributed via Maven: RabbitMQ Milestones Maven repository, RabbitMQ Maven repository, as well as Maven Central. -
Plugins now must depend on the
rabbit
application in order to be recognised as such byrabbitmq-plugins list
.
Plugins that do not have the dependency will still function, can be enabled or disabled but won't appear
inrabbitmq-plugins list
output. -
rabbitmq_management_visualiser
plugin no longer ships with RabbitMQ and is considered to be deprecated.
Erlang/OTP 20 Support
Erlang/OTP 20 has breaking changes that affected RabbitMQ.
3.7.0 supports OTP 20, including upgrades of existing installations to OTP 20.
This required changes to the core and multiple plugins that ship with RabbitMQ.
GitHub issues: rabbitmq-server#1243,
rabbitmq-server#1250,
rabbitmq-server#1268,
rabbitmq-server#1272,
rabbitmq-federation#58,
rabbitmq-management-agent#47,
rabbitmq-management#415,
rabbitmq-stomp#115
Server
Enhancements
-
New configuration file format
RabbitMQ now supports a new configuration file format.
The format is based on sysctl
and is similar to.ini
files. Erlang term configuration files are still supported, it is also
possible to combine the two formats (use bothrabbitmq.conf
andadvanced.config
).Most documentation examples were updated to use both new and classic config formats. See the docs
at next.rabbitmq.com, in particular the configuration guide,
for more information.GitHub issues: rabbitmq-server#550,
rabbitmq-server#1103,
rabbitmq-auth-backend-ldap#59 -
Pluggable cluster peer discovery
Automatic clustering for blank (without an existing database) nodes now can discover
peers using pluggable backends. This is a set of features adopted from the rabbitmq-autocluster plugin by Gavin Roy.
Two implementations are available out of the box: one uses a config file- and another DNS A records.
Several more are available via plugins:GitHub issues: rabbitmq-server#486,
rabbitmq-server#988,
rabbitmq-server#1143
rabbitmq-server#1202,
rabbitmq-server#1171,
rabbitmq-server#1257,
rabbitmq-server#1247 -
Nodes in a cluster now can be restared in arbitrary order. They will attempt to contact
one of the previously seen peers periodically (10 times with 30 second intervals by default).GitHub issue: rabbitmq-server#1022,
rabbitmq-server#487 -
CLI tools were significatnly redesigned,
now can be extended from plugins and support command
aliases (à la Git). There's also a new tool,rabbitmq-diagnostics
, and several new commands available.GitHub issues: rabbitmq-server#577,
rabbitmq-cli#38,
rabbitmq-server#1085,
rabbitmq-cli#10,
rabbitmq-cli#178,
rabbitmq-cli#180. -
Every virtual host now has separate message stores.
This improves resiliency and reduces contention in multitenant environments,
plus makes development of tools that perform backups and recovery of resting data easier
in the future.During the upgrade nodes will migrate data to this new layout. This can take some time.
To reduce the amount of time, drain as many queues as possible before upgrading, e.g.
by stopping publishers without stopping consumers for a period of time.GitHub issues: rabbitmq-server#567,
rabbitmq-server#1146,
rabbitmq-server#1280 -
New LevelDB-based message store index plugin.
GitHub issue: rabbitmq-server#838
-
Support config file path values with and without file extensions
RabbitMQ no longer requires
RABBITMQ_CONFIG_FILE
values to not have a.config
or.conf
suffix. It will try appending both suffixes as needed when searching for suitable config file(s) to load.Github Issue: rabbitmq-server#691
-
Operators now can configure how many concurrent connections are allowed in a vhost.
GitHub issue: rabbitmq-server#500
-
Operators now can configure how many queues can exist in a vhost.
GitHub issue: rabbitmq-server#501
-
Operator policies: their definitions are merged with the standard (user) policies and allow operators put global
limits in place, e.g. max queue length or message TTL.GitHub issue: rabbitmq-server#930
-
Plugin version constraints
RabbitMQ now has a mechanism for plugin authors to indicate what versions a plugin is compatible with.
Incompatible plugins are logged and ignored.Github issues: rabbitmq-server#591,
rabbitmq-server#735,
rabbitmq-server#1090 -
Lager-based logging: pluggable backends, debug log level, more flexibility in
configuration.RabbitMQ now uses Lager for its logging subsystem.
This brings a group of benefits: (quite verbose) debug log level, pluggable logging
backends (e.g. logging to Syslog no longer requires external tools), and much
more flexibility in logging configuration.See rabbitmq.config.example
for examples of logging configuration with Lager.GitHub issue: rabbitmq-server#94
-
Topic authorization built around topic exchanges. This includes support for certain variables,
such as virtual host and username.GitHub issues: rabbitmq-server#505,
...
RabbitMQ 3.6.11 Milestone 3
RabbitMQ 3.6.11 Milestone 3
RabbitMQ 3.6.11
Milestone 3 is a milestone of maintenance release.
Upgrades and Compatibility
See the "Upgrading clusters" section of the documentation
for general documentation on upgrades.
We recommend monitoring — or at least manually sampling — the RSS of
the Erlang VM running RabbitMQ, comparing it to the value reported in the management UI
to compute the delta. Then adjust configured VM high memory watermark an
possibly provisioning more RAM as needed.
This release has no other known incompatibilities with versions 3.6.7 through 3.6.10.
See 3.6.7 release notes
upgrade and compatibility sections if upgrading from an earlier release.
Core Server
Bug Fixes
-
Node RAM consumption calculation strategy has changed
to a more precise one. Previously the value was underreported. It is possible to switch to the behavior in earlier versions
if desired. This will affect monitoring charts and possibly require bumping VM memory high watermark
or provisioning more RAM.GitHub issue: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-server#1270
-
Erlang/OTP 20 is now supported.
GitHub issues: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-federation#58, rabbitmq-management-agent#47, rabbitmq-management#415, rabbitmq-stomp#115
-
supervisor2
: supervisor could fail to restart failed child processes in some cases.
This could affect multiple plugins, e.g. federation.Contributed by Aliaksey Artamonau (Couchbase).
GitHub issues: rabbitmq-common#201,
rabbitmq-server#1238 -
Memory used by binary heap ("binaries") was reduced for some scenarios that involve mirrored queues.
GitHub issues: rabbitmq-common#208
Enhancements
-
Total amount of RAM as seen by a node now can be overridden via config file.
GitHub issue: rabbitmq-server#1224
-
Plugins that are already expanded (unarhived from
.ez
archives on node boot) won't be
expanded again.Contributed by Alex Lebedeff (Mirantis).
GitHub issue: rabbitmq-server#1226
Management plugin
Enhancements
-
Listing queues, exchanges, vhosts via HTTP API is now more efficient for common cases
(e.g. when pagination is not used or only a subset of fields is requested).GitHub issue: rabbitmq-management#417
Bug Fixes
- Pagination combined with a user-provided set of columns returned no results.
GitHub issue: rabbitmq-management#404
- Regular expressions used for filtering were not correctly escaped.
GitHub issue: rabbitmq-management#419
STOMP plugin
Bugs
-
Erlang/OTP 20 is now supported.
GitHub issues: rabbitmq-stomp#115
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-3.6.11.tar.gz
.
RabbitMQ 3.6.11 Milestone 2
RabbitMQ 3.6.11 Milestone 2
RabbitMQ 3.6.11
Milestone 2 is a milestone of maintenance release.
Upgrades and Compatibility
See the "Upgrading clusters" section of the documentation
for general documentation on upgrades.
We recommend monitoring — or at least manually sampling — the RSS of
the Erlang VM running RabbitMQ, comparing it to the value reported in the management UI
to compute the delta. Then adjust configured VM high memory watermark an
possibly provisioning more RAM as needed.
This release has no other known incompatibilities with versions 3.6.7 through 3.6.10.
See 3.6.7 release notes
upgrade and compatibility sections if upgrading from an earlier release.
upgrades to that version for existing clusters are not supported due to breaking changes
that severely affect RabbitMQ.
Newly provisioned clusters or nodes can use Erlang 20 safely.
Core Server
Bug Fixes
-
Node RAM consumption calculation strategy has changed
to a more precise one. Previously the value was underreported. It is possible to switch to the behavior in earlier versions
if desired. This will affect monitoring charts and possibly require bumping VM memory high watermark
or provisioning more RAM.GitHub issue: rabbitmq-server#1243, rabbitmq-server#1246
-
Erlang/OTP 20 is now supported.
GitHub issues: rabbitmq-server#1243, rabbitmq-server#1246, rabbitmq-federation#58, rabbitmq-management-agent#47, rabbitmq-management#415, rabbitmq-stomp#115
-
supervisor2
: supervisor could fail to restart failed child processes in some cases.
This could affect multiple plugins, e.g. federation.Contributed by Aliaksey Artamonau (Couchbase).
GitHub issues: rabbitmq-common#201,
rabbitmq-server#1238
Enhancements
-
Total amount of RAM as seen by a node now can be overridden via config file.
GitHub issue: rabbitmq-server#1224
-
Plugins that are already expanded (unarhived from
.ez
archives on node boot) won't be
expanded again.Contributed by Alex Lebedeff (Mirantis).
GitHub issue: rabbitmq-server#1226
Management plugin
Enhancements
-
Listing queues, exchanges, vhosts via HTTP API is now more efficient for common cases
(e.g. when pagination is not used or only a subset of fields is requested).GitHub issue: rabbitmq-management#417
Bug Fixes
- Pagination combined with a user-provided set of columns returned no results.
GitHub issue: rabbitmq-management#404
STOMP plugin
Bugs
-
Erlang/OTP 20 is now supported.
GitHub issues: rabbitmq-stomp#115
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-3.6.11.tar.gz
.
RabbitMQ 3.6.10
RabbitMQ 3.6.10
RabbitMQ 3.6.10
is a maintenance release.
Upgrades and Compatibility
See the "Upgrading clusters" section of the documentation
for general documentation on upgrades.
rabbitmq_management_agent.sample_retention_policies
values.
In case your installation overrides default sample retention policies, please make sure to read
the discussion in rabbitmq-management-agent#41 before
upgrading to make sure your configuration passes validation.
This release has no other known incompatibilities with versions 3.6.7 through 3.6.9. See 3.6.7 release notes
upgrade and compatibility notes if upgrading from an earlier release.
Core Server
Bug Fixes
-
rabbitmqctl wait
exited with the status code of 0 when node stopped because it could
not contact any cluster peers to [re-]join.GitHub issue: rabbitmq-server#1214
-
rabbitmqctl forget_cluster_node
used in offline mode could result in promotion of a node that's no longer a cluster member.GitHub issue: rabbitmq-server#1213
-
Queue master locator could not be set using optional queue arguments (
x-arguments
).GitHub issue: rabbitmq-server#1172
-
CLI tool (e.g.
rabbitmqctl
) man pages were not rendered correctly.GitHub issue: rabbitmq-server#1180
Enhancements
-
Disk space monitor will periodically retry (every 2 minutes by default, up to 10 times)
before going into disabled state as external tools used to monitor available disk space
can fail or produce unexpected output temporarily.GitHub issue: rabbitmq-server#1178
-
Memory relative free disk space limits now support integer values as well as floats.
GitHub issue: rabbitmq-server#1194
Management and Management Agent Plugins
Bug Fixes
-
TLS-related settings in HTTP API listeners could break JSON serialisation for the
GET /api/overview
endpoint.GitHub issue: rabbitmq-management#393
-
Non-numerical values for numerical stats are now handled safety by stats aggregation. For example, if
free disk space monitor had to stop reporting data because it could not parse external tool output
that would break HTTP APIGET /api/overview
responses.GitHub issue: rabbitmq-management#375.
-
Stats are no longer emitted for connections that are not considered to be in the fully initialised
state.GitHub issue: rabbitmq-management-agent#42
-
POST
requests now instruct clients to close TCP connections.In some popular browsers (Chrome, Internet Explorer) a
POST
request followed by an immediateGET
request
would result in a 400 response. Other browsers do no exhibit this behaviour.GitHub issue: rabbitmq-management#377
-
I/O average time per operation graph didn't match legend.
GitHub issue: rabbitmq-management#384
-
Sample retention policies are now validated more strictly to avoid configurations that
are not supported and will lead to exceptions.GitHub issue: rabbitmq-management-agent#41
-
Certain stats for connections were not initialised as numerical values, which resulted in log noise.
GitHub issue: rabbitmq-management-agent#45
-
UI operation for binding deletion did not respect optional (extra) binding arguments.
GitHub issue: rabbitmq-management#243
Enhancements
-
Current virtual host is pre-selected on the "Add/update policy" form.
GitHub issue: rabbitmq-management#382
MQTT Plugin
Bug Fixes
-
A non-initialized connection (e.g. one that failed early because client-provided
payload wasn't a valid MQTT payload) produced a crash report log entry during termination.GitHub issue: rabbitmq-mqtt#134
LDAP Plugin
Bug Fixes
-
Stale connection purging in LDAP connection pool could fail
with abadmatch
.GitHub issue: rabbitmq-auth-backend-ldap#66
Trust Store Plugin
Enhancements
-
Certificate change detection algorithm no longer uses
stat(2)
on certificate directory because
of its limitations that could lead to undetected changes in certain scenarios.GitHub issue: rabbitmq-trust-store#58
Web STOMP Plugin
Bug Fixes
-
The plugin failed to start after being stopped and re-enabled.
GitHub issue: rabbitmq-web-stomp#72
-
Server-initiated consumer cancellation failed with
an exception.GitHub issue: rabbitmq-web-stomp#75
Management Visualiser Plugin
Bug Fixes
-
The plugin wasn't compatible with recent
3.6.x
releases.GitHub issue: rabbitmq-management-visualiser#8
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. Please download the archive named rabbitmq-3.6.10.tar.gz
.