Skip to content

Releases: rabbitmq/rabbitmq-server

RabbitMQ 3.8.12-beta.1

25 Jan 04:32

Choose a tag to compare

Pre-release

RabbitMQ 3.8.12-beta.1

RabbitMQ 3.8.12-beta.1 is a preview of a maintenance release that contains bug fixes.

Erlang/OTP Compatibility Notes

This release requires Erlang 22 or
Erlang 23.

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

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

Prometheus Plugin

Bug Fixes

  • AuthN authentication attempts metrics produced duplicate TYPE and HELP strings in
    the scraping API endpoint output.

    Some metrics were renamed to avoid duplication. The new names are auth_attempts_detailed_total,
    auth_attempts_detailed_succeeded_total, and auth_attempts_detailed_failed_total.

    This issue is specific to RabbitMQ 3.8.10 and 3.8.11.

    GitHub issue: rabbitmq/rabbitmq-server#2740

Dependency Upgrades

No dependency changes.

Source Code Archives

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

RabbitMQ 3.8.11

22 Jan 01:13

Choose a tag to compare

RabbitMQ 3.8.11

RabbitMQ 3.8.11 is a maintenance release that contains bug fixes.

This release no longer supports Erlang 21.3.

Erlang/OTP Compatibility Notes

This release requires Erlang 22 or
Erlang 23.

Erlang 21.3 is no longer supported.
22.3 or 23.2 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

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

Dependency Upgrades

No dependency changes.

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

RabbitMQ 3.8.10

22 Jan 01:13
e87581f

Choose a tag to compare

RabbitMQ 3.8.10

Important: this release has been superseded by 3.8.11
which addresses a couple of bugs specific to this release (3.8.10).

All users are advised to consult the set of changes in this release but then upgrade straight
to 3.8.11 or a newer version if available
and skip this release.

RabbitMQ 3.8.10 is a maintenance release.
Besides containing several bug fixes, it introduces a couple new features for quorum queues.

This release no longer supports Erlang 21.3.

Erlang/OTP Compatibility Notes

This release requires Erlang 22 or
Erlang 23.

Erlang 21.3 is no longer supported.
22.3 or 23.1 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 deprecates boot time definition import build into the management plugin.
The feature still exists but is no longer documented or tested. Please switch to
the built-in definition import mechanism:

# DEPRECATED, requires management plugin to be enabled,
# does not support import of definitions that depend on plugins
# (e.g. Shovels or custom exchanges)
management.load_definitions = /path/to/definitions/file.json

to

# built-in feature, supports import of definitions
# that depend on plugins (e.g. Shovels or custom exchanges)
load_definitions = /path/to/definitions/file.json

Definition import in the management plugin (management.load_definitions) will be removed in
a future RabbitMQ release.

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

  • Starting with 3.8.0, an unintentionally introduced assertion could prevent classic mirrored queue
    mirrors from starting successfully in case the primary replica changed concurrently with their startup.

    GitHub issue: rabbitmq/rabbitmq-server#2449

  • Repeated polling of a quorum queue with basic.get that yielded an empty response could
    result in an unbounded growth of log segment files on on disk.

    GitHub issue: rabbitmq/rabbitmq-server#2651

  • RabbitMQ core plugin activation was revisited to be closer to that of 3.7.x. This does not any
    related improvements w.r.t. definition import, e.g. those introudced in RabbitMQ 3.8.6.

    GitHub issue: rabbitmq/rabbitmq-server#2656

  • Syslog dependency was not started correctly. This meant no log messages were sent to Syslog.

    GitHub issue: rabbitmq/rabbitmq-server#2456

  • rabbitmq-diagnostics check_if_node_is_quorum_critical returned a false positive for a node marked for maintenance.
    Given the refinement to the rabbitmq-upgrade drain command in rabbitmq/rabbitmq-server#2474,
    rabbitmq-diagnostics check_if_node_is_quorum_critical now will unconditionally return a success
    if target node is under maintanence.

    GitHub issue: rabbitmq/rabbitmq-server#2469

  • Queues could update their internal bookkeeping state incorrectly in some cases, leading to a file_handle_cache
    operation exception.

    GitHub issue: rabbitmq/rabbitmq-server#2488

Enhancements

CLI

Enhancements

  • It is n...
Read more

RabbitMQ 3.8.10-rc.6

15 Jan 16:27

Choose a tag to compare

