Skip to content

RabbitMQ 3.8.3-beta.3

Pre-release
Pre-release

Choose a tag to compare

@pivotal-rabbitmq-ci pivotal-rabbitmq-ci released this 04 Feb 04:32

RabbitMQ 3.8.3-beta.3

RabbitMQ 3.8.3-beta.3 is a preview of a maintenance release.

Erlang/OTP Compatibility Notes

This release requires Erlang/OTP 21.3 or later.
22.x series is recommended.

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

Getting Help

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

Changes

Core Server

Bug Fixes

  • Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.

    Contributed by @tomyouyou.

    GitHub issue: rabbitmq/rabbitmq-server#2209

  • Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred,
    with an option to change the value or disable scheduled run entirely. More frequent binary heap GC runs seem
    unneccesary on Erlang 22.

    Contributed by Aleksander Nycz.

    GitHub issue: rabbitmq/rabbitmq-common#343

  • The node now can recover even if virtual host recovery terms file was corrupted.

    Contributed by @tomyouyou.

    GitHub issue: rabbitmq/rabbitmq-server#2195

  • If a quorum queue leader rebalancing operation timed out, CLI tools failed with an exception
    instead of a sensible internal API response.

    Contributed by Gabriele Santomaggio.

    GitHub issue: rabbitmq/rabbitmq-server#2214

  • Syslog client is now started even when Syslog logging is configured only for some log sinks.

    GitHub issue: rabbitmq/rabbitmq-server#2044

Enhancements

  • Quorum queue deletion operation no longer supports the "if unused" and "if empty" options.
    They are typically used for transient queues don't make much sense for quorum ones.

    GitHub issue: rabbitmq/rabbitmq-server#2211

  • Every cluster now features a persistent internal cluster ID that can be used by core features
    or plugins. Unlike the human-readable cluster name, the value cannot be overriden by the user.

    GitHub issue: rabbitmq/rabbitmq-server#2226

CLI Tools

Bug Fixes

  • rabbitmq-diagnostics status failed to display the results when executed against a node
    that had high VM watermark set as an absolute value (using vm_memory_high_watermark.absolute).

    GitHub issue: rabbitmq/rabbitmq-cli#395

Enhancements

  • RabbitMQ nodes will now gracefully shutdown when receiving a SIGTERM or SIGQUIT signals.
    Previously the runtime would invoke a default handler that terminates the VM giving
    RabbitMQ no chance to execute its shutdown steps.

    In addition, SIGUSER1 and SIGUSR2 signals are ignored.

    GitHub issue: rabbitmq/rabbitmq-server#2222

  • New health checks that can be used to determine if it's a good moment to shut down a node for an upgrade.

    # Exits with a non-zero code if target node hosts master replica of at least one queue
    # that has out-of-sync mirror.
    rabbitmq-diagnostics check_if_node_is_mirror_sync_critical
    
    # Exits with a non-zero code if one or more quorum queues will lose online quorum
    # should target node be shut down
    rabbitmq-diagnostics check_if_node_is_quorum_critical

    GitHub issue: rabbitmq/rabbitmq-cli#389

  • Some proxy protocol errors are now logged at debug level. This reduces log noise in environments
    where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending
    any data.

    GitHub issue: rabbitmq/rabbitmq-server#2204

Management and Management Agent Plugins

Bug Fixes

Enhancements

Kubernetes Peer Discovery Plugin

Enhancements

The plugin will now notify Kubernetes API of node startup and peer stop/unavailability events.

Contributed by Gabriele Santomaggio.

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

Federation Plugin

Enhancements

  • "Command" operations such as binding propagation now use a separate channel for all links,
    preventing latency spikes for asynchronous operations (such as message publishing)
    (a head-of-line blocking problem).

    Contributed by Grigory Starinkin.

    GitHub issue: rabbitmq/rabbitmq-federation#97

Auth Backend OAuth 2 Plugin

Trust Store 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.3.tar.xz.