Releases: rabbitmq/rabbitmq-server
RabbitMQ 3.6.10 RC2
RabbitMQ 3.6.10 RC2
RabbitMQ 3.6.10
RC2 is a preview of 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 or the client libraries. Please download the archive named rabbitmq-3.6.10.tar.gz
.
RabbitMQ 3.7.0 Milestone 15
Release Highlights
This is the release notes for RabbitMQ 3.7.0 Milestone 15. This is a preview of
a feature release that's expected to ship around Q2-Q3 of 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.
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 feature borrowed 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.GitHub issues: rabbitmq-server#486,
rabbitmq-server#988,
rabbitmq-server#1143
rabbitmq-server#1202,
rabbitmq-server#1171 -
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, provide alternative output formats, 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 -
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.
GitHub issues: rabbitmq-server#505,
rabbitmq-mqtt#95,
rabbitmq-server#1085,
rabbitmq-server#1099,
rabbitmq-mqtt#114 -
Proxy Protocol support.
GitHub issue: rabbitmq-server#589
-
Deleting a vhost now will force close all connections in it.
GitHub issue: rabbitmq-server#627
-
Deleting a user account now will force close all of its connections.
GitHub issue: rabbitmq-server#628
-
Standalone MacOS release now bundles Erlang 19.2.
GitHub issue: rabbitmq-server-release#10
-
New CLI command for closing connections in bulk (e.g. a specific vhost).
GitHub issue: rabbitmq-server#849
-
New CLI command for detecting potentially stuck
processes (previously invoked asrabbit_diagnostics:maybe_stuck/0
viarabbitmqctl eval
).GitHub issue: rabbitmq-cli#144
-
New CLI command that lists non-AMQP connections (e.g. MQTT).
GitHub issue: [rabbitmq-cli#121](https://github.com/rabbitmq/rabbitmq-cli/issue...
RabbitMQ 3.6.9
RabbitMQ 3.6.9
RabbitMQ 3.6.9
is a security and maintenance release.
Upgrades and Compatibility
See the "Upgrading clusters" section of the documentation
for general documentation on upgrades.
This release has no incompatibilities with 3.6.7. See 3.6.7 release notes
upgrade and compatibility notes if upgrading from an earlier release.
Management and Management Agent Plugins
Security Vulnerability Patches
Details for the CVEs below are pending publication.
CVE-2017-4965
: XSS vulnerabilities in management UICVE-2017-4966
: authentication details are stored in browser-local storage without expirationCVE-2017-4967
: XSS vulnerabilities in management UI
As part of the patch addressing CVE-2017-4966
management UI sessions were limited to 8 hours.
Bug Fixes
-
Certain TCP and TLS listener configuration settings could break JSON serialisation of
GET /api/overview
responses.GitHub issues: rabbitmq-management-agent#39,
rabbitmq-management#364,
rabbitmq-management-agent#36
Federation Plugin
Bug Fixes
-
More numerical types are now handled for the "hops" property.
GitHub issue: rabbitmq-federation#56
.NET Client
Bug Fixes
-
Calling ExchangeBind more than once with the same arguments threw an exception.
GitHub issues: rabbitmq-dotnet-client#314,
rabbitmq-dotnet-client#317
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.9.tar.gz
.
RabbitMQ 3.6.8
RabbitMQ 3.6.8
RabbitMQ 3.6.8
is a maintenance release that restores Erlang/OTP R16B03 and 17.x compatibility
that was unintentionally affected in 3.6.7 by producing that release on a significantly newer Erlang/OTP version.
Upgrades and Compatibility
See the "Upgrading clusters" section of the documentation for general documentation on upgrades.
This release has no incompatibilities with 3.6.7. See 3.6.7 release notes upgrade and compatibility nodes if upgrading from an earlier release.
Server
Bug Fixes
-
Erlang/OTP R16B03 and 17.x are supported again by producing this release on R16B03.
Note that some configurations or community plugins may require a later version.
We recommend all users to upgrade to a 19.x series release if possible. See Debian and RPM installation guides for some Erlang/OTP installation options.GitHub issues: rabbitmq-server#1148, rabbitmq-server#1149
Management Plugin
Bug Fixes
-
Certain user permission violations were resulting in a 500 response and scary log entries.
GitHub issue: rabbitmq-management#360
Management Agent Plugin
Bug Fixes
-
Single atom proplist values no longer break JSON serialisation for endpoints such as
GET /api/overview
.GitHub issue: rabbitmq-management-agent#34
Web STOMP Plugin
Bug Fixes
-
Web STOMP now accepts the same TCP listener options as core RabbitMQ and other plugins.
GitHub issue: rabbitmq-web-stomp#69
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.8.tar.gz
.
RabbitMQ 3.6.7
RabbitMQ 3.6.7
RabbitMQ 3.6.7
is a maintenance release that includes a new reworked management plugin that stores collected stats on all cluster nodes (as opposed to one dedicated node).
Upgrades and Compatibility
to be upgraded at the same time.
See the "Upgrading clusters" section of the documentation and
a note at the end of this release notes document for general documentation on upgrades.
⚠️ Erlang/OTP R16B03 and 17.x Compatibility
Erlang/OTP R16B03 users on Debian and Ubuntu may run into runtime code compilation errors.
While this was addressed in 3.6.8, we recommend upgrading to at least Erlang 18.0 if possible
(see Debian installation guide and RPM installation guide).
⚠️ New Management Plugin
In clusters that have rabbitmq_management or rabbitmq_management_agent plugins enabled all nodes must be upgraded at the same time.
There is a couple of public-facing changes in the HTTP API.
Test Suites that use HTTP API
Integration test suites that rely on HTTP API for listing
or closing connections, channels, etc need to be adjusted with this plugin:
- We recommend reducing stats retention periods (see Hop, rabbit-hole)
- Because stats emission is now two-step and asynchronous, test suites may need
to wait for events to propagate before asserting on them (see Hop, rabbit-hole).
POST and PUT Responses Use 201 Created
POST and PUT responses now use 201 Created
instead of 204 No Content
.
⚠️ Single Atom TCP Listener Options
Single atom TCP listener options such as binary
in this example:
[
{rabbit, [
{tcp_listen_options, [
binary,
{backlog, 4096},
{sndbuf, 32768},
{recbuf, 32768}
]}
%% …
}].
won't serialise to JSON correctly in this release. This is addressed for 3.6.8.
Note that binary
is one of the default options and there is no need to override it.
⚠️ TCP Listener Table Change
This release includes a breaking schema change in the internal table that stores TCP/TLS listeners.
There are no other known incompatibilities with 3.6.2 or later releases.
Server
Bug Fixes
-
Queue master process could terminate with a
{bad_match, {error, not_found}}
error.GitHub issue: rabbitmq-server#1035
-
rabbitmq-service.bat
should exit with a non-0 code when installation fails.GitHub issue: rabbitmq-server#1052
-
rabbitmqctl stop_app
now produces a more technically correct output about
what the operation does.GitHub issue: rabbitmq-server#1043
Enhancements
-
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#1033
-
Increased credit flow default settings, background GC is disabled by default
for more predictable latency.GitHub issue: rabbitmq-server#1098
-
TLS listeners now support SNI (via Ranch 1.3.0).
GitHub issue: rabbitmq-server#789
-
Successful connection authentication now leaves additional log entries, just like authentication
failures. It is now easier to see from the log what user connected to what vhost.GitHub issue: rabbitmq-server#1140
-
Internal authentication backend now supports credential validators.
GitHub issue: rabbitmq-server#1054
-
Worker process shutdown timeout now can be configured.
GitHub issue: rabbitmq-server#847
-
Default Erlang VM ETS limit was increased from 1400 to 50000. This is necessary to support
a larger number of virtual hosts with the new management plugin.GitHub issue: rabbitmq-server#1059
-
RABBITMQ_PLUGINS_DIR
now supports multiple directories (colon-separated on Linux and other UNIX-like
platforms, semicolon-separated on Windows).Contributed by Alexey Lebedeff.
GitHub issue: rabbitmq-server#1001
-
Background GC now can be disabled and configured to use a different target interval value.
Original patch by Tim Stewart.GitHub issue: rabbitmq-server#1026
-
L
-prefixed (long-long-int
) attribute table (header) keys are now accepted by the parser.GitHub issue: rabbitmq-server#1093
Management Plugin
Bug Fixes
-
Node health check responded with status 500 if health check failed due to a timeout.
GitHub issue: rabbitmq-management#307
-
GET /api/nodes
response entries contained a duplicate JSON document property (key).GitHub issue: rabbitmq-management#305
-
rabbitmqadmin
listing commands failed to output values that contained non-ASCII characters
(such as queue names in Asian languages).GitHub issue: rabbitmq-management#343
-
Queue details page now correctly displays the number of paged out transient messages.
GitHub issue: rabbitmq-management#345
-
When user filter returned no results, the message incorrectly said "no vhosts."
GitHub issue: rabbitmq-management#357
Enhancements
-
New management plugin implementation that stores stats on all cluster nodes.
GitHub issue: rabbitmq-management#236
-
Purging a queue via UI now requires a confirmation.
GitHub issue: rabbitmq-management#195
-
Queue deletion and purging buttons now use separate UI panes.
GitHub issue: rabbitmq-management#158
-
Plugins that use HTTP (management, Web STOMP, Web MQTT) now register their ports
as TCP listeners.GitHub issue: rabbitmq-web-dispatch#14
-
Overview chart legend labels are now clearer and grouped in a more useful way.
GitHub issue: rabbitmq-management#339
-
Creating a queue in a vhost the user has no access to now provides
reasonable feedback.GitHub issue: rabbitmq-management#241
-
Listing queues in a vhost the user has no access to now provides
reasonable feedback.GitHub issue: rabbitmq-management#237
-
Deletion UI dialog has clearer wording.
GitHub issue: rabbitmq-management#159
-
When creating exchanges/queues, virtual host is now pre-selected to match the "current" one.
GitHub issue: rabbitmq-management#235
-
User creation form now features the "impersonator" tag.
GitHub issue: rabbitmq-management#284
-
Queue declaration form now includes a shortcut button for switching queue
mode to "lazy."GitHub issue: rabbitmq-management#205
MQTT Plugin
Bug Fixes
-
Fixed a memory leak in statistics tables in case of certain
abnormal connection termination scenarios.GitHub issue: rabbitmq-mqtt#117
-
Last Will messages that had the
retained
flag set were not retained.GitHub issue: rabbitmq-mqtt#74
-
More metrics are reported for MQTT connections.
GitHub issue: rabbitmq-mqtt#121
-
Certain virtual host names could cause MQTT retainer to not start.
GitHub ...
RabbitMQ 3.5.8
RabbitMQ 3.5.8
RabbitMQ 3.5.8
fixes a security vulnerability (CVE-2016-9877) in the MQTT plugin.
Important: release 3.5.8 marks the final patch in the 3.5.x
series. RabbitMQ 3.5.x
is no longer maintained. Please plan on upgrading to 3.6.x
and refer to the current version of RabbitMQ instead.
Server
Security
rabbit_diagnostics:maybe_stuck/0
no longer prints process' dictionary
because it may contain PRNG seed values and other sensitive information.
MQTT Plugin
Security
-
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
Upgrading
To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained.
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.5.8.tar.gz
.
RabbitMQ 3.6.6
RabbitMQ 3.6.6
3.6.6
is a maintenance release that includes a fix for an important security vulnerability (CVE-2016-9877) in the MQTT plugin.
Upgrades and Compatibility
⚠️
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.
Server
Bug Fixes
-
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 master processes.GitHub issue: rabbitmq-server#960
-
Queue mirrors now try detect master changes during partial partitions and do a clean stop
instead of failing because their state is in sync with the old master 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
Enhancements
-
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
MQTT Plugin
Bug Fixes
-
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
JMS Topic Exchange Plugin
Bug Fixes
-
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
Java Client
Bug Fixes
-
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
Enhancements
-
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
.NET Client
Bug Fixes
-
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 Plugin
Enhancements
-
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 Plugin
Enhancements
-
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
Release Artifacts
Available from:
- GitHub (see below)
- Bintray
- Package Cloud
- rabbitmq.com
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.6.tar.gz
.
RabbitMQ 3.6.5
RabbitMQ 3.6.5
3.6.5
is a maintenance release.
Server
Bug Fixes
-
Loading JSON definitions that included queue master locator policies could prevent node
from starting.GitHub issue: rabbitmq-server#904
Management Plugin
Bug Fixes
-
Rate stats returned by
GET /api/overview
were always0.0
.GitHub issue: rabbitmq-management#266
-
Some message rates chart colors were ambiguous.
GitHub issue: rabbitmq-management#224
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.5.tar.gz
.
RabbitMQ 3.6.4
RabbitMQ 3.6.4
3.6.4
is a maintanence release.
Server
Bug Fixes
-
Nodes on Windows will successfully start if Erlang is installed in a directory with spaces
in the path.GitHub issue: rabbitmq-server#859
-
Node health check is now node-local, as it was meant to be.
GitHub issue: rabbitmq-server#818
-
Queue deletion and termination will no longer leave "tomb stone" messages in message store
files. This eliminates the confusing behavior when a node or cluster having no messages
enqueued could have many thousands of such "marker" messages in the message store.GitHub issue: rabbitmq-server#839
-
rabbitmqctl cluster_status
will now output an accurate error message
if invoked shortly after a node was removed from the cluster and the node cannot be
contacted.GitHub issue: rabbitmq-server#894
Contributed by Peter Lemenkov (Red Hat)
Enhancements
-
Erlang VM scheduler binding type default has changed to
db
. This means fewer
CPU context switches for some workloads.GitHub issue: rabbitmq-server#612
Management Plugin
Bug Fixes
-
HTTP API is now compatible with Erlang 19.0.
GitHub issue: rabbitmq-management#244
-
Temporary tables are no longer named using atoms, preventing a potential
exhaustion of the runtime atom table.GitHub issue: rabbitmq-management#245
-
Cluster links and traffic charts are correctly displayed again
GitHub issue: rabbitmq-management#250
-
Runtime metric charts now have a description pop-up associated with them.
GitHub issue: rabbitmq-management#247
AMQP 1.0 plugin
Bug fixes
-
When an AMQP 1.0 specified its own list of source outcomes in a link
attachment, it caused a crash of its session on the server. Now a
protocol error is raised if the list contains invalid outcomes.GitHub issue: rabbitmq-amqp1.0#31
Java Client
Enhancements
-
The client will now try to use TLS v1.2 and v1.1 before falling back to v1.0 by default.
GitHub issue: rabbitmq-java-client#155
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.4.tar.gz
.
RabbitMQ 3.6.3
RabbitMQ 3.6.3
RabbitMQ 3.6.3
is a maintenance release that includes
bug fixes, packaging and build system enhancements.
As of 3.6.3
, RabbitMQ also comes with several additional plugins in the distribution:
- rabbitmq_top, which helps identify (Erlang) processes
that consume most RAM and CPU resources - rabbitmq_trust_store which manages
trusted client x509/TLS certificates - rabbitmq_jms_topic_exchange which, together with RabbitMQ JMS Java client, provides support for the JMS 1.1 API
atop RabbitMQ.
Breaking Changes
- Debian package now supports systemd and also drops support for some older distributions.
- All artifacts in this release are signed with a new 4096-bit OpenGPG key.
Known Issues on Erlang 19.0
An undocumented runtime metric change in Erlang 19.0 breaks management plugin.
Server
Bug Fixes
-
(Newly elected) queue master process could terminate immediately after promotion
GitHub issue: rabbitmq-server#812
-
Priority queue mirror could fail to synchronize after restart
GitHub issues: rabbitmq-server#687, rabbitmq-server#802
-
Shutdown timeouts for worker processes are now much more reasonable.
Earlier the timeouts were virtually infinite which could lead to a deadlock during node shutdown.GitHub issue: rabbitmq-server#541
-
Purging of a durable queue could result in undelivered publisher confirms.
Contributed by Andreas Ländle.GitHub issue: rabbitmq-server#854
-
Old incarnations of queue mirrors are now ensured to be stopped before new ones are started
GitHub issue: rabbitmq-server#863
Enhancements
-
systemd
support in Debian and RPM packagesContributed by Alexey Lebedeff (Mirantis).
GitHub issue: rabbitmq-server#570
-
Debian repository and release artifacts are now signed with a new 4096-bit OpenGPG key
GitHub issue: rabbitmq-server#718
-
More resilient
worker_pool
, particularly important for LDAP plugin usersGitHub issue: rabbitmq-server#834
-
More efficient file handle management
GitHub issue: rabbitmq-server#828
-
Test suite ported to Common Test
Plugin developers will be encouraged to port their test suites to Common Test
in the future.GitHub issue: rabbitmq-server#725
-
Compilation on Erlang/OTP 19.0.
GitHub issue: rabbitmq-server#860
Management Plugin
Enhancements
-
New API endpoint for reporting ETS tables memory consumption (absolute and relative)
GitHub issue: rabbitmq-management#219
-
Node information page now includes GC and context switching stats
GitHub issue: rabbitmq-management#208
-
Connection, channel, and queue information pages now include several runtime metrics
GitHub issues: rabbitmq-management#209, rabbitmq-management#210, rabbitmq-management#211
-
Node metrics now include information about how long it takes to obtain a file handle
GitHub issue: rabbitmq-server#825
-
Partial HTTPS support in
rabbitmqadmin
on Python versions older than2.7.9
GitHub issue: rabbitmq-management#225
Bug Fixes
-
A channel statistics-related memory leak fixed.
GitHub issue: rabbitmq-management#214
-
Stats collectors event queue is now bounded (again)
GitHub issue: rabbitmq-management#221
-
Stats table name was logged as a tuple
GitHub issue: rabbitmq-management#206
.NET Client
Bug Fixes
-
Setting user-provided connection name didn't have an effect.
GitHub issue: rabbitmq-dotnet-client#187
-
IConnection#CreateModel
could throw aNullPointerException
due to a race
condition.GitHub issue: rabbitmq-dotnet-client#185
-
Connections with automatic recovery enabled ignored ports from the hostname
list.GitHub issues: rabbitmq-dotnet-client#157,
rabbitmq-dotnet-client#190 -
Fixes an underflow in delivery tag handling after connection recovery
Contributed by @harishvadali and @Entroper.
GitHub issue: rabbitmq-dotnet-client#200
Enhancements
-
New FAKE and Paket-based build tooling: development on OS X and Linux with Mono is now
possible again.GitHub issue: rabbitmq-dotnet-client#169
LDAP Plugin
Enhancements
-
Nested groups are now supported with a separate query type
GitHub issue: rabbitmq-auth-backend-ldap#3
Bug Fixes
-
Query failures (e.g.
noSuchObject
responses) from LDAP servers are now correctly treated asfalse
in
or
andand
queries instead of erroring.GitHub issue: rabbitmq-auth-backend-ldap#48
Trust Store Plugin
Bug Fixes
-
Invalid/unparseable certificates no longer prevent other certificates from (re)loading
GitHub issue: rabbitmq-trust-store#27
Enhancements
-
Certificate verification now can validate only leaf certificates.
This is more convenient in some cases. It will be one of the opt-in modes
in future versions.GitHub issue: rabbitmq-trust-store#34
-
The plugin now logs when a certificate is added (loaded) or removed (unloaded)
GitHub issue: rabbitmq-trust-store#28
-
The plugin now provides a function for listing trust store certificates
viarabbitmqctl eval
:rabbitmqctl eval 'io:format(rabbit_trust_store:list()).'
GitHub issue: rabbitmq-trust-store#31
Erlang Client
Enhancements
-
amqp_connection:close/4
is now exportedGitHub issue: rabbitmq-erlang-client#59
Bug Fixes
-
The client now compiles on Erlang/OTP 19.0
GitHub issue: rabbitmq-erlang-client#41
Delayed Message Exchange Plugin
Enhacements
-
Efficiency improvements when publications and delayed delivery happen concurrently.
Contributed by Richard Larocque.
GitHub issues: rabbitmq-delayed-message-exchange#51, rabbitmq-delayed-message-exchange#54