RabbitMQ 3.8.10-rc.6 Pre-release
Pre-release

RabbitMQ 3.8.10-rc.6

RabbitMQ 3.8.10-rc.6 is a preview of a maintenance release.
Besides containing several bug fixes, it introduces a couple new features for quorum queues.

This release no longer supports Erlang 21.3.

Erlang/OTP Compatibility Notes

This release requires Erlang 22 or
Erlang 23.

Erlang 21.3 is no longer supported.
22.3 or 23.1 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 deprecates boot time definition import build into the management plugin.
The feature still exists but is no longer documented or tested. Please switch to
the built-in definition import mechanism:

# DEPRECATED, requires management plugin to be enabled,
# does not support import of definitions that depend on plugins
# (e.g. Shovels or custom exchanges)
management.load_definitions = /path/to/definitions/file.json

to

# built-in feature, supports import of definitions
# that depend on plugins (e.g. Shovels or custom exchanges)
load_definitions = /path/to/definitions/file.json

Definition import in the management plugin (management.load_definitions) will be removed in
a future RabbitMQ release.

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

  • Starting with 3.8.0, an unintentionally introduced assertion could prevent classic mirrored queue
    mirrors from starting successfully in case the primary replica changed concurrently with their startup.

    GitHub issue: rabbitmq/rabbitmq-server#2449

  • Repeated polling of a quorum queue with basic.get that yielded an empty response could
    result in an unbounded growth of log segment files on on disk.

    GitHub issue: rabbitmq/rabbitmq-server#2651

  • RabbitMQ core plugin activation was revisited to be closer to that of 3.7.x. This does not any
    related improvements w.r.t. definition import, e.g. those introudced in RabbitMQ 3.8.6.

    GitHub issue: rabbitmq/rabbitmq-server#2656

  • Syslog dependency was not started correctly. This meant no log messages were sent to Syslog.

    GitHub issue: rabbitmq/rabbitmq-server#2456

  • rabbitmq-diagnostics check_if_node_is_quorum_critical returned a false positive for a node marked for maintenance.
    Given the refinement to the rabbitmq-upgrade drain command in rabbitmq/rabbitmq-server#2474,
    rabbitmq-diagnostics check_if_node_is_quorum_critical now will unconditionally return a success
    if target node is under maintanence.

    GitHub issue: rabbitmq/rabbitmq-server#2469

  • Queues could update their internal bookkeeping state incorrectly in some cases, leading to a file_handle_cache
    operation exception.

    GitHub issue: rabbitmq/rabbitmq-server#2488

Enhancements

CLI

Enhancements

  • It is now possible to enable all feature flags in a single command:

    rabbitmqctl enable_feature_flag --all

    Note that this will only enable the flags supported by all cluster members.

    GitHub issue: rabbitmq/rabbitmq-cli#455

  • `rabbitmq-que...

Read more

RabbitMQ 3.8.10-rc.5

12 Jan 22:43

Choose a tag to compare

RabbitMQ 3.8.10-rc.5 Pre-release
Pre-release

RabbitMQ 3.8.10-rc.5

RabbitMQ 3.8.10-rc.5 is a preview of a maintenance release.
Besides containing several bug fixes, it introduces a couple new features for quorum queues.

This release no longer supports Erlang 21.3.

Erlang/OTP Compatibility Notes

This release requires Erlang 22 or
Erlang 23.

Erlang 21.3 is no longer supported.
22.3 or 23.1 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

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

  • Starting with 3.8.0, an unintentionally introduced assertion could prevent classic mirrored queue
    mirrors from starting successfully in case the primary replica changed concurrently with their startup.

    GitHub issue: rabbitmq/rabbitmq-server#2449

  • Repeated polling of a quorum queue with basic.get that yielded an empty response could
    result in an unbounded growth of log segment files on on disk.

    GitHub issue: rabbitmq/rabbitmq-server#2651

  • RabbitMQ core plugin activation was revisited to be closer to that of 3.7.x. This does not any
    related improvements w.r.t. definition import, e.g. those introudced in RabbitMQ 3.8.6.

    GitHub issue: rabbitmq/rabbitmq-server#2656

  • Syslog dependency was not started correctly. This meant no log messages were sent to Syslog.

    GitHub issue: rabbitmq/rabbitmq-server#2456

  • rabbitmq-diagnostics check_if_node_is_quorum_critical returned a false positive for a node marked for maintenance.
    Given the refinement to the rabbitmq-upgrade drain command in rabbitmq/rabbitmq-server#2474,
    rabbitmq-diagnostics check_if_node_is_quorum_critical now will unconditionally return a success
    if target node is under maintanence.

    GitHub issue: rabbitmq/rabbitmq-server#2469

  • Queues could update their internal bookkeeping state incorrectly in some cases, leading to a file_handle_cache
    operation exception.

    GitHub issue: rabbitmq/rabbitmq-server#2488

Enhancements

CLI

Enhancements

  • It is now possible to enable all feature flags in a single command:

    rabbitmqctl enable_feature_flag --all

    Note that this will only enable the flags supported by all cluster members.

    GitHub issue: rabbitmq/rabbitmq-cli#455

  • rabbitmq-queues peek is a new command that allows for peeking at a queue position. It is only
    supported by quorum queues (and not classic queues):

    # peeks at the head of queue "qq.1" in virtual host "staging"
    rabbitmq-queues peek --vhost "staging" "qq.1 1"

    GitHub issue: rabbitmq/rabbitmq-cli#452

  • rabbitmq-queues reclaim_quorum_memory is a new command that forces Raft WAL compaction which in most cases should reduce memory footprint of a quorum queue:

    rabbitmq-queues reclaim_quorum_memory --vhost "staging" "qq.1"

    GitHub issue: rabbitmq/rabbitmq-cli#453

Bug Fixes

  • rabbitmqctl rename_cluster_node failed with an error about a missing directory.

    GitH...

Read more

RabbitMQ 3.8.10-beta.1

09 Nov 02:54

Choose a tag to compare

Pre-release

RabbitMQ 3.8.10-beta.1

RabbitMQ 3.8.10-beta.1 is a preview of a maintenance release.
Besides containing several bug fixes, it introduces a couple new features for quorum queues.

This release no longer supports Erlang 21.3.

Erlang/OTP Compatibility Notes

This release requires Erlang 22 or
Erlang 23.

Erlang 21.3 is no longer supported.
22.3 or 23.1 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

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

  • Starting with 3.8.0, an unintentionally introduced assertion could prevent classic mirrored queue
    mirrors from starting successfully in case the primary replica changed concurrently with their startup.

    GitHub issue: rabbitmq/rabbitmq-server#2449

  • Syslog dependency was not started correctly. This meant no log messages were sent to Syslog.

    GitHub issue: rabbitmq/rabbitmq-server#2456

  • rabbitmq-diagnostics check_if_node_is_quorum_critical returned a false positive for a node marked for maintenance.
    Given the refinement to the rabbitmq-upgrade drain command in rabbitmq/rabbitmq-server#2474,
    rabbitmq-diagnostics check_if_node_is_quorum_critical now will unconditionally return a success
    if target node is under maintanence.

    GitHub issue: rabbitmq/rabbitmq-server#2469

  • Queues could update their internal bookkeeping state incorrectly in some cases, leading to a file_handle_cache
    operation exception.

    GitHub issue: rabbitmq/rabbitmq-server#2488

Enhancements

CLI

Enhancements

  • rabbitmq-queues peek is a new command that allows for peeking at a queue position. It is only
    supported by quorum queues (and not classic queues):

    # peeks at the head of queue "qq.1" in virtual host "staging"
    rabbitmq-queues peek --vhost "staging" "qq.1 1"

    GitHub issue: rabbitmq/rabbitmq-cli#452

  • rabbitmq-queues reclaim_quorum_memory is a new command that forces Raft WAL compaction which in most cases should reduce memory footprint of a quorum queue:

    rabbitmq-queues reclaim_quorum_memory --vhost "staging" "qq.1"

    GitHub issue: rabbitmq/rabbitmq-cli#453

Bug Fixes

  • rabbitmqctl rename_cluster_node failed with an error about a missing directory.

    GitHub issue: rabbitmq/rabbitmq-cli#457

  • Force removal of a node did not remove it from quorum queue member lists.

    GitHub issue: rabbitmq/rabbitmq-server#2414

  • CLI tools now pick a unique identifier from a pool. Previously the pool of possible values was theoretically
    unbounded, which could result in an atom table exhaustion condition on long running nodes that
    had a lot of CLI tool invocations (e.g. CLI tools were used to collect monitoring data frequently).

    Such use of CLI tools for monitoring is not recommended:
    there are better options such as Prometheus and Grafana.

    GitHub issue: rabbitmq/rabbitmq-cli#461

Federation Plugin

Bug Fixes

Management Plugin

Enhancements

Bug Fixes

  • Quorum queue consumer counter on on the queue list page was not updated when consumers were cancelled o...
Read more

RabbitMQ 3.8.9

24 Sep 19:33

Choose a tag to compare

RabbitMQ 3.8.9

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

This release no longer supports Erlang 21.3.

Erlang 23 Compatibility

This release is compatible with Erlang 23.

Erlang/OTP Compatibility Notes

This release requires Erlang/OTP 22.0 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

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 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

  • Starting with 3.8.0, an unintentionally introduced assertion could prevent classic mirrored queue
    mirrors from starting successfully in case the primary replica changed concurrently with their startup.

    GitHub issue: rabbitmq/rabbitmq-server#2449

Enhancements

  • Raft implementation's failure detector default polling interval has been increased from 1s to 5s.
    The previously used default results in too frequent leader elections in networks with high packet loss
    (say, double digit percent).

    This has no correctness or safety ramifications, however, automated tests that assert on Raft properties
    or expect a very fast leader re-election may have to set it back so that peer failures are detected quicker.

    GitHub issue: rabbitmq/rabbitmq-server#2450

Management Plugin

Bug Fixes

  • The now deprecated intrusive health check endpoint, GET /api/healthchecks/node, reported failures in the response
    but always set the status to 200 OK. It now uses the status of 500 in case of a failure.

    RabbitMQ Monitoring guide explains why
    this health check is no longer recommended and what the alternatives are.

    GitHub issue: rabbitmq/rabbitmq-management#840

Enhancements

  • When a client doubly encodes a request into JSON, the plugin tries to detect that and will produce a more
    helpful 400 response instead of a 500.

    GitHub issue: rabbitmq/rabbitmq-management#839

Federation Plugin

Bug Fixes

  • When a classic mirrored queue with a replica on every cluster node (this is highly discouraged) was federated,
    multiple links could be started by the plugin, potentially making message transfers concurrent
    and affecting ordering.

    GitHub issue: rabbitmq/rabbitmq-federation#114

Enhancements

  • It is now possible to federate exchanges in different virtual hosts in the same cluster for more than one hop.
    For example, federate messages from an exchange in virtual host B to C, while B itself is federated from
    virtual host A. Previously such messages would have been filtered by the message cycle detection algorithm
    which assumed that exchanges are only federated across clusters.

    GitHub issue: rabbitmq/rabbitmq-federation#116

Kubernetes Peer Discovery Plugin

Bug Fixes

OAuth 2 AuthN/AuthZ Plugin

Enhancements

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

RabbitMQ 3.8.8

03 Sep 17:53

Choose a tag to compare

RabbitMQ 3.8.8

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

This releases introduces a new node operation mode, called the maintenance mode.
This feature is useful when performing rolling upgrades and is covered
in more detail below.

This is the last RabbitMQ release to support Erlang 21.3.

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

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 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 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

Enhancements

  • Maintenance mode. This is a new mode operation mode for RabbitMQ nodes. The mode is explicitly turned
    on and off by the operator using a bunch of new CLI commands (see below). For mixed-version cluster
    compatibility, this feature must be enabled using a feature flag.

    When a node is being put down for maintenance and in maintenance mode, it will not be available for
    serving client traffic and will try to transfer as many of its responsibilities as practically possible
    and safe.

    Currently this involves the following steps:

    • Suspend all client connection listeners (no new client connections will be accepted)
    • Close all existing client connections: applications are expected to reconnect to other nodes and recover
    • Transfer primary replicas of all classic mirrored queues hosted on the target node
    • Transfer primary replicas of all quorum queues hosted on the target node, and prevent them from participating
      in the subsequently triggered Raft elections
    • Mark the node as down for maintenance
    • At this point, a node shutdown will be least disruptive as the node has already transferred most of its
      responsibilities

    A node in maintenance mode will not be considered for new primary queue replica placement,
    regardless of queue type and the queue master locator policy used.

    A node in maintenance mode is expected to be shut down, upgraded or reconfigured, and restarted in a short
    period of time. Nodes are not expected to be running in this mode for long periods of time.

    A node in maintenance mode can be revived, that is, brough back into its regular operational state.
    When a node is revived restarted (e.g. after an upgrade), it will again accept client connections
    and be considered for primary queue replica placements. It will not recover previous client connections
    as RabbitMQ never initiates connections to clients, but clients will be able to reconnect to it.

    This feature is expected to evolve based on the feedback from the community, the field and the
    RabbitMQ core team at VMware. For example, it can be adjusted based on the learnings when
    adding upgrades support to the RabbitMQ Cluster Operator for Kubernetes.

    GitHub issue: rabbitmq/rabbitmq-server#2321

CLI

Enhancements

  • rabbitmq-upgrade drain is a new command that puts a node in maintenance mode (see above).
    rabbitmq-upgrade revive is its counterpart that "revives" a node by putting it into the regular
    operating mode.

    rabbitmqctl suspend_listeners is a new command that suspends all client connection listeners
    (ports) on the node. This means that existing connections won't be affected but no new connections
    will be accepted. This can be useful during upgrades, in particular using the
    Blue/Green deployment strategy.

    rabbitmqctl resume_listeners resumes all client listeners so that they accept new client connections
    again.

    All these commands will have an effect only if the maintenance_mode_status flag is enabled.

    GitHub issue: rabbitmq/rabbitmq-cli#419

MQTT Plugin

Bug Fixes

  • Abrupt client connection termination could result in an Erlang process leak. This resource leak
    affects RabbitMQ versions between 3.8.5 and 3.8.7, inclusive.

    GitHub issue: rabbitmq/rabbitmq-mqtt#239

Management Plugin

Bug Fixes

  • A node that had a lot of on disk data and constrainted resources could spend a very long time
    activating the plugin while queue primary replicas were busy recovering the data.

    GitHub issue: rabbitmq/rabbitmq-server#2437

OAuth 2 AuthN/AuthZ Plugin

Enhancements

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

RabbitMQ 3.8.7

17 Aug 21:12

Choose a tag to compare

RabbitMQ 3.8.7

RabbitMQ 3.8.7 is a maintenance release that patches
a security vulnerability.

RabbitMQ Core team would like to thank Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center
for researching and responsibly disclosing the vulnerability addressed in this release.

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 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

  • Addressed a Windows-specific binary planting security vulnerability CVE-2020-5419 that allowed for arbitrary code execution.
    The vulnerability requires the attacker to have local access and elevated privileges,
    and cannot be executed remotely.

    CVSS score: 6.7 (medium severity).

    This vulnerability was researched and responsibly disclosed by
    Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center.

  • In a mixed version cluster, virtual host limits were incorrectly reported for yet-to-be-upgraded nodes.

    Contributed by @mnxumalo.

    GitHub issue: rabbitmq/rabbitmq-server#2430

CLI Tools

Bug Fixes

  • Definition export using rabbitmqctl export_definitions exported optional queue arguments as blank.
    Export performed via the HTTP API was not affected by this problem.

    GitHub issue: rabbitmq/rabbitmq-server#2427

  • Invoking rabbitmqctl (or other tools) without any arguments produced help output that was inconsistent
    from rabbitmqctl help in line spacing.

Federation Plugin

Bug Fixes

  • Links in some environments upgraded from earlier 3.8.x versions could run into a data coercion exception
    when connection credentials were unencrypted.

    GitHub issue: rabbitmq/rabbitmq-federation#112

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

RabbitMQ 3.7.28

17 Aug 16:00

Choose a tag to compare

RabbitMQ 3.7.28

RabbitMQ 3.7.28 is a security patch release.

RabbitMQ 3.7.x series are out of general support and covered by the limited extended support policy
through October 1st, 2020.
Please consider upgrading to RabbitMQ 3.8.x.

RabbitMQ Core team would like to thank Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center
for researching and responsibly disclosing the vulnerability addressed in this release.

Erlang/OTP Compatibility Notes

This release no longer supports Erlang/OTP 20.3.
Erlang 21.3+ is now a hard requirement checked on node startup.

Make sure a supported Erlang version is used before upgrading.
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 and upgrading Erlang to 21.x or later at the same time, 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 before Erlang.

Upgrade Doc Guides and Change Log

See 3.7.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

Bug Fixes

  • Addressed a Windows-specific binary planting security vulnerability CVE-2020-5419 that allowed for arbitrary code execution.
    The vulnerability requires the attacker to have local access and elevated privileges,
    and cannot be executed remotely.

    CVSS score: 6.7 (medium severity).

    This vulnerability was researched and responsibly disclosed by
    Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center.

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