@michaelklishin michaelklishin released this Sep 20, 2018 · 346 commits to master since this release

Assets 40

RabbitMQ 3.7.8

RabbitMQ 3.7.8 a maintenance release. It focuses on bug fixes and
further improves Erlang/OTP 21 compatibility.

Compatibility Notes

This release has no known incompatibilities with earlier 3.7.x releases.

Upgrading to Erlang 21.0

When upgrading to this release and upgrading Erlang to 21.0 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, RabbitMQ must be upgraded before Erlang.

Documentation Guides and Change Log

See 3.7.0 release notes upgrade and
compatibility notes 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.

Changes

Core Server

Bug Fixes

  • Virtual host (specifically binding) recovery has been optimized.

    GitHub issue: rabbitmq/rabbitmq-server#1650

  • A binding removal optimization was reverted because it could result in custom exchange type state not cleaned up
    as plugin authors intended.

    GitHub issue: rabbitmq/rabbitmq-server#1691

  • A queue sync operation now can be cancelled when a resource alarm is in effect on the receiving node.

    GitHub issue: rabbitmq/rabbitmq-server#1636

  • Inter-node communication port (a.k.a. distribution port) unintentionally used an excessively large
    buffer size (1.2 GB instead of 128 MB). Kudos to Chris Friesen for noticing and reporting this.

    GitHub issue: rabbitmq/rabbitmq-server#1659

  • More idempotent binding removal.

    When transactions that removed bindings were rolled back and retried, the code
    that performed the deletion could fail with a misleading assertion failure, {error, not_found}.

    GitHub issue: rabbitmq/rabbitmq-server#1689

  • A resource alarm triggered during boot could prevent node from starting.

    GitHub issue: rabbitmq/rabbitmq-server#1644

  • Environments with high queue or channel churn could run into an exception in local process group.

    GitHub issue: rabbitmq/rabbitmq-server#1699

  • Priority queues no longer fail with an exception when used together with other rabbit_backing_queue
    behaviour implementations.

    Contributed by Matteo Cafasso.

    GitHub issue: rabbitmq/rabbitmq-server#1669

  • Syslog configuration parameters could be rejected by config validator.

    GitHub issue: rabbitmq/rabbitmq-server#1639

  • rabbitmq-echopid.bat now loads rabbitmq-env.bat correctly.

    GitHub issue: rabbitmq/rabbitmq-server#1642

Enhancements

CLI Tools

Bug Fixes

  • Policies were unintentionally excluded from rabbitmqctl report output.

    Contributed by Ayanda Dube.

    GitHub issue: rabbitmq/rabbitmq-cli#256

  • Global parameters were unintentionally excluded from rabbitmqctl report output.

    GitHub issue: rabbitmq/rabbitmq-cli#258

Management Plugin

Bug Fixes

  • Virtual host imported from definitions or created via HTTP API will explicitly await for the vhost to initialise
    on all cluster nodes. This change was previously scheduled for 3.7.6 but was only partially applied (didn't have any effect on HTTP API clients).

    GitHub issues: rabbitmq/rabbitmq-management#575, rabbitmq/rabbitmq-management#591

  • HTTP API connection endpoints returned a duplicate key, node.

    GitHub issue: rabbitmq/rabbitmq-management#601

  • Response compression wasn't enabled by default for compatible clients.

  • Failed login error message now clears automatically after successful login.

    GitHub issue: rabbitmq/rabbitmq-management#609

Enhancements

Consistent Hashing Exchange Plugin

Enhancements

  • Message distribution uniformity has been significantly improved. Jump Consistent Hash is now used for
    the hashing function.

GitHub issue: rabbitmq/rabbitmq-consistent-hash-exchange#37

STOMP Plugin

Bug Fixes

Web STOMP Plugin

Enhancements

MQTT Plugin

  • Session presence flag was always set to true regardless of the state of client connection session.

    GitHub issue: rabbitmq/rabbitmq-mqtt#163

Web MQTT Plugin

Enhancements

Shovel Plugin

Bug Fixes

  • The plugin could try to try to forward messages consumed from the source before receiving
    credit from the AMQP 1.0 destination.

    GitHub issue: rabbitmq/rabbitmq-shovel#44

Enhancements

Federation Plugin

Bug Fixes

Enhancements

Peer Discovery Etcd Plugin

Bug Fixes

Debian Package

Bug Fixes

RPM Package

Bug Fixes

  • Package installation scripts will make sure that the /etc/rabbitmq directory is readable.

    GitHub issue: rabbitmq/rabbitmq-server-release#72

  • If rabbitmq-plugins is invoked before first server start, Erlang cookie permissions will
    be correctly set to those of the RabbitMQ user and group (currently rabbitmq).

    GitHub issue: rabbitmq/rabbitmq-server-release#85

Event Exchange Plugin

Bug Fixes

Enhancements

  • The plugin now can be configured using new style config file:
rabbitmq_event_exchange.vhost = audit   

GitHub issue: rabbitmq/rabbitmq-event-exchange#31

Tracing Plugin

Enhancements

AMQP 1.0 Erlang Client

Enhancements

AMQP 0-9-1 Erlang Client

Enhancements

  • Specifying a port without a hostname in connection URI is now considered
    to be an unsupported combination and will throw an error.

    GitHub issue: rabbitmq/rabbitmq-erlang-client#107

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-3.7.8.tar.gz.