Skip to content

RabbitMQ 4.0.3

Latest
Compare
Choose a tag to compare
@rabbitmq-ci rabbitmq-ci released this 28 Oct 19:50
· 1186 commits to main since this release
9516521

RabbitMQ 4.0.3 is a maintenance release in the 4.0.x release series.

Starting June 1st, 2024, community support for this series will only be provided to regularly contributing users and those
who hold a valid commercial support license.

It is strongly recommended that you read 4.0 release notes
in detail if upgrading from a version prior to 4.0.0.

Minimum Supported Erlang Version

This release requires Erlang 26 and supports Erlang versions up to 26.2.x.
RabbitMQ and Erlang/OTP Compatibility Matrix has more details on
Erlang version requirements for RabbitMQ.

Nodes will fail to start on older Erlang releases.

Changes Worth Mentioning

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

Core Broker

Bug Fixes

  • Classic queues could run into an exception.

    Kudos to @netrmqdev for helping the core team reproduce this rare behavior.

    GitHub issue: #12367

  • Continuous membership reconciliation of quorum queues did not propagate a timeout error.

    Contributed by @SimonUnge.

    GitHub issue: #12578

  • Quorum queues could truncate the log too aggresively (by one entry too many).

    GitHub issue: #12358

  • Quorum queues failed to requeue a message with a specific workload where consumers
    requeued a delivery and then immediately cancelled themselves.

    GitHub issue: #12442

  • When a quorum queue was forced to shrink, it did not stop the replicas on the nodes that were
    removed from the list of replicas. In many cases this had no visible effects because the node
    in question is stopped or even removed entirely from the cluster.

    Contributed by @Ayanda-D.

    GitHub issue: #12475

  • AMQP 1.0 implementation now complies with the Anonymous Terminus extension (section 2.2.2 Routing Errors).

    GitHub issue: #12397

  • For AMQP 1.0 clients, correct (compatible, sensible) combinations of the settle mode and a transfer's settled field
    are now enforced.

    GitHub issue: #12371

  • If an AMQP 1.0 client used a reserved annotation key, the connection was closed
    with an exception.

    GitHub issue: #12527

  • Messages with arrays in annotations published by AMQP 1.0 publishers and consumed by AMQP 0-9-1 consumers
    lead to an exception.

    GitHub issue: #12572

  • Quorum queues with a configured delivery limit could run into an exception.

    GitHub issue: #12405

  • Publisher ID length is now validated to not exceed its internal limit of 255 bytes.

    GitHub issue: #12499

Enhancements

  • Initial support for Erlang/OTP 27, starting with 27.1.2.

    Releases prior to 27.1.2 are affected
    by several bugs that can seriously affect RabbitMQ users, in particular those using TLS for client connections.

    RPM and Debian packages will reflect Erlang 27 support in their metadata starting with a later patch release, 4.0.4.

    GitHub issue: #12208 (and many others, including on the Erlang/OTP side)

  • Delivery requeue history is now better tracked using AMQP 1.0's Modified Outcome feature.

    GitHub issue: #12506

  • Nodes now avoid logging potentially confusing messages about schema data store operations when
    querying for traces of any deprecated (or removed) features in the system.

    GitHub issue: #12348

Prometheus Plugin

Bug Fixes

  • rabbitmq_queue_exchange_messages_published_total included a duplicate vhost label.

    Contributed by @LoisSotoLopez.

    GitHub issue: #12347

Management Plugin

Bug Fixes

  • GET /api/queues/{vhost} and similar endpoints ran into an exception when a sorting parameter was provided and one of the
    queues in the result set was a quorum one.

    GitHub issue: #12374

Dependency Changes

  • CSV was upgraded to 3.2.1

Source Code Archives

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