github rabbitmq/rabbitmq-server v3.9.21
RabbitMQ 3.9.21

latest releases: v3.12.14, v3.13.2, v3.13.2-rc.1...
22 months ago

RabbitMQ 3.9.21 is a maintenance release in the 3.9.x release series.

Please refer to the Upgrading to 3.9 section from v3.9.0 release notes if upgrading from a version prior to 3.9.0.

This release requires at least Erlang 23.2, and supports Erlang 24. RabbitMQ and Erlang/OTP Compatibility Matrix has more details on Erlang version requirements for RabbitMQ.

Changes Worth Mentioning

Release notes can be found on GitHub at rabbitmq-server/release-notes.

Core Server

Enhancements

  • Optimization: internal message GUID is no longer generated for quorum queues and streams, as they
    are specific to classic queues.

    GitHub issue: #5005

  • Two more AMQP 1.0 connection lifecycle events are now logged.

    GitHub issue: #4984

  • TLS configuration for inter-node stream replication connections now can
    use function references and definitions.

    GitHub issue: #4991

  • Stream protocol connection logging is now less verbose.

    GitHub issue: #5039

  • Max stream segment size is now limited to 3 GiB to avoid a potential stream position overflow.

    GitHub issue: #5035

  • Logging messages that use microseconds now use "us" for the SI symbol to be compatible with more
    tools.

    GitHub issue: #5127

Bug Fixes

  • Channels on connections to mixed clusters that had 3.8 nodes in them could run into
    an exception.

    GitHub issue: #5141

  • Inter-node cluster link statistics did not have any data when TLS was enabled for them.

    GitHub issue: #4981

  • Quorum queues now correctly propagate errors when a basic.get (polling consumption) operation hits
    a timeout.

    Contributed by Ayanda @Ayanda-D Dube.

    GitHub issue: #5109

  • Stream consumer that used AMQP 0-9-1 instead of a stream protocol client, and disconnected,
    leaked a file handle.

    GitHub issue: #5088

  • Max frame size and client heartbeat parameters for RabbitMQ stream clients were not correctly
    set when taken from rabbitmq.conf.

    GitHub issue: #5136

  • Removed a duplicate exchange decorator set operation.

    Contributed by Péter @gomoripeti Gömöri.

    GitHub issue: #4964

Consistent Hashing Exchange Plugin

Bug Fixes

  • Node restarts could result in a hashing ring inconsistency.

    This required a potentially breaking change: this exchange type
    now only allows for one binding between an exchange and a queue (or another exchange).
    All subsequent binding operations between them will be ignored, so "first write wins".

    This is a natural topology for this plugin, and enforcing it helps avoid a set of
    potential issues with concurrent node restarts and client operations that affect
    consistent hash ring state.

    GitHub issue: #3386

Consul Peer Discovery Plugin

Enhancements

  • Consul peer discovery now supports client-side TLS options, much like its Kubernetes and etcd peers.

    cluster_formation.consul.scheme = https
    # this assumes that Consul uses port 8501 for HTTPS clients
    cluster_formation.consul.port = 8501
    
    cluster_formation.consul.ssl_options.cacertfile = /path/to/consul/generated/ca_certificate.pem
    cluster_formation.consul.ssl_options.certfile = /path/to/client/certificate.pem
    cluster_formation.consul.ssl_options.keyfile = /path/to/client/client_key.pem

    GitHub issue: #5116

Source Code Archives

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

Don't miss a new rabbitmq-server release

NewReleases is sending notifications on new releases.