Skip to content

RabbitMQ 3.8.6

Compare
Choose a tag to compare
@pivotal-rabbitmq-ci pivotal-rabbitmq-ci released this 04 Aug 10:47
46bf724

RabbitMQ 3.8.6

RabbitMQ 3.8.6 is 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

Bug Fixes

  • Definition import on node boot (via the built-in 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.

Note that definition import via the management plugin (management.load_definitions) is still
performed during management plugin activation time and therefore can not offer any guarantees
as some plugins may be enabled after the management one.

Some affected features include

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 the rabbitmq-env.conf file,
    while their prefixless counterparts worked as expected.

    GitHub issue: rabbitmq/rabbitmq-common#401

Enhancements

CLI Tools

Deprecations

Bug Fixes

Enhancements

  • rabbitmq-queues check_if_node_is_quorum_critical and rabbitmq-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 status now includes the total amount of memory used by the node in its
    regular output. It was previously only available when --formatter=json switch was used.

    GitHub issue: rabbitmq/rabbitmq-cli#449

  • 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

Enhancements

Federation Plugin

Bug Fixes

  • In environments where rabbitmq_federation.pgroup_name_cluster_id is not set or set to undefined,
    links will treat such values as a false (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

Web MQTT Plugin

Enhancements

AuthN/AuthZ Backend HTTP Plugin

Bug Fixes

Dependency Upgrades

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.