Skip to content

RabbitMQ 3.8.2

Compare
Choose a tag to compare
@pivotal-rabbitmq-ci pivotal-rabbitmq-ci released this 02 Dec 10:03

RabbitMQ 3.8.2

RabbitMQ 3.8.2 is a maintenance release.

Erlang/OTP Compatibility Notes

This release requires Erlang/OTP 21.3 or later.
22.x series is recommended.

Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.

Compatibility Notes

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 21.x or 22.x, then to RabbitMQ 3.8.x.

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.

Getting Help

Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.

Changes

Core Server

Enhancements

  • Raft implementation optimizations.

    GitHub issues: rabbitmq/ra#137, rabbitmq/ra#148

  • Quorum queue optimization: enables local (not going through the leader) delivery from Raft followers
    when appropriate and safe.

    GitHub issues: rabbitmq/rabbitmq-server#2146, rabbitmq/ra#132

  • If x-queue-type argument is not provided at queue declaration time, the type is assumed to be classic
    instead of missing.

    GitHub issue: rabbitmq/rabbitmq-common#341

  • Quorum queue consumer timeout now can be configured using new style configuration file:

    # Hard timeout for quorum queue consumer acknowledgemnts of two minutes
    consumer_timeout = 120000

    GitHub issue: rabbitmq/rabbitmq-server#2163

Bug Fixes

  • A quorum queue could produce an empty Raft log segment if node is killed at a particular moment in time,
    which would prevent the node from successfully recovering the log after restart.

    GitHub issues: rabbitmq/ra#138

  • Quorum queue consumer count metric could be duplicated when reported via HTTP API or to a Prometheus scraper.

    GitHub issue: rabbitmq/rabbitmq-server#2176

  • Quorum queue with single active consumer enabled crashes after some basic.get calls. Quorum queues now forbid basic.get when single active consumer is enabled.

    GitHub issue: rabbitmq/rabbitmq-server#2164

CLI Tools

Enhancements

  • It is now possible to export and import definitions without the use of plugins with
    rabbitmqctl export_definitions and rabbitmqctl import_definitions:

    # export as a JSON file
    rabbitmqctl export_definitions /path/to/target.file.json
    
    # export as JSON to standard output and pipe to jq
    rabbitmqctl export_definitions "-" | jq
    
    # export as a compressed Erlang term file
    rabbitmqctl export_definitions /path/to/target.file --format=erlang
    
    # learn more
    rabbitmqctl help export_definitions
    # import from a JSON file
    rabbitmqctl import_definitions /path/to/target.file.json
    
    # import JSON from standard input
    cat /path/to/definitions.json | rabbitmqctl import_definitions "-"
    
    # import from a compressed Erlang term file
    rabbitmqctl import_definitions /path/to/target.file --format=erlang
    
    # learn more
    rabbitmqctl help import_definitions

    GitHub issue: rabbitmq/rabbitmq-management#749

  • Entities with amq.* prefixes are now skipped during import instead of producing an error.

    GitHub issue: rabbitmq/rabbitmq-server#2170

Bug Fixes

  • rabbitmqctl await_startup failed with an exception when RabbitMQ application was stopped but the
    runtime (Erlang VM) was running.

    GitHub issue: rabbitmq/rabbitmq-server#2158

Management Plugin

Bug Fixes

  • Definition import via HTTP API could fail in if performed via HTTP API (but not management UI)
    and contained operator policies.

    GitHub issue: rabbitmq/rabbitmq-management#751

Enhancements

MQTT Plugin

Enhancements

Bug Fixes

  • Client ID tracker could produce an empty Raft log segment if node is killed at a particular moment in time,
    which would prevent the node from successfully recovering the log after restart.

    GitHub issues: rabbitmq/discussions#4, rabbitmq/ra#138

  • Last Will messages that use QoS 2 will now be downgraded to QoS 1 just like with "regular" published messages.

    GitHub issue: rabbitmq/rabbitmq-mqtt#214

AMQP 1.0 Plugin

Enhancements

STOMP Plugin

Enhancements

Web STOMP Plugin

Enhancements

Prometheus Plugin

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