Skip to content

Releases: rabbitmq/rabbitmq-server

RabbitMQ 3.7.20

25 Oct 14:38

Choose a tag to compare

RabbitMQ 3.7.20

RabbitMQ 3.7.20 is a maintenance release that focuses on bug fixes.
RabbitMQ 3.7.x series is supported through March 2020.

Erlang/OTP Compatibility Notes

Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
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

  • Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
    of a rolling upgrade-then-restart for each node individually.

    GitHub issue: rabbitmq/rabbitmq-server#2132

  • Improved error handling in a module that continuously registers the node with epmd avoids
    log noise.

    GitHub issue: rabbitmq/rabbitmq-server#2130

CLI Tools

Bug Fixes

  • rabbitmqctl await_startup failed with an exception when effective timeout was set to infinity.

    GitHub issue: rabbitmq/rabbitmq-server#2144

  • rabbitmq-diagnostics check_port_connectivity produced a false positive in an IPv6-only environment.

    Contributed by Gabriele Santomaggio.

    GitHub issue: rabbitmq/rabbitmq-cli#385

  • rabbitmq-diagnostics status, rabbitmq-diagnostics cluster_status, rabbitmq-diagnostics listeners now support
    --formatter=erlang (raw Erlang data structure output)

    GitHub issue: rabbitmq/rabbitmq-cli#383

Kubernetes Peer Discovery Plugin

Bug Fixes

AWS Peer Discovery Plugin

Bug Fixes

Consul Peer Discovery Plugin

Enhancements

Bug Fixes

etcd Peer Discovery Plugin

Bug Fixes

Erlang Client

Bug Fixes

LDAP Plugin

Enhancements

Tracing Plugin

Bug Fixes

  • On Windows, deleting the file used by an active (running) trace resulted in an EACCES exception.

    GitHub issue: rabbitmq/rabbitmq-tracing#31

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

RabbitMQ 3.8.1-beta.2

24 Oct 13:08

Choose a tag to compare

RabbitMQ 3.8.1-beta.2 Pre-release
Pre-release

RabbitMQ 3.8.1-beta.2

RabbitMQ 3.8.1-beta.2 is a preview of a maintenance release that focuses on bug fixes.

Erlang/OTP Compatibility Notes

This release requiresErlang/OTP 21.3.

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

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

Bug Fixes

  • Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
    of a rolling upgrade-then-restart for each node individually.

    GitHub issue: rabbitmq/rabbitmq-server#2132

  • Improved error handling in a module that continuously registers the node with epmd avoids
    log noise.

    GitHub issue: rabbitmq/rabbitmq-server#2130

Enhancements

CLI Tools

Bug Fixes

  • rabbitmqctl await_startup failed with an exception when effective timeout was set to infinity.

    GitHub issue: rabbitmq/rabbitmq-server#2144

  • rabbitmq-diagnostics check_port_connectivity produced a false positive in an IPv6-only environment.

    Contributed by Gabriele Santomaggio.

    GitHub issue: rabbitmq/rabbitmq-cli#385

  • rabbitmq-diagnostics status, rabbitmq-diagnostics cluster_status, rabbitmq-diagnostics listeners now support
    --formatter=erlang (raw Erlang data structure output)

    GitHub issue: rabbitmq/rabbitmq-cli#383

Enhancements

  • rabbitmq-diagnostics consume_event_stream is a new command that makes it easier to consume a stream
    of internal commands. This can be useful for troubleshooting and auditing. Previously this was only
    possible via the rabbitmq-event-exchange plugin.

    GitHub issue: rabbitmq/rabbitmq-cli#299

  • rabbitmq-diagnostics check_certificate_expiration is a new health check command
    that fails when any of the certificates used by target node expire within a specified time window.

    rabbitmq-diagnostics certificates is its diagnostics (informative) counterpart that displays all CA and leaf certificates
    used by target node.

    GitHub issue: rabbitmq/rabbitmq-cli#305

Prometheus Plugin

Bug Fixes

  • Prometheus scraping API endpoint accepted an unreasonably strict set of content types from clients,
    which caused Telegraf Prometheus input requests to fail with an 406 Not Acceptable response.

    GitHub issue: rabbitmq/rabbitmq-prometheus#12

Management Plugin

Bug Fixes

Kubernetes Peer Discovery Plugin

Bug Fixes

Consul Peer Discovery Plugin

Enhancements

STOMP Plugin

Enhancements

Erlang Client

Bug Fixes

Tracing Plugin

Bug Fixes

  • On Windows, deleting the file used by an active (running) trace resulted in an EACCES exception.

    GitHub issue: rabbitmq/rabbitmq-tracing#31

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

RabbitMQ 3.7.20-rc.2

24 Oct 16:42

Choose a tag to compare

RabbitMQ 3.7.20-rc.2 Pre-release
Pre-release

RabbitMQ 3.7.20-rc.2

RabbitMQ 3.7.20-rc.2 is a maintenance release candidate that focuses on bug fixes.
RabbitMQ 3.7.x series is supported through March 2020.

Erlang/OTP Compatibility Notes

Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
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

  • Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
    of a rolling upgrade-then-restart for each node individually.

    GitHub issue: rabbitmq/rabbitmq-server#2132

  • Improved error handling in a module that continuously registers the node with epmd avoids
    log noise.

    GitHub issue: rabbitmq/rabbitmq-server#2130

CLI Tools

Bug Fixes

  • rabbitmqctl await_startup failed with an exception when effective timeout was set to infinity.

    GitHub issue: rabbitmq/rabbitmq-server#2144

  • rabbitmq-diagnostics check_port_connectivity produced a false positive in an IPv6-only environment.

    Contributed by Gabriele Santomaggio.

    GitHub issue: rabbitmq/rabbitmq-cli#385

  • rabbitmq-diagnostics status, rabbitmq-diagnostics cluster_status, rabbitmq-diagnostics listeners now support
    --formatter=erlang (raw Erlang data structure output)

    GitHub issue: rabbitmq/rabbitmq-cli#383

Kubernetes Peer Discovery Plugin

Bug Fixes

Consul Peer Discovery Plugin

Enhancements

Erlang Client

Bug Fixes

LDAP Plugin

Enhancements

Tracing Plugin

Bug Fixes

  • On Windows, deleting the file used by an active (running) trace resulted in an EACCES exception.

    GitHub issue: rabbitmq/rabbitmq-tracing#31

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

RabbitMQ 3.7.20-rc.1

17 Oct 02:41

Choose a tag to compare

RabbitMQ 3.7.20-rc.1 Pre-release
Pre-release

RabbitMQ 3.7.20-rc.1

RabbitMQ 3.7.20-rc.1 is a preview of a maintenance release that focuses on bug fixes.
RabbitMQ 3.7.x series is supported through March 2020.

Erlang/OTP Compatibility Notes

Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
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

  • Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
    of a rolling upgrade-then-restart for each node individually.

    GitHub issue: rabbitmq/rabbitmq-server#2132

  • Improved error handling in a module that continuously registers the node with epmd avoids
    log noise.

    GitHub issue: rabbitmq/rabbitmq-server#2130

Erlang Client

Bug Fixes

LDAP 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.7.20.tar.xz.

RabbitMQ 3.8.1-beta.1

10 Oct 18:53

Choose a tag to compare

RabbitMQ 3.8.1-beta.1 Pre-release
Pre-release

RabbitMQ 3.8.1

RabbitMQ 3.8.1-beta.1 is a preview of a maintenance release that focuses on bug fixes.

Erlang/OTP Compatibility Notes

This release requiresErlang/OTP 21.3.

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

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

Bug Fixes

  • Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
    of a rolling upgrade-then-restart for each node individually.

    GitHub issue: rabbitmq/rabbitmq-server#2132

  • Improved error handling in a module that continuously registers the node with epmd avoids
    log noise.

    GitHub issue: rabbitmq/rabbitmq-server#2130

CLI Tools

Enhancements

  • rabbitmq-diagnostics consume_event_stream is a new command that makes it easier to consume a stream
    of internal commands. This can be useful for troubleshooting and auditing. Previously this was only
    possible via the rabbitmq-event-exchange plugin.

    GitHub issue: rabbitmq/rabbitmq-cli#299

  • rabbitmq-diagnostics check_certificate_expiration is a new health check command
    that fails when any of the certificates used by target node expire within a specified time window.

    rabbitmq-diagnostics certificates is its diagnostics (informative) counterpart that displays all CA and leaf certificates
    used by target node.

    GitHub issue: rabbitmq/rabbitmq-cli#305

Management Plugin

Bug Fixes

STOMP 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.1.tar.xz.

RabbitMQ 3.7.20-beta.1

10 Oct 16:51

Choose a tag to compare

Pre-release

RabbitMQ 3.7.20-beta.1

RabbitMQ 3.7.20-beta.1 is a preview of a maintenance release that focuses on bug fixes.
RabbitMQ 3.7.x series is supported through March 2020.

Erlang/OTP Compatibility Notes

Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
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

  • Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
    of a rolling upgrade-then-restart for each node individually.

    GitHub issue: rabbitmq/rabbitmq-server#2132

  • Improved error handling in a module that continuously registers the node with epmd avoids
    log noise.

    GitHub issue: rabbitmq/rabbitmq-server#2130

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

RabbitMQ 3.7.19

02 Oct 23:02

Choose a tag to compare

RabbitMQ 3.7.19

RabbitMQ 3.7.19 is a maintenance release that focuses on bug fixes.
RabbitMQ 3.7.x series is supported through March 2020.

Erlang/OTP Compatibility Notes

Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
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

  • rabbit_diagnostics:binary_refs/1, a predecessor to Recon used for binary heap inspection,
    could fail with an exception due to a race condition.

    Contributed by John Eckersberg (@jeckersb).

    GitHub issue: rabbitmq/rabbitmq-server#2117

  • It was not possible to set ERL_MAX_PORTS in rabbitmq-env-conf.bat.

    GitHub issue: rabbitmq/rabbitmq-server#2084

Management Plugin

Bug Fixes

CLI Tools

Bug Fixes

STOMP Plugin

Bug Fixes

Event Exchange Plugin

Bug Fixes

Management Exchange Plugin

Bug Fixes

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

RabbitMQ 3.8.0

01 Oct 10:05

Choose a tag to compare

RabbitMQ 3.8.0

RabbitMQ 3.8.0 is a feature release. It contains several major improvements in areas of
data safety, replication, observability, and ease of upgrades. Some highlight features are

A recorded webinar, What's New in RabbitMQ 3.8, covers some of the highlights in this release.

Several features in this release are backed by a new Raft implementation for Erlang and Elixir,
Ra.

Erlang/OTP Compatibility Notes

This release requires Erlang 21.3 or later.

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.

Rolling Upgrades to 3.8

RabbitMQ 3.8.0 nodes can run alongside 3.7.18 or later 3.7.x nodes.
No 3.8.0-specific features would be available in a mixed version cluster. Mixed versions are meant
to simplify rolling upgrades and not meant to be running for long periods of time.

See the Upgrading guide for documentation on upgrades.

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 the Upgrading guide for documentation on upgrades
and RabbitMQ change log for release notes of other releases.

Client Library Compatibility

Client libraries that were compatible with RabbitMQ 3.7.x will be compatible with 3.8.0.

Getting Help

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

Changes

Core Server

Enhancements

  • Quorum Queues built on top of the Raft consensus algorithm for data safety,
    more predictable failure recovery, more efficient synchronisation of new and recovered followers, and parallel replication.

  • Feature Flags allow for mixed-version clusters and safer rolling upgrades.

  • Single Active Consumer makes it possible
    to run a set of consumers for redundancy while ensuring that only one consumer is getting deliveries.

  • New metric: dropped unroutable messages. Spotting faulty publishers and routing topology issues is now easier.

    GitHub issue: rabbitmq/rabbitmq-server#1904

  • New metrics: connection and channel churn.

    GitHub issue: rabbitmq/rabbitmq-server#1723

  • Quorum queues support redelivery tracking, which can be used by consumers to protect themselves from
    poison message redeliveries.

    GitHub issue: rabbitmq/rabbitmq-server#502

  • New queue overflow behaviour: reject-publish-dlx. It is identical to reject-publish
    but also dead letters rejected messages.

    GitHub issue: rabbitmq/rabbitmq-server#1443

  • Default bindings are now explicit instead of being rows in the internal data store. That means
    that high queue churn results in significantly less binding churn, reducing lock contention on
    schema database tables, and peak schema operation latencies with it.

    GitHub issue: rabbitmq/rabbitmq-server#1721

Internal API Changes

  • amqqueue is a new public API module
    that should be used to access queue state instead of using queue state records directly. This allows the record
    to evolve a lot more rapidly with fewer or no code changes in the plugins that access queue state.

  • authn and authz functions now have access to additional (e.g. protocol-specific) context information.

    GitHub issue: rabbitmq/rabbitmq-server#1767

  • Backing queue interface now exposes a function for message deduplication. Plugins now can track duplicate messages
    in a way that makes it possible to negatively confirm duplicates back to the publisher.

    Contributed by Matteo Cafasso.

    GitHub issue: rabbitmq/rabbitmq-server#1774.

Usability

  • New style configuration format is now more forgiving: it will ignore lines that only contain
    whitespace and tab characters, as well as leading and trailing whitespace.

    GitHub issue: rabbitmq/rabbitmq-server#2072

  • Maximum message size is now configurable. The default was reduced to 128 MiB.e

    GitHub issue: rabbitmq/rabbitmq-server#1812

Bug Fixes

Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains community contributions and most important issues that were not backported to 3.7.x releases.

CLI Tools

Enhancements

Usability

  • rabbitmq-diagnostics cipher_suites now uses OpenSSL cipher suite format by default.

    GitHub issue: rabbitmq/rabbitmq-cli#267

Management Plugin

Enhancements

Shovel Plugin

Bug Fixes

Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains most prominent fixes.

  • Sensitive values in Shovel connection state (namely, the connection credentials) are now stored in
    encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
    at the cost of making troubleshooting authentication failures harder.

    GitHub issue: rabbitmq-erlang-client#123

Federation Plugin

...

Read more

RabbitMQ 3.8.0-rc.3

27 Sep 13:29

Choose a tag to compare

RabbitMQ 3.8.0-rc.3 Pre-release
Pre-release

RabbitMQ 3.8.0-rc.3

RabbitMQ 3.8.0-rc.3 is a preview of a feature release. It contains several major improvements in areas of
data safety, replication, observability, and ease of upgrades. Some highlight features are

For an overview of new features in webinary form, take a look at What's New in RabbitMQ 3.8.

Several features in this release are backed by a new Raft implementation for Erlang and Elixir,
Ra.

Erlang/OTP Compatibility Notes

This release requires Erlang 21.3 or later.

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.

Rolling Upgrades to 3.8

RabbitMQ 3.8.0 nodes can run alongside 3.7.17 or later 3.7.x nodes.
No 3.8.0-specific features would be available in a mixed version cluster. Mixed versions are meant
to simplify rolling upgrades and not meant to be running for long periods of time.

See the Upgrading guide for documentation on upgrades.

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 the Upgrading guide for documentation on upgrades
and RabbitMQ change log for release notes of other releases.

Client Library Compatibility

Client libraries that were compatible with RabbitMQ 3.7.x will be compatible with 3.8.0.

Getting Help

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

Changes

Core Server

Enhancements

  • Quorum Queues built on top of the Raft consensus algorithm for data safety,
    more predictable failure recovery, more efficient synchronisation of new and recovered followers, and parallel replication.

  • Feature Flags allow for mixed-version clusters and safer rolling upgrades.

  • Single Active Consumer makes it possible
    to run a set of consumers for redundancy while ensuring that only one consumer is getting deliveries.

  • New metric: dropped unroutable messages. Spotting faulty publishers and routing topology issues is now easier.

    GitHub issue: rabbitmq/rabbitmq-server#1904

  • New metrics: connection and channel churn.

    GitHub issue: rabbitmq/rabbitmq-server#1723

  • Quorum queues support redelivery tracking, which can be used by consumers to protect themselves from
    poison message redeliveries.

    GitHub issue: rabbitmq/rabbitmq-server#502

  • New queue overflow behaviour: reject-publish-dlx. It is identical to reject-publish
    but also dead letters rejected messages.

    GitHub issue: rabbitmq/rabbitmq-server#1443

  • Default bindings are now explicit instead of being rows in the internal data store. That means
    that high queue churn results in significantly less binding churn, reducing lock contention on
    schema database tables, and peak schema operation latencies with it.

    GitHub issue: rabbitmq/rabbitmq-server#1721

Internal API Changes

  • amqqueue is a new public API module
    that should be used to access queue state instead of using queue state records directly. This allows the record
    to evolve a lot more rapidly with fewer or no code changes in the plugins that access queue state.

  • authn and authz functions now have access to additional (e.g. protocol-specific) context information.

    GitHub issue: rabbitmq/rabbitmq-server#1767

  • Backing queue interface now exposes a function for message deduplication. Plugins now can track duplicate messages
    in a way that makes it possible to negatively confirm duplicates back to the publisher.

    Contributed by Matteo Cafasso.

    GitHub issue: rabbitmq/rabbitmq-server#1774.

Usability

  • New style configuration format is now more forgiving: it will ignore lines that only contain
    whitespace and tab characters, as well as leading and trailing whitespace.

    GitHub issue: rabbitmq/rabbitmq-server#2072

  • Maximum message size is now configurable. The default was reduced to 128 MiB.e

    GitHub issue: rabbitmq/rabbitmq-server#1812

Bug Fixes

Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains community contributions and most important issues that were not backported to 3.7.x
prior to the 3.8.0-rc.1 release.

CLI Tools

Enhancements

Usability

  • rabbitmq-diagnostics cipher_suites now uses OpenSSL cipher suite format by default.

    GitHub issue: rabbitmq/rabbitmq-cli#267

Management Plugin

Enhancements

Shovel Plugin

Bug Fixes

Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains most prominent fixes.

  • Sensitive values in Shovel connection state (namely, the connection credentials) are now stored in
    encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
    at the cost of making troubleshooting authentication failures harder.

    GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-...

Read more

RabbitMQ 3.8.0-rc.2

22 Sep 09:06

Choose a tag to compare

RabbitMQ 3.8.0-rc.2 Pre-release
Pre-release

RabbitMQ 3.8.0-rc.2

RabbitMQ 3.8.0-rc.2 is a preview of a feature release. It contains several major improvements in areas of
data safety, replication, observability, and ease of upgrades. Some highlight features are

For an overview of new features in webinary form, take a look at What's New in RabbitMQ 3.8.

Several features in this release are backed by a new Raft implementation for Erlang and Elixir,
Ra.

Erlang/OTP Compatibility Notes

This release requires Erlang 21.3 or later.

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.

Rolling Upgrades to 3.8

RabbitMQ 3.8.0 nodes can run alongside 3.7.17 or later 3.7.x nodes.
No 3.8.0-specific features would be available in a mixed version cluster. Mixed versions are meant
to simplify rolling upgrades and not meant to be running for long periods of time.

See the Upgrading guide for documentation on upgrades.

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 the Upgrading guide for documentation on upgrades
and RabbitMQ change log for release notes of other releases.

Client Library Compatibility

Client libraries that were compatible with RabbitMQ 3.7.x will be compatible with 3.8.0.

Getting Help

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

Changes

Core Server

Enhancements

  • Quorum Queues built on top of the Raft consensus algorithm for data safety,
    more predictable failure recovery, more efficient synchronisation of new and recovered followers, and parallel replication.

  • Feature Flags allow for mixed-version clusters and safer rolling upgrades.

  • Single Active Consumer makes it possible
    to run a set of consumers for redundancy while ensuring that only one consumer is getting deliveries.

  • New metric: dropped unroutable messages. Spotting faulty publishers and routing topology issues is now easier.

    GitHub issue: rabbitmq/rabbitmq-server#1904

  • New metrics: connection and channel churn.

    GitHub issue: rabbitmq/rabbitmq-server#1723

  • Quorum queues support redelivery tracking, which can be used by consumers to protect themselves from
    poison message redeliveries.

    GitHub issue: rabbitmq/rabbitmq-server#502

  • New queue overflow behaviour: reject-publish-dlx. It is identical to reject-publish
    but also dead letters rejected messages.

    GitHub issue: rabbitmq/rabbitmq-server#1443

  • Default bindings are now explicit instead of being rows in the internal data store. That means
    that high queue churn results in significantly less binding churn, reducing lock contention on
    schema database tables, and peak schema operation latencies with it.

    GitHub issue: rabbitmq/rabbitmq-server#1721

Internal API Changes

  • amqqueue is a new public API module
    that should be used to access queue state instead of using queue state records directly. This allows the record
    to evolve a lot more rapidly with fewer or no code changes in the plugins that access queue state.

  • authn and authz functions now have access to additional (e.g. protocol-specific) context information.

    GitHub issue: rabbitmq/rabbitmq-server#1767

  • Backing queue interface now exposes a function for message deduplication. Plugins now can track duplicate messages
    in a way that makes it possible to negatively confirm duplicates back to the publisher.

    Contributed by Matteo Cafasso.

    GitHub issue: rabbitmq/rabbitmq-server#1774.

Usability

  • New style configuration format is now more forgiving: it will ignore lines that only contain
    whitespace and tab characters, as well as leading and trailing whitespace.

    GitHub issue: rabbitmq/rabbitmq-server#2072

  • Maximum message size is now configurable. The default was reduced to 128 MiB.e

    GitHub issue: rabbitmq/rabbitmq-server#1812

Bug Fixes

Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains community contributions and most important issues that were not backported to 3.7.x
prior to the 3.8.0-rc.1 release.

CLI Tools

Enhancements

Usability

  • rabbitmq-diagnostics cipher_suites now uses OpenSSL cipher suite format by default.

    GitHub issue: rabbitmq/rabbitmq-cli#267

Management Plugin

Enhancements

Shovel Plugin

Bug Fixes

Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains most prominent fixes.

  • Sensitive values in Shovel connection state (namely, the connection credentials) are now stored in
    encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
    at the cost of making troubleshooting authentication failures harder.

    GitHub issue: rabbitmq-erlang-client#123

Federation Plugin

Bug Fi...

Read more