3.6.6
is a maintenance release that includes a fix for an important security vulnerability (CVE-2016-9877) in the MQTT plugin.
⚠️ Upgrading from versions between 3.6.0 and 3.6.5 to this release requires a cluster shutdown. This is also true for versions prior to 3.6.0. See the "Upgrading clusters" section of the documentation.
-
Changing queue mode to
lazy
could block queue process in certain circumstances.GitHub issue: rabbitmq-server#850
-
Mirroring implementation didn't handle certain internal protocol messages arriving out of order.
GitHub issue: rabbitmq-server#922
-
Mirror set changes weren't handled gracefully in certain circumstances (e.g. in the middle of a mirror promotion).
GitHub issue: rabbitmq-server#914
-
Mirrored queue could terminate after promotion if HA policy was reapplied during sync.
GitHub issue: rabbitmq-server#803
-
Autoheal partition handling mode could run into a multi-node deadlock.
GitHub issue: rabbitmq-server#928
-
Queue mirror group membership now correctly handles certain partial partition cases.
GitHub issues: rabbitmq-server#950, rabbitmq-server#953
-
Eager queue sync will now stop as soon as a mirror shutdown/unavailability is detected.
GitHub issue: rabbitmq-server#975
-
Lazy queues now trigger runtime GC significantly less frequently, making moving data to the message store more efficient.
GitHub issue: rabbitmq-server#973
-
Mirroring policies now respect the
nodes
parameter when re-electing a master. -
After a partial network partitions, nodes with newly elected masters will now be more defensive about the (no longer relevant) policy change notifications.
GitHub issue: rabbitmq-server#1007
-
Late responses from peers in certain partial network partition scenarios are now ignored by channels.
GitHub issue: rabbitmq-server#1005
-
After a partial network partitions, nodes with newly elected masters will now be more defensive about the (no longer relevant) synchronization start requests.
GitHub issue: rabbitmq-server#1006
-
Network partition triggered late and duplicate acknowledgements are now ignored/filterd out by queue leader processes.
GitHub issue: rabbitmq-server#960
-
Queue mirrors now try detect leader replica changes during partial partitions and do a clean stop instead of failing because their state is in sync with the old leader and not the newly promoted one.
GitHub issue: rabbitmq-server#944
-
rabbitmqctl
and server startup could be affected by some DNS configurations.GitHub issue: rabbitmq-server#890
-
RPM package was split into two: for CentOS 6 and 7. The latter includes systemd support.
GitHub issue: rabbitmq-server#932
-
Workaround for Erlang/OTP bug OTP-13425 where crash dump generation failed on UNIX platforms.
GitHub issue: rabbitmq-server#956
-
Inter-node traffic buffer increased to 32 MB by default, configurable with
RABBITMQ_DISTRIBUTION_BUFFER_SIZE
(in kilobytes).This improves network bandwidth utilization for inter-node traffic and reduces the probability of spurious network partitions due to latency spikes caused by the buffer being full.
GitHub issue: rabbitmq-server#908
-
Default flow control settings were increased to
{200, 100}
. This helps with consumer throughput in some cases. The value still can be configured using therabbit.credit_flow_default_credit
setting.GitHub issue: rabbitmq-server#949
-
rabbitmqctl list_queues
now has more filtering options.GitHub issue: rabbitmq-server#851
-
RABBITMQ_IGNORE_SIGINT
is a new environment variable that lets the user disable the+B
VM flag that is known to have issues in Erlang 18.x series (prevents crash dumps from being produced).GitHub issue: rabbitmq-server#956
-
The
pg2_fixed
module is now replaced by the standardpg2
from a newer Erlang/OTP release.GitHub issue: rabbitmq-server#980
-
Authentication with correct username but omitted password succeeded when TLS/x509 certificate wasn't provided by the client. CVE allocation for this vulnerability is pending.
GitHub issue: rabbitmq-mqtt#96
-
The plugin no longer tries to check if JMS client's version is identical/compatible. This caused certain legitimate use cases, such as exchange declaration over HTTP API, to fail.
GitHub issue: rabbitmq-jms-topic-exchange#9
-
Fixed a NPE that can occur when a thread attempts to create a new channel after a connection has been recovered but before channel recovery has completed.
GitHub issue: rabbitmq-java-client#197
Contributed by Michael Dent.
-
Binding cache entries of auto-delete queues should be cleaned up when the last consumer is cancelled.
GitHub issue: rabbitmq-java-client#199
Contributed by Michael Dent.
-
When a channel is closed, consumers will be correctly cleaned up from AutorecoveringConnection cache.
GitHub issue: rabbitmq-java-client#208
-
junit
is no longer listed as a dependency in the OSGi manifestGitHub issue: rabbitmq-java-client#211
-
com.rabbitmq.client.AddressResolver
is a new interface that can be used to "expand" endpoints into groups of IP addresses, e.g. to a list of IP addresses resolved from a DNS record.GitHub issue: rabbitmq-java-client#153
-
Building on the new
AddressResolver
interface, the client now includes a resolver that uses DNS SVR records to discover endpoints.GitHub issue: rabbitmq-java-client#104
-
com.rabbitmq.client.BuiltinExchangeType
is an enum that contains built-in exchange types.GitHub issue: rabbitmq-java-client#150
-
Fixed a possible
NullReferenceException
inHeartbeatReadTimerCallback
during connection closure.GitHub issue: rabbitmq-dotnet-client#257
-
Fixed a potential race condition in
EventingBasicConsumer
GitHub issue: rabbitmq-dotnet-client#242
-
Federation links now specify a name which makes them easier to tell from other connections in the management UI (requires RabbitMQ 3.6.3+).
GitHub issue: rabbitmq-federation#39
-
Shovel connections now specify a name which makes them easier to tell from other connections in the management UI (requires RabbitMQ 3.6.3+).
GitHub issue: rabbitmq-shovel#19
Available from:
- GitHub (see below)
- Bintray
- Package Cloud
- rabbitmq.com
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-3.6.6.tar.gz
.