Skip to content

RabbitMQ 3.8.13

Choose a tag to compare
@pivotal-rabbitmq-ci pivotal-rabbitmq-ci released this 27 Feb 18:14

RabbitMQ 3.8.13

RabbitMQ 3.8.13 is a maintenance release.

Erlang/OTP Compatibility Notes

This release requires Erlang 22.3 or
Erlang 23.x.

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

Upgrade and Compatibility Notes

Upgrade Doc Guides and Change Log

See 3.8.0 release notes upgrade and
compatibility notes first if upgrading from an earlier release series (e.g. 3.7.x).

See the Upgrading guide for general documentation on upgrades and
RabbitMQ change log for release notes of other releases.

Upgrading to Erlang 22.x or Later Versions

When upgrading to this release from 3.7.15 or an older version, extra care has to be taken.

Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
RabbitMQ must be upgraded at the same time as Erlang.

Alternatively the node can be upgraded to 3.7.18 on Erlang 21.3 first,
then Erlang 22.x or 23.x, then RabbitMQ to the 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
and RabbitMQ community Slack.

Changes Worth Mentioning

Core Server

Bug Fixes

  • Nodes that had an unusually long name (e.g. 150 or more characters) could overflow
    message property lengths with the direct reply-to identifier they generated.
    Now the generated values are almost entirely decoupled from node name length.

    GitHub issue: #2842

Management Plugin

Bug Fixes

  • Consumer utilisation metric has been renamed to consumer capacity which more accurately represents
    what it measures. The metric indicates the percentage of time that RabbitMQ has attempted a delivery
    to a consumer of a queue, and was allowed to do so by the channel prefetch value and
    the number of currently unacknowledged deliveries.

    For queues that have no consumers, the metric now returns 0%. For consumers that accept all deliveries
    attempted, the metric will be around 100% (optimal).

    For queues that do have consumers but no traffic the metric will be at 100%. The assumption here is that consumers
    can absorb all the load. This case is intentionally treated differently from the one above with no online consumers.

    GitHub issue: #2843

Prometheus Plugin

Bug Fixes

  • Consumer utilisation metric has been renamed to consumer capacity which more accurately represents
    what it measures. See a more detailed note above in the Management plugin section.

    GitHub issue: #2843

Federation Plugin


  • Quorum queues now can be federated.

    GitHub issue: #2756

  • Exchange federation now supports a new option, channel_use_mode, which allows a single
    channel to be used for all federation link activity if set to single:

    rabbitmqctl set_parameter federation-upstream dc-2 '{"uri":"amqp://dc2.messaging.coolcorp.local:5672", "channel-use-mode": "single"}'

    This helps avoid a race condition between topology changes and message flow
    and the cost of topology operations reducing message transfer rates and increasing
    rate variability.

    The default value is multiple. It means that every link will use multiple channels (one for message transfer,
    one for topology changes, etc), which has been the case since rabbitmq/rabbitmq-federation#97.
    This is the recommended mode for most environments, and all environments with a mostly static topology.

    See rabbitmq/rabbitmq-federation#97 for the background.

    GitHub issue: #2829

AMQP 1.0 Plugin

Bug Fixes

  • The plugin could run into unhandled exceptions.

    GitHub issue: #2830

OAuth 2 AuthN/AuthZ Backend


  • Several settings of the plugin are now exposed to rabbitmq.conf and provide validations:

    auth_backends.1 = oauth2
    auth_oauth2.resource_server_id = a_resource_server_id
    auth_oauth2.additional_scopes_key = a_custom_scope_key
    auth_oauth2.default_key = id1
    auth_oauth2.signing_keys.id1 = /path/to/signing.key1.pem
    auth_oauth2.signing_keys.id2 = /path/to/signing.key2.pem

    GitHub issue: #2550

  • JWT tokens now can be fetched from a JWKS endpoint provided using the rabbitmq_auth_backend_oauth2.key_config.jwks_url
    key in advanced.config.

    Contributed by Teo @teozkr Klestrup Röijezon.

    GitHub issue: #2791

Dependency Upgrades

Source Code Archives

To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.8.13.tar.xz
instead of the source tarball produced by GitHub.