Project: RabbitMQ (App Definition and Development / Streaming & Messaging)
File: 3.8.5.md

RabbitMQ `3.8.5` is a maintenance release. It focuses on bug fixes and usability improvements. This release is with . This release or later. `22.3` or `23.0` releases are recommended. explains what package repositories and tools can be used to provision latest patch versions of Erlang `22.3.x`. This release deprecates `rabbitmq-diagnostics nodehealthcheck` (ne `rabbitmqctl nodehealthcheck`). See the section on CLI tools changes below to learn more. See upgrade and compatibility notes first if upgrading from an earlier release. See the for general documentation on upgrades and for release notes of other releases. 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. Any questions about this release, upgrades or RabbitMQ in general are welcome on the . In `3.8.4`, value was ignored on Windows. GitHub issue: Message store shutdown now uses a much higher timeout (up to 10 minutes instead of 30 seconds). In environments with large message backlogs this means that the chances of queue indices rebuilding after node restart is now substantially lower. GitHub issue: On Windows, `RABBITMQ_HOME` locations with brackets are supported again. Contributed by @twjs76. GitHub issues: , `RABBITMQLOGBASE` was not respected in some installations. GitHub issue: Setting `RABBITMQQUORUMDIR` to a location outside of node's data directory for a new node resulted in feature flags not being implicitly enabled on boot. GitHub issue: `net_ticktime` and other Erlang distribution settings set in `rabbitmq.conf` were ignored because distribution was started too early on node boot. GitHub issue: Raft data directory now can be configured using `ra.data_dir` configuration key: ``` ini ra.data_dir = /path/to/raft/data/directory ``` GitHub issue: 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 requirements. GitHub issue: CLI tools now take `NODENAME` into account as well as `RABBITMQ_NODENAME`, just like the server does. GitHub issue: `rabbitmq-diagnostics observer` is now compatible with Erlang 23. GitHub issue: `rabbitmq-diagnostics node_health_check` (ne `rabbitmqctl node_health_check`) is deprecated* and will be removed in a future version. `nodehealthcheck` (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

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 but this command has never been deprecated. Until now. GitHub issue: was not performed when `management.load_definitions = /path/to/definitions/file.json` was used, although it was for its newer counterpart, `load_definitions = /path/to/definitions/file.json`. GitHub issue: jQuery was upgraded to `3.5.1`. GitHub issue: Due to 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-diagnostics consistenthashexchangeringstate <exchange>` is a new CLI command that makes it easy to inspect consistent hashing ring state for an exchange. GitHub issue: Client ID tracker operation timeout has been increased from default 5 seconds. GitHub issue: More graceful handling of incorrect or unparseable data. GitHub issue: AWS peer discovery backend can be specified as `aws`: ``` ini clusterformation.peerdiscovery_backend = aws ``` as well as the module name, or plugin name (`rabbitmqpeerdiscovery_aws`): ``` ini clusterformation.peerdiscoverybackend = rabbitpeerdiscoveryaws ``` GitHub issue: Consul peer discovery backend can be specified as `consul`: ``` ini clusterformation.peerdiscovery_backend = consul ``` as well as the module name, or plugin name (`rabbitmqpeerdiscovery_consul`): ``` ini clusterformation.peerdiscoverybackend = rabbitpeerdiscoveryconsul ``` GitHub issue: Locking operation against `etcd` v3 API failed with a `case_clause`. GitHub issue: etcd peer discovery backend can be specified as `etcd`: ``` ini clusterformation.peerdiscovery_backend = etcd ``` as well as the module name, or plugin name (`rabbitmqpeerdiscovery_etcd`): ``` ini clusterformation.peerdiscoverybackend = rabbitpeerdiscoveryetcd ``` GitHub issue: Kubernetes peer discovery backend can be specified as `k8s` or `kubernetes`: ``` ini clusterformation.peerdiscovery_backend = k8s ``` as well as the module name, or plugin name (`rabbitmqpeerdiscovery_k8s`): ``` ini clusterformation.peerdiscoverybackend = rabbitpeerdiscoveryk8s ``` GitHub issue: is now exposed to new style configuration: ``` ini webstomp.usehttp_auth = true ``` GitHub issue: Invocations of `rabbitmqctl wait` in service management scripts now use a timeout. Contributed by Nicolas @nicolasbock Bock. GitHub issue: Invocations of `rabbitmqctl wait` in service management scripts now use a timeout. Contributed by Nicolas @nicolasbock Bock. GitHub issue: `recon` was upgraded `observer_cli` was upgraded 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`.