release-notes/3.6.16.md
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.
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:
rabbit.channel_max value is now about 2K, a much safer value than 65K used previouslyThis 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.
Please read this note on RabbitMQ 3.6.x series support timeline.
queue leader locator min-masters incorrectly 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
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 the RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS environment 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.delete operations will now force delete queues that don't have a promotable
master.
GitHub issue: rabbitmq-server#1501
ha-promote-on-failure is a new mirrored queue setting that's similar to ha-promote-on-shutdown
but for unexpected leader replica 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 from 65535 to 2047.
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_max in the config file to a higher suitable value, e.g.:
[
{rabbit, [
{channel_max, 4000}
]}
].
GitHub issue: rabbitmq-server#1593
Eliminated unnecessary encoding conversions that could lead to increased memory consumption.
GitHub issue: rabbitmq-management#550
rabbitmqadmin could run into an exception with certain formatting settings on Python 2.x.
GitHub issue: rabbitmq-management#568
rabbitmqadmin incorrectly encoded spaces in connection name values
GitHub issue: rabbitmq-management#579
HTTP API stats documentation used incorrect field names.
GitHub issue: rabbitmq-management#561
Reduced padding usage in tables in the management UI.
GitHub issue: rabbitmq-management#541
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_timeout now defaults to 300 seconds instead of infinity.
GitHub issue: rabbitmq-auth-backend-ldap#81
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.
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.