RabbitMQ 3.8.6-rc.1
RabbitMQ 3.8.6-rc.1
is a preview of a maintenance release.
It focuses on bug fixes and usability improvements.
RabbitMQ Adopts the Mozilla Public License 2.0
Starting with this release, core RabbitMQ server and all tier 1 plugins
are relicensed under the Mozilla Public License 2.0
(previously used license: the Mozilla Public License 1.1).
The permissiveness of the MPL 2.0 is largely the same as of the MPL 1.1.
See the MPL 2.0 FAQ and
MPL 2.0 Revision and Changes FAQ to learn more.
Erlang 23 Compatibility
This release is compatible with Erlang 23.
Erlang/OTP Compatibility Notes
This release requires Erlang/OTP 21.3 or later.
22.3
or 23.0
releases are recommended.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 22.3.x
.
Upgrade and Compatibility Notes
Deprecations
This release removed HiPE precompilation support. HiPE has been deprecated and
mostly unmaintained since Erlang 22, and will be replaced with a JIT in Erlang 24
in 2021.
rabbitmqctl hipe_compile
and
hipe_compile = true
are both retained for backwards compatibility but they won't have any effect.
Upgrade Doc Guides and Change Log
See 3.8.0 release notes upgrade and
compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades and
RabbitMQ change log for release notes of other releases.
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release from 3.7.6
or an older version, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded at the same time as Erlang.
Alternatively the node can be upgraded to 3.7.18
first, then Erlang 22.x or 23.x, then RabbitMQ to most recent
3.8.x release.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
Changes Worth Mentioning
Core Server
License Change
RabbitMQ has been relicensed under the Mozilla Public License 2.0
(previously used license: the Mozilla Public License 1.1).
The permissiveness of the MPL 2.0 is largely the same as of the MPL 1.1.
See the MPL 2.0 FAQ and
MPL 2.0 Revision and Changes FAQ to learn more.
Deprecations
-
Removed HiPE pre-compilation support.
GitHub issue: rabbitmq/rabbitmq-server#2392
Bug Fixes
-
Definition import on node boot (via
load_definitions
configuration setting) is now performed
after plugins are enabled.This resolves a long standing chicken-and-egg dependency problem that prevented definitions
that depend on plugins being functional from being successfully imported during node boot.Some affected features include
- federation upstreams
- dynamic shovels
- exchanges of types provided by plugins such as rabbitmq-consistent-hash-exchange
GitHub issue: rabbitmq/rabbitmq-server#2384
-
Similarly, client connection listeners (both TCP and TLS-enabled) are now started after
plugin activation. This makes certain configurations that use the trust store plugin
behave as expected.GitHub issue: rabbitmq/rabbitmq-server#2405
-
Environment variables prefixed with
RABBITMQ_
were ignored when used in therabbitmq-env.conf
file,
while their prefixless counterparts worked as expected.GitHub issue: rabbitmq/rabbitmq-common#401
Enhancements
-
rabbitmq.conf
config parser now accepts lines that only consist of whitespace.GitHub issue: rabbitmq/rabbitmq-server#2393
CLI Tools
Deprecations
-
rabbitmqctl hipe_compile
is now a no-op. HiPE support has been deprecated in Erlang 22
will be removed in Erlang 24.GitHub issue: rabbitmq/rabbitmq-cli#433
-
The use of the `` environment variable to configure the shared secret is now deprecated.
Use the local file option instead or, if the value absolutely must be provided on the command line,
the--erlang-cookie [value]
switch.GitHub issue: rabbitmq/rabbitmq-cli#443
Bug Fixes
-
rabbitmqctl export_definitions
incorrectly serialised runtime parameter values.GitHub issue: rabbitmq/rabbitmq-cli#435
-
CTL_ERL_ARGS
environment variable was unintentionally ignored starting with version3.8.4
.GitHub issue: rabbitmq/rabbitmq-server#2394
-
[command] --help
andhelp [command]
output had minor unintentional inconsistencies.GitHub issue: rabbitmq/rabbitmq-cli#437
Enhancements
-
rabbitmq-queues check_if_node_is_quorum_critical
andrabbitmq-queues check_if_node_is_mirror_sync_critical
checks
have been adjusted. They now special case single node clusters as the check does not make much sense
in those environments.rabbitmq-queues check_if_node_is_mirror_sync_critical
now also excludes exclusive queues from
consideration as they, even if matched by a policy that enables classic queue mirroring,
would not actually be mirrored.GitHub issue: rabbitmq/rabbitmq-cli#432
-
rabbitmq-diagnostics erlang_cookie_sources
is a new command that helps with troubleshooting
CLI tool authentication to nodes by listing relevant environment information about the
shared secret. The actual secret
is not displayed for obvious security reasons.GitHub issue: rabbitmq/rabbitmq-cli#446
-
rabbitmqct eval_file
is a new command that evaluates Erlang code expressions from a local file
on the target node:rabbitmqctl eval_file /path/to/code_snippet.escript
GitHub issue: rabbitmq/rabbitmq-cli#438
-
rabbitmqct eval
now accepts code snippets from standard input:rabbitmqctl eval <<EOF io:format("~p~n", [ rabbit:product_info() ]).
rabbitmqctl eval < code_snippet.escript
GitHub issue: rabbitmq/rabbitmq-cli#438
-
rabbitmq-diagnostics resolve_hostname
is a new command that resolves a hostname either locally
or on the node, and returns the resolved IPv4 or IPv6 addresses.The command can help quickly detect hostname resolution irregularities on a node, including
the effects of Erlang inetrc file settings.
Hostname resolution issues can cause CLI tools, cluster formation and peer reconnection to
not work as expected.Some examples:
rabbitmq-diagnostics resolve_hostname "google.com" --address-family ipv4 rabbitmq-diagnostics resolve_hostname "google.com" --address-family ipv6 --offline
GitHub issue: rabbitmq/rabbitmq-cli#431
-
All CLI tools now provide an
autocomplete [prefix]
command that lists command completion
options. It is intended to be used to implement autocompletion of command names in shells.GitHub issue: rabbitmq/rabbitmq-cli#439
Management Plugin
Bug Fixes
-
The plugin could send the
authorization
header asnull
in some cases before a successful login.Contributed by @furkhat.
GitHub issue: rabbitmq/rabbitmq-management#833
Enhancements
-
The UI now uses more human-friendly information units when displaying client network traffic rate values.
Contribute by @seadog007.
GitHub issue: rabbitmq/rabbitmq-management#827
Federation Plugin
Bug Fixes
-
In environments where
rabbitmq_federation.pgroup_name_cluster_id
is not set or set toundefined
,
links will treat such values as afalse
(the default) instead of failing with an exception.GitHub issue: rabbitmq/rabbitmq-federation#109
MQTT Plugin
Bug Fixes
-
The plugin could fail to accept new client connections with an exception in some cases.
GitHub issue: rabbitmq/rabbitmq-mqtt#235
Web STOMP Plugin
Enhancements
-
Certain Web Socket errors are now handled more gracefully.
GitHub issue: rabbitmq/rabbitmq-web-stomp#123
Web MQTT Plugin
Enhancements
-
Certain Web Socket errors are now handled more gracefully.
GitHub issue: rabbitmq/rabbitmq-web-mqtt#64
AuthN/AuthZ Backend HTTP Plugin
Bug Fixes
-
Virtual host access checks failed in certain complex configurations.
GitHub issue: rabbitmq/rabbitmq-auth-backend-http#100
Dependency Upgrades
cuttlefish
was upgraded from 2.2.0 to 2.3.0
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker, not the plugins or the client libraries.
Please download the archive named rabbitmq-server-3.8.6.tar.xz
.