Skip to content
Choose a tag to compare

RabbitMQ 3.8.5

@pivotal-rabbitmq-ci pivotal-rabbitmq-ci released this
· 33224 commits to master since this release
Choose a tag to compare

RabbitMQ 3.8.5

RabbitMQ 3.8.5 is a maintenance release.
It focuses on bug fixes and usability improvements.

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


This release deprecates rabbitmq-diagnostics node_health_check (née rabbitmqctl node_health_check).
See the section on CLI tools changes below to learn more.

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

Bug Fixes


  • Raft data directory now can be configured using ra.data_dir configuration key:

    ra.data_dir = /path/to/raft/data/directory

    GitHub issue: rabbitmq/rabbitmq-server#2354

  • User and permission management operations now produce clear log entries when they succeed,
    not just when they fail. This helps auditing in environments that have stricter security and audit

    GitHub issue: rabbitmq/rabbitmq-server#2363

CLI Tools

Bug Fixes


  • rabbitmq-diagnostics node_health_check (née rabbitmqctl node_health_check) is deprecated and will be
    removed in a future version.

    node_health_check (as well as its HTTP API counterpart) is an opinionated, intrusive, aspirational attempt
    at producing One True Health Check™ for RabbitMQ that was envisioned and added to CLI tools around 2015-2016.

    It has proven to be too prone to false positives, can consume a prohibitive
    amount of CPU and runtime scheduler resources, and tends to be too opinionated
    for many technical operations teams.

    A much more modular, pick-and-choose approach has been adopted since
    but this command has never been deprecated. Until now.

    GitHub issue: rabbitmq/rabbitmq-cli#426

Management Plugin

Bug Fixes

Consistent Hashing Exchange

Bug Fixes

  • Due to later plugin activation in 3.8.4, durable
    consistent hashing exchanges were skipped during topology recovery. In practice that meant these exchanges
    did not route messages published to it.

    Now the plugin reconstructs consistent hashing ring manually for every durable exchange of this type and
    routing functions as expected.

    Kudos to Rob Gerritsen and Raimond @rai69 Kuipers for helping with discovery of this issue.

    GitHub issue: rabbitmq/rabbitmq-consistent-hash-exchange#45


  • rabbitmq-diagnostics consistent_hash_exchange_ring_state <exchange> is a new CLI command that makes it
    easy to inspect consistent hashing ring state for an exchange.

    GitHub issue: rabbitmq/rabbitmq-consistent-hash-exchange#47

MQTT Plugin

Bug Fixes

Web STOMP Plugin


AWS Peer Discovery Plugin


  • AWS peer discovery backend can be specified as aws:

    cluster_formation.peer_discovery_backend = aws

    as well as the module name, or plugin name (rabbitmq_peer_discovery_aws):

    cluster_formation.peer_discovery_backend = rabbit_peer_discovery_aws

    GitHub issue: rabbitmq/rabbitmq-peer-discovery-aws#34

Consul Peer Discovery Plugin


  • Consul peer discovery backend can be specified as consul:

    cluster_formation.peer_discovery_backend = consul

    as well as the module name, or plugin name (rabbitmq_peer_discovery_consul):

    cluster_formation.peer_discovery_backend = rabbit_peer_discovery_consul

    GitHub issue: rabbitmq/rabbitmq-peer-discovery-consul#43

etcd Peer Discovery Plugin

Bug Fixes


  • etcd peer discovery backend can be specified as etcd:

    cluster_formation.peer_discovery_backend = etcd

    as well as the module name, or plugin name (rabbitmq_peer_discovery_etcd):

    cluster_formation.peer_discovery_backend = rabbit_peer_discovery_etcd

    GitHub issue: rabbitmq/rabbitmq-peer-discovery-etcd#26

Kubernetes Peer Discovery Plugin


  • Kubernetes peer discovery backend can be specified as k8s or kubernetes:

    cluster_formation.peer_discovery_backend = k8s

    as well as the module name, or plugin name (rabbitmq_peer_discovery_k8s):

    cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s

    GitHub issue: rabbitmq/rabbitmq-peer-discovery-k8s#65

Web STOMP Plugin


Debian Package


RPM Package


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.5.tar.xz.