Skip to content

RabbitMQ 4.1.4

Latest
Compare
Choose a tag to compare
@michaelklishin michaelklishin released this 02 Sep 14:26
· 51 commits to v4.1.x since this release
6ae0246

RabbitMQ 4.1.4 is a maintenance release in the 4.1.x release series.

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

Minimum Supported Erlang Version

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 Server

Bug Fixes

  • default_password, ssl_options.password now can tell between a generated random password
    value and an encrypted value better.

    Encrypted values must be prefixed with encrypted:. All other values, including
    generated passwords that contain a colon (:), will be considered non-encrypted ones.

    GitHub issue: #14365

  • Import of definition files that contained topic exchange permissions failed.

    GitHub issue: #14409

Enhancements

  • When a configured authentication or authorization backend comes from a known
    plugin but the plugin is not enabled, the node will now refuse to start.

    Previously the node would boot but client connections would fail because
    of the missing backend modules.

    GitHub issues: #13783, #14408

  • Similarly to the number of queues and virtual hosts, it is now possible
    to configure a limit on the cluster-wide number of exchanges that applications
    can create:

    # Applications won't be able to decalre more than 200 exchanges
    # (including the protocol-standard pre-declared ones) in the cluster
    cluster_exchange_limit = 200

    The setting must be set to the same value on all cluster nodes.

    As with other limits, the goal is to introduce a guard against applications
    that leak resources.

    GitHub issue: #14339

  • In some environments, the use of load balancers is mandated and therefore
    Local Random exchanges cannot be used.

    A new setting, exchange_types.local_random.enabled, can be used to explicitly disable the local random exchange type,
    returning an error to the clients that try to declare such an exchange:

    # use in environments where the locality requirements of the local random exchange type cannot
    # be satisfied
    exchange_types.local_random.enabled = false

    GitHub issue: #14363

  • RABBITMQ_MAX_OPEN_FILES is a new environment variable supported by the rabbitmq-server
    startup script on Linux, macOS and BSD family operating systems.

    It does not replace the standard mechanisms of increasing the maximum allowed
    file handle limit for the node. However, it can be useful in environments where the
    soft (current) limit is meaningfully lower than the hard (maximum allowed per system configuration) limit, and the user can only control the soft limit.

    For example, this is the case in most hosted Kubernetes environments.

Stream Plugin

Bug Fixes

  • Stream client connections that authenticate using a JWT token (OAuth 2) have
    to periodically renew their JWT tokens. Should such an update fail,
    the RabbitMQ Stream Protocol connection will be immediately closed.

    In addition, stream connections now verify that the newly obtained JWT
    token still grants access to the virtual host the client is connected to.

    GitHub issues: #14403, #14406

  • If a Single Active Consumer could not leave its SAC group because the stream
    coordinator was not available, the operation will now be retried a few times
    before reporting a failure back to the client.

    GitHub issue: #14341

  • Advertised TLS hostname setting value was not passed on to the stream protocol
    metadata frame.

    GitHub issue: #14345

CLI TOols

Bug Fixes

  • rabbitmqctl cluster_status --formatter=json double converted the running_nodes
    field.

    GitHub issue: #14382

Shovel Plugin

Bug Fixes

  • rabbitmqctl shovel_status command now handles the presence of metrics.

    GitHub issue: #14298

  • AMQP 1.0 shovels now perform stricter validation on the src-delete-after values.
    They support a narrower set of values compared to their AMQP 0-9-1 counterparts
    but shovel definition validation did not account for that difference.

    GitHub issue: #14420

Dependency Changes

  • ra was upgraded to 2.16.13
  • cuttlefish was upgraded to 3.5.0

Source Code Archives

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