All Versions
10
Latest Version
Avg Release Cycle
17 days
Latest Release
794 days ago

Changelog History

  • v2020.12-additions

    November 25, 2020
  • v3.8.10-beta.1 Changes

    November 09, 2020

    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

    Quorum queues now can use the reject-publish
    max length overflow strategy.

    GitHub issue: rabbitmq/rabbitmq-server#2407

    ๐Ÿ‘ Quorum queues now support consumer priority.

    GitHub issue: rabbitmq/rabbitmq-server#2451

    Per-user connection and queue limits. This is similar to per-vhost limits but,
    as the name suggests, these limits are associated for a given user.

    The limits are controlled using CLI tools or the HTTP API:

    # limits user "user-e8d3f85c" to up to five connections, ten channels and a fifty queuesrabbitmqctl set\_user\_limits "user-e8d3f85c" '{"max-connections": 5, "max-channels": 10, "max-queues": 50}'# clears the maximum number of queues limit for the userrabbitmqctl clear\_user\_limits "user-e8d3f85c" "max-queues"# clears all limits for the userrabbitmqctl clear\_user\_limits "user-e8d3f85c" "all"
    

    Contributed by Erlang Solutions, sponsored by CloudAMQP.

    GitHub issue: rabbitmq/rabbitmq-server#607, rabbitmq/rabbitmq-server#2380

    ๐Ÿ”ง TLSv1.3 is no longer considered experimental (on Erlang 23) and excluded from TLS listener configuration.

    GitHub issue: rabbitmq/rabbitmq-common#415

    ๐Ÿšง When a node is put under maintenance, it will now stop all local quorum queue replicas after completing
    leadership transfer. This means that no quorum queue replicas on the node will be considered for
    leader elections.

    GitHub issue: rabbitmq/rabbitmq-server#2474

    Nodes now keep track of failed client authentication attempts and expose it as a metric via both the Prometheus endpoint
    and the HTTP API at GET /api/auth/attempts/{node}.

    ๐Ÿ‘ The tracking is done for every cluster node individually. The protocols that support authentication attempt tracking
    right now are AMQP 0-9-1, AMQP 1.0 and MQTT.

    GitHub issue: rabbitmq/rabbitmq-server#2436

    rabbitmq.conf schema now allows for peer certificate chain verification depth to be set to zero.
    When this value is used, peer certificate must be signed by a trusted CA certificate directly in order
    for the verification to pass.

    GitHub issue: rabbitmq/rabbitmq-server#2493

    RABBITMQ_IO_THREAD_POOL_SIZE will no longer be respected by RabbitMQ nodes. It is no longer relevant
    with supported Erlang versions and will simplify rabbitmq-diagnostics runtime_thread_stats output.

    GitHub issue: rabbitmq/rabbitmq-server#2473

    The +K runtime parameter is no longer used by RabbitMQ nodes as it has no effect
    ๐Ÿ‘ with supported Erlang versions.

    Contributed by Ayanda Dube (Erlang Solutions).

    GitHub issue: rabbitmq/rabbitmq-server#2470

    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

    โฑ Federation links that failed to connect due to a TCP connection timeout leaked resources.
    Other connection failure scenarios did not result in a leak.

    GitHub issue: rabbitmq/rabbitmq-federation#119

    ๐Ÿ”Œ Management Plugin

    โœจ Enhancements

    Individual health checks are now available through the HTTP API.

    GitHub issue: rabbitmq/rabbitmq-management#844

    ๐Ÿ› Bug Fixes

    โšก๏ธ Quorum queue consumer counter on on the queue list page was not updated when consumers were cancelled or failed.

    GitHub issue: rabbitmq/rabbitmq-server#2421

    The aliveness check endpoint now responds with a 503 Service Unavailable instead of a 500 when
    โœ… it cannot publish a test message, e.g. because a policy with zero message TTL was applied to all queues.

    GitHub issue: rabbitmq/rabbitmq-management#855

    ๐Ÿ”Œ AWS Peer Discovery Plugin

    AWS API request errors are now propagated. This means that should an AWS API request fail,
    the peer discovery subsystem will retry it a limited number of times.

    Contributed by Stefan @stefanmoser Moser.

    GitHub issue: rabbitmq/rabbitmq-peer-discovery-aws#40

    โฌ†๏ธ 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.10.tar.xz.

  • v3.8.9 Changes

    September 24, 2020

    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

    0๏ธโƒฃ Raft implementation's failure detector default polling interval has been increased from 1s to 5s.
    0๏ธโƒฃ 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

    ๐Ÿ”Œ Kubernetes API events registered by this plugin mixed up reason and message fields.

    Contributed by Gabriele Santomaggio.

    GitHub issue: rabbitmq/rabbitmq-peer-discovery-k8s#70

    ๐Ÿ”Œ OAuth 2 AuthN/AuthZ Plugin

    โœจ Enhancements

    ๐Ÿ‘Œ Improved compatibility with Azure AD. This plugin can now be configured to fetch scopes from a non-standard
    field in the decoded token value (other than the standard scopes field).

    Contributed by @Robert-Gustafsson.

    GitHub issue: rabbitmq/rabbitmq-auth-backend-oauth2#53

    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.

  • v3.8.8 Changes

    September 03, 2020

    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

    ๐Ÿ”€ Simplified scope merging code specific to Keycloak.

    Contributed by Simon @SimonAlling Alling.

    GitHub issue: rabbitmq/rabbitmq-auth-backend-oauth2#52

    โฌ†๏ธ 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.

  • v3.8.7 Changes

    August 17, 2020

    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

    Shovels where the source is AMQP 1.0 endpoint now gracefully handle link detachment
    if the remote end set the closed attribute to false.

    Contributed by @tstorck.

    GitHub issue: rabbitmq/rabbitmq-amqp1.0-client#56

    โœ‚ Removed some debug logging that was unintentionally polluting standard output even when
    ๐ŸŒฒ debug logging was not enabled.

    Contributed by @sircinek.

    GitHub issue: rabbitmq/rabbitmq-amqp1.0-client#54

    โฌ†๏ธ 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.

  • v3.8.6 Changes

    August 04, 2020

    RabbitMQ 3.8.6

    ๐Ÿš€ RabbitMQ 3.8.6 is a maintenance release.
    ๐Ÿ›  It focuses on bug fixes and usability improvements.

    RabbitMQ Adopts the Mozilla Public License 2.0

    ๐Ÿš€ Starting with this release, core RabbitMQ server and all tier 1 plugins
    are relicensed under the Mozilla Public License 2.0
    (previously used license: the Mozilla Public License 1.1).

    The permissiveness of the MPL 2.0 is largely the same as of the MPL 1.1.
    ๐Ÿ‘€ See the MPL 2.0 FAQ and
    ๐Ÿ™‹ MPL 2.0 Revision and Changes FAQ to learn more.

    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

    ๐Ÿ—„ Deprecations

    ๐Ÿš€ This release removed HiPE precompilation support. HiPE has been deprecated and
    mostly unmaintained since Erlang 22, and will be replaced with a JIT in Erlang 24
    in 2021.

    rabbitmqctl hipe\_compile
    

    and

    hipe\_compile = true
    

    are both retained for backwards compatibility but they won't have any effect.

    โฌ†๏ธ 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

    License Change

    RabbitMQ has been relicensed under the Mozilla Public License 2.0
    (previously used license: the Mozilla Public License 1.1).

    The permissiveness of the MPL 2.0 is largely the same as of the MPL 1.1.
    ๐Ÿ‘€ See the MPL 2.0 FAQ and
    ๐Ÿ™‹ MPL 2.0 Revision and Changes FAQ to learn more.

    ๐Ÿ—„ Deprecations

    โœ‚ Removed HiPE pre-compilation support.

    GitHub issue: rabbitmq/rabbitmq-server#2392

    ๐Ÿ› Bug Fixes

    Definition import on node boot (via the built-in load_definitions configuration setting ) is now performed
    ๐Ÿ”Œ after plugins are enabled.

    This resolves a long-standing chicken-and-egg dependency problem that prevented definitions
    ๐Ÿ”Œ that depend on plugins being functional from being successfully imported during node boot.

    ๐Ÿ”Œ Note that definition import via the management plugin (management.load_definitions) is still
    performed during management plugin activation time and therefore can not offer any guarantees
    ๐Ÿ”Œ as some plugins may be enabled after the management one.

    Some affected features include

    GitHub issue: rabbitmq/rabbitmq-server#2384

    Similarly, client connection listeners (both TCP and TLS-enabled) are now started after
    ๐Ÿ”Œ plugin activation. This makes certain configurations that use the trust store plugin
    behave as expected.

    GitHub issue: rabbitmq/rabbitmq-server#2405

    ๐Ÿ›  Environment variables prefixed with RABBITMQ_ were ignored when used in the rabbitmq-env.conf file,
    while their prefixless counterparts worked as expected.

    GitHub issue: rabbitmq/rabbitmq-common#401

    โœจ Enhancements

    ๐Ÿ“œ rabbitmq.conf config parser now accepts lines that only consist of whitespace.

    GitHub issue: rabbitmq/rabbitmq-server#2393

    CLI Tools

    ๐Ÿ—„ Deprecations

    ๐Ÿ—„ rabbitmqctl hipe_compile is now a no-op. HiPE support has been deprecated in Erlang 22
    ๐Ÿšš will be removed in Erlang 24.

    GitHub issue: rabbitmq/rabbitmq-cli#433

    ๐Ÿ”ง The use of the `environment variable to configure the [shared secret](https://www.rabbitmq.com/cli.html#erlang-cookie) is now deprecated. ๐Ÿ‘‰ Use the [local file](https://www.rabbitmq.com/cli.html#cookie-file-locations) option instead or, if the value absolutely must be provided on the command line, the--erlang-cookie [value]` switch.

    GitHub issue: rabbitmq/rabbitmq-cli#443

    ๐Ÿ› Bug Fixes

    rabbitmqctl export_definitions incorrectly serialised runtime parameter values.

    GitHub issue: rabbitmq/rabbitmq-cli#435

    CTL_ERL_ARGS environment variable was unintentionally ignored starting with version 3.8.4.

    GitHub issue: rabbitmq/rabbitmq-server#2394

    [command] --help and help [command] output had minor unintentional inconsistencies.

    GitHub issue: rabbitmq/rabbitmq-cli#437

    โœจ Enhancements

    rabbitmq-queues check_if_node_is_quorum_critical and rabbitmq-queues check_if_node_is_mirror_sync_critical checks
    have been adjusted. They now special case single node clusters as the check does not make much sense
    in those environments.

    rabbitmq-queues check_if_node_is_mirror_sync_critical now also excludes exclusive queues from
    consideration as they, even if matched by a policy that enables classic queue mirroring,
    would not actually be mirrored.

    GitHub issue: rabbitmq/rabbitmq-cli#432

    rabbitmq-diagnostics status now includes the total amount of memory used by the node in its
    regular output. It was previously only available when --formatter=json switch was used.

    GitHub issue: rabbitmq/rabbitmq-cli#449

    rabbitmq-diagnostics erlang_cookie_sources is a new command that helps with troubleshooting
    CLI tool authentication to nodes by listing relevant environment information about the
    shared secret. The actual secret
    is not displayed for obvious security reasons.

    GitHub issue: rabbitmq/rabbitmq-cli#446

    rabbitmqct eval_file is a new command that evaluates Erlang code expressions from a local file
    on the target node:

    rabbitmqctl eval\_file /path/to/code\_snippet.escript
    

    GitHub issue: rabbitmq/rabbitmq-cli#438

    rabbitmqct eval now accepts code snippets from standard input:

    rabbitmqctl eval \<\<EOF io:format("~p~n", [rabbit:product\_info()]).
    
    rabbitmqctl eval \< code\_snippet.escript
    

    GitHub issue: rabbitmq/rabbitmq-cli#438

    rabbitmq-diagnostics resolve_hostname is a new command that resolves a hostname either locally
    or on the node, and returns the resolved IPv4 or IPv6 addresses.

    The command can help quickly detect hostname resolution irregularities on a node, including
    the effects of Erlang inetrc file settings.
    Hostname resolution issues can cause CLI tools, cluster formation and peer reconnection to
    not work as expected.

    Some examples:

    rabbitmq-diagnostics resolve\_hostname "google.com" --address-family ipv4 rabbitmq-diagnostics resolve\_hostname "google.com" --address-family ipv6 --offline
    

    GitHub issue: rabbitmq/rabbitmq-cli#431

    All CLI tools now provide an autocomplete [prefix] command that lists command completion
    options. It is intended to be used to implement autocompletion of command names in shells.

    GitHub issue: rabbitmq/rabbitmq-cli#439

    ๐Ÿ”Œ Management Plugin

    ๐Ÿ› Bug Fixes

    ๐Ÿ”Œ The plugin could send the authorization header as null in some cases before a successful login.

    Contributed by @furkhat.

    GitHub issue: rabbitmq/rabbitmq-management#833

    โœจ Enhancements

    ๐Ÿ™‹โ€โ™‚ The UI now uses more human-friendly information units when displaying client network traffic rate values.

    Contribute by @seadog007.

    GitHub issue: rabbitmq/rabbitmq-management#827

    ๐Ÿ”Œ Federation Plugin

    ๐Ÿ› Bug Fixes

    In environments where rabbitmq_federation.pgroup_name_cluster_id is not set or set to undefined,
    ๐Ÿ”— links will treat such values as a false (the default) instead of failing with an exception.

    GitHub issue: rabbitmq/rabbitmq-federation#109

    ๐Ÿ”Œ MQTT Plugin

    ๐Ÿ› Bug Fixes

    ๐Ÿ”Œ The plugin could fail to accept new client connections with an exception in some cases.

    GitHub issue: rabbitmq/rabbitmq-mqtt#235

    ๐Ÿ”Œ Web STOMP Plugin

    โœจ Enhancements

    ๐ŸŒ Certain Web Socket errors are now handled more gracefully.

    ๐ŸŒ GitHub issue: rabbitmq/rabbitmq-web-stomp#123

    ๐Ÿ”Œ Web MQTT Plugin

    โœจ Enhancements

    ๐ŸŒ Certain Web Socket errors are now handled more gracefully.

    ๐ŸŒ GitHub issue: rabbitmq/rabbitmq-web-mqtt#64

    ๐Ÿ”Œ AuthN/AuthZ Backend HTTP Plugin

    ๐Ÿ› Bug Fixes

    ๐Ÿ”ง Virtual host access checks failed in certain complex configurations.

    GitHub issue: rabbitmq/rabbitmq-auth-backend-http#100

    โฌ†๏ธ 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.6.tar.xz.

  • v3.8.6-rc.2

    July 29, 2020
  • v3.8.6-rc.1 Changes

    July 28, 2020

    RabbitMQ 3.8.6-rc.1

    ๐Ÿš€ RabbitMQ 3.8.6-rc.1 is a preview of a maintenance release.
    ๐Ÿ›  It focuses on bug fixes and usability improvements.

    RabbitMQ Adopts the Mozilla Public License 2.0

    ๐Ÿš€ Starting with this release, core RabbitMQ server and all tier 1 plugins
    are relicensed under the Mozilla Public License 2.0
    (previously used license: the Mozilla Public License 1.1).

    The permissiveness of the MPL 2.0 is largely the same as of the MPL 1.1.
    ๐Ÿ‘€ See the MPL 2.0 FAQ and
    ๐Ÿ™‹ MPL 2.0 Revision and Changes FAQ to learn more.

    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

    ๐Ÿ—„ Deprecations

    ๐Ÿš€ This release removed HiPE precompilation support. HiPE has been deprecated and
    mostly unmaintained since Erlang 22, and will be replaced with a JIT in Erlang 24
    in 2021.

    rabbitmqctl hipe\_compile
    

    and

    hipe\_compile = true
    

    are both retained for backwards compatibility but they won't have any effect.

    โฌ†๏ธ 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

    License Change

    RabbitMQ has been relicensed under the Mozilla Public License 2.0
    (previously used license: the Mozilla Public License 1.1).

    The permissiveness of the MPL 2.0 is largely the same as of the MPL 1.1.
    ๐Ÿ‘€ See the MPL 2.0 FAQ and
    ๐Ÿ™‹ MPL 2.0 Revision and Changes FAQ to learn more.

    ๐Ÿ—„ Deprecations

    โœ‚ Removed HiPE pre-compilation support.

    GitHub issue: rabbitmq/rabbitmq-server#2392

    ๐Ÿ› Bug Fixes

    ๐Ÿ”ง Definition import on node boot (via load_definitions configuration setting) is now performed
    ๐Ÿ”Œ after plugins are enabled.

    This resolves a long standing chicken-and-egg dependency problem that prevented definitions
    ๐Ÿ”Œ that depend on plugins being functional from being successfully imported during node boot.

    Some affected features include

    GitHub issue: rabbitmq/rabbitmq-server#2384

    Similarly, client connection listeners (both TCP and TLS-enabled) are now started after
    ๐Ÿ”Œ plugin activation. This makes certain configurations that use the trust store plugin
    behave as expected.

    GitHub issue: rabbitmq/rabbitmq-server#2405

    ๐Ÿ›  Environment variables prefixed with RABBITMQ_ were ignored when used in the rabbitmq-env.conf file,
    while their prefixless counterparts worked as expected.

    GitHub issue: rabbitmq/rabbitmq-common#401

    โœจ Enhancements

    ๐Ÿ“œ rabbitmq.conf config parser now accepts lines that only consist of whitespace.

    GitHub issue: rabbitmq/rabbitmq-server#2393

    CLI Tools

    ๐Ÿ—„ Deprecations

    ๐Ÿ—„ rabbitmqctl hipe_compile is now a no-op. HiPE support has been deprecated in Erlang 22
    ๐Ÿšš will be removed in Erlang 24.

    GitHub issue: rabbitmq/rabbitmq-cli#433

    ๐Ÿ”ง The use of the `environment variable to configure the [shared secret](https://www.rabbitmq.com/cli.html#erlang-cookie) is now deprecated. ๐Ÿ‘‰ Use the [local file](https://www.rabbitmq.com/cli.html#cookie-file-locations) option instead or, if the value absolutely must be provided on the command line, the--erlang-cookie [value]` switch.

    GitHub issue: rabbitmq/rabbitmq-cli#443

    ๐Ÿ› Bug Fixes

    rabbitmqctl export_definitions incorrectly serialised runtime parameter values.

    GitHub issue: rabbitmq/rabbitmq-cli#435

    CTL_ERL_ARGS environment variable was unintentionally ignored starting with version 3.8.4.

    GitHub issue: rabbitmq/rabbitmq-server#2394

    [command] --help and help [command] output had minor unintentional inconsistencies.

    GitHub issue: rabbitmq/rabbitmq-cli#437

    โœจ Enhancements

    rabbitmq-queues check_if_node_is_quorum_critical and rabbitmq-queues check_if_node_is_mirror_sync_critical checks
    have been adjusted. They now special case single node clusters as the check does not make much sense
    in those environments.

    rabbitmq-queues check_if_node_is_mirror_sync_critical now also excludes exclusive queues from
    consideration as they, even if matched by a policy that enables classic queue mirroring,
    would not actually be mirrored.

    GitHub issue: rabbitmq/rabbitmq-cli#432

    rabbitmq-diagnostics erlang_cookie_sources is a new command that helps with troubleshooting
    CLI tool authentication to nodes by listing relevant environment information about the
    shared secret. The actual secret
    is not displayed for obvious security reasons.

    GitHub issue: rabbitmq/rabbitmq-cli#446

    rabbitmqct eval_file is a new command that evaluates Erlang code expressions from a local file
    on the target node:

    rabbitmqctl eval\_file /path/to/code\_snippet.escript
    

    GitHub issue: rabbitmq/rabbitmq-cli#438

    rabbitmqct eval now accepts code snippets from standard input:

    rabbitmqctl eval \<\<EOF io:format("~p~n", [rabbit:product\_info()]).
    
    rabbitmqctl eval \< code\_snippet.escript
    

    GitHub issue: rabbitmq/rabbitmq-cli#438

    rabbitmq-diagnostics resolve_hostname is a new command that resolves a hostname either locally
    or on the node, and returns the resolved IPv4 or IPv6 addresses.

    The command can help quickly detect hostname resolution irregularities on a node, including
    the effects of Erlang inetrc file settings.
    Hostname resolution issues can cause CLI tools, cluster formation and peer reconnection to
    not work as expected.

    Some examples:

    rabbitmq-diagnostics resolve\_hostname "google.com" --address-family ipv4 rabbitmq-diagnostics resolve\_hostname "google.com" --address-family ipv6 --offline
    

    GitHub issue: rabbitmq/rabbitmq-cli#431

    All CLI tools now provide an autocomplete [prefix] command that lists command completion
    options. It is intended to be used to implement autocompletion of command names in shells.

    GitHub issue: rabbitmq/rabbitmq-cli#439

    ๐Ÿ”Œ Management Plugin

    ๐Ÿ› Bug Fixes

    ๐Ÿ”Œ The plugin could send the authorization header as null in some cases before a successful login.

    Contributed by @furkhat.

    GitHub issue: rabbitmq/rabbitmq-management#833

    โœจ Enhancements

    ๐Ÿ™‹โ€โ™‚ The UI now uses more human-friendly information units when displaying client network traffic rate values.

    Contribute by @seadog007.

    GitHub issue: rabbitmq/rabbitmq-management#827

    ๐Ÿ”Œ Federation Plugin

    ๐Ÿ› Bug Fixes

    In environments where rabbitmq_federation.pgroup_name_cluster_id is not set or set to undefined,
    ๐Ÿ”— links will treat such values as a false (the default) instead of failing with an exception.

    GitHub issue: rabbitmq/rabbitmq-federation#109

    ๐Ÿ”Œ MQTT Plugin

    ๐Ÿ› Bug Fixes

    ๐Ÿ”Œ The plugin could fail to accept new client connections with an exception in some cases.

    GitHub issue: rabbitmq/rabbitmq-mqtt#235

    ๐Ÿ”Œ Web STOMP Plugin

    โœจ Enhancements

    ๐ŸŒ Certain Web Socket errors are now handled more gracefully.

    ๐ŸŒ GitHub issue: rabbitmq/rabbitmq-web-stomp#123

    ๐Ÿ”Œ Web MQTT Plugin

    โœจ Enhancements

    ๐ŸŒ Certain Web Socket errors are now handled more gracefully.

    ๐ŸŒ GitHub issue: rabbitmq/rabbitmq-web-mqtt#64

    ๐Ÿ”Œ AuthN/AuthZ Backend HTTP Plugin

    ๐Ÿ› Bug Fixes

    ๐Ÿ”ง Virtual host access checks failed in certain complex configurations.

    GitHub issue: rabbitmq/rabbitmq-auth-backend-http#100

    โฌ†๏ธ 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.6.tar.xz.

  • v3.8.6-beta.1

    July 27, 2020
  • v3.7.28 Changes

    August 17, 2020

    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.