rabbitmq-server/release-notes/3.7.8.md

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

340 lines
12 KiB
Markdown
Raw Permalink Normal View History

## RabbitMQ 3.7.8
RabbitMQ `3.7.8` a maintenance release. It focuses on bug fixes and
further improves [Erlang/OTP 21](http://www.erlang.org/news/123) 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](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.0) upgrade and
compatibility notes if upgrading from an earlier release.
See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for general documentation on upgrades and
[RabbitMQ change log](https://www.rabbitmq.com/changelog.html) 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](https://github.com/rabbitmq/rabbitmq-server/pull/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](https://github.com/rabbitmq/rabbitmq-server/pull/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](https://github.com/rabbitmq/rabbitmq-server/issues/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](https://github.com/rabbitmq/rabbitmq-server/issues/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](https://github.com/rabbitmq/rabbitmq-server/pull/1689)
* A resource alarm triggered during boot could prevent node from starting.
GitHub issue: [rabbitmq/rabbitmq-server#1644](https://github.com/rabbitmq/rabbitmq-server/issues/1644)
* Environments with high queue or channel churn could run into an exception in local process group.
GitHub issue: [rabbitmq/rabbitmq-server#1699](https://github.com/rabbitmq/rabbitmq-server/issues/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](https://github.com/rabbitmq/rabbitmq-server/pull/1669)
* Syslog configuration parameters could be rejected by config validator.
GitHub issue: [rabbitmq/rabbitmq-server#1639](https://github.com/rabbitmq/rabbitmq-server/issues/1639)
* `rabbitmq-echopid.bat` now loads `rabbitmq-env.bat` correctly.
GitHub issue: [rabbitmq/rabbitmq-server#1642](https://github.com/rabbitmq/rabbitmq-server/issues/1642)
#### Enhancements
* Improved config file validation and loading. For example, `advanced.config` now can be used
without the main `rabbitmq.conf` config file.
GitHub issue: [rabbitmq/rabbitmq-server#1671](https://github.com/rabbitmq/rabbitmq-server/pull/1671)
* On Erlang/OTP 21 Syslog server now can be configured using a hostname (not just an IP address).
GitHub issue: [rabbitmq/rabbitmq-server#1658](https://github.com/rabbitmq/rabbitmq-server/pull/1658)
* `rabbitmqctl rename_cluster_node` documentation improvements.
GitHub issue: [rabbitmq/rabbitmq-server#1641](https://github.com/rabbitmq/rabbitmq-server/pull/1641)
### CLI Tools
#### Bug Fixes
* Policies were unintentionally excluded from `rabbitmqctl report` output.
Contributed by Ayanda Dube.
GitHub issue: [rabbitmq/rabbitmq-cli#256](https://github.com/rabbitmq/rabbitmq-cli/pull/256)
* Global parameters were unintentionally excluded from `rabbitmqctl report` output.
GitHub issue: [rabbitmq/rabbitmq-cli#258](https://github.com/rabbitmq/rabbitmq-cli/pull/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](https://github.com/rabbitmq/rabbitmq-management/issues/575), [rabbitmq/rabbitmq-management#591](https://github.com/rabbitmq/rabbitmq-management/pull/591)
* HTTP API connection endpoints returned a duplicate key, `node`.
GitHub issue: [rabbitmq/rabbitmq-management#601](https://github.com/rabbitmq/rabbitmq-management/issues/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](https://github.com/rabbitmq/rabbitmq-management/issues/609)
#### Enhancements
* Cowboy listener settings now can be configured using new style config file.
GitHub issue: [rabbitmq/rabbitmq-management#596](https://github.com/rabbitmq/rabbitmq-management/issues/596)
* Cowboy timeouts now can be configured.
GitHub issues: [rabbitmq/rabbitmq-management#594](https://github.com/rabbitmq/rabbitmq-management/issues/594)
* `rabbitmqadmin` now supports a new argument, `--request-timeout`.
GitHub issue: [rabbitmq/rabbitmq-management#593](https://github.com/rabbitmq/rabbitmq-management/issues/593)
* Switching sections will now scroll to the top of the newly rendered page.
GitHub issue: [rabbitmq/rabbitmq-management#590](https://github.com/rabbitmq/rabbitmq-management/pull/590)
### Consistent Hashing Exchange Plugin
#### Enhancements
* Message distribution uniformity has been significantly improved. [Jump Consistent Hash](https://arxiv.org/abs/1406.2294) is now used for
the hashing function.
GitHub issue: [rabbitmq/rabbitmq-consistent-hash-exchange#37](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/issues/37)
### STOMP Plugin
#### Bug Fixes
* Nodes experiencing very high connection churn could run out of Erlang processes.
GitHub issues: [rabbitmq/rabbitmq-stomp#125](https://github.com/rabbitmq/rabbitmq-stomp/pull/125), [rabbitmq/rabbitmq-server#1640](https://github.com/rabbitmq/rabbitmq-server/pull/1640)
### Web STOMP Plugin
#### Enhancements
* WebSocket endpoint path is now configurable.
GitHub issue: [rabbitmq/rabbitmq-web-stomp#86](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/86)
### MQTT Plugin
* Session presence flag was always set to `true` regardless of the state of client connection session.
GitHub issue: [rabbitmq/rabbitmq-mqtt#163](https://github.com/rabbitmq/rabbitmq-mqtt/issues/163)
### Web MQTT Plugin
#### Enhancements
* WebSocket endpoint path is now configurable.
Contributed by Thomas Sauzeau.
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#30](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/30)
### 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](https://github.com/rabbitmq/rabbitmq-shovel/pull/44)
#### Enhancements
* `sasl=plain` is now added to connection URIs if no other mechanism is specified explicitly
by the user.
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#10](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/10)
* TLS version for AMQP 1.0 endpoints now can be configured via a connection URI query parameter.
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#19](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/19)
* 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](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/107)
### Federation Plugin
#### Bug Fixes
* Improved OTP release handling compatibility.
Contributed by Ayanda Dube.
GitHub issue: [rabbitmq/rabbitmq-federation#78](https://github.com/rabbitmq/rabbitmq-federation/pull/78)
#### Enhancements
* Link initialization optimizations.
Contributed by Ayanda Dube.
GitHub issues: [rabbitmq/rabbitmq-federation#79](https://github.com/rabbitmq/rabbitmq-federation/pull/79), [rabbitmq/rabbitmq-federation#80](https://github.com/rabbitmq/rabbitmq-federation/pull/80)
* 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](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/107)
### Peer Discovery Etcd Plugin
#### Bug Fixes
* Node name is now correctly extracted from the keys returned by
etcd even when key prefix includes slashes.
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#14](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/14)
### Debian Package
#### Bug Fixes
* Package installation scripts will make sure that the `/etc/rabbitmq` directory is readable.
GitHub issue: [rabbitmq/rabbitmq-server-release#72](https://github.com/rabbitmq/rabbitmq-server-release/pull/72)
### RPM Package
#### Bug Fixes
* Package installation scripts will make sure that the `/etc/rabbitmq` directory is readable.
GitHub issue: [rabbitmq/rabbitmq-server-release#72](https://github.com/rabbitmq/rabbitmq-server-release/pull/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](https://github.com/rabbitmq/rabbitmq-server-release/issues/85)
### Event Exchange Plugin
#### Bug Fixes
* `amq.rabbitmq.event` exchange is now deleted when plugin is disabled.
GitHub issue: [rabbitmq/rabbitmq-event-exchange#33](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/33)
#### Enhancements
* The plugin now can be configured using new style config file:
``` ini
rabbitmq_event_exchange.vhost = audit
```
GitHub issue: [rabbitmq/rabbitmq-event-exchange#31](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/31)
### Tracing Plugin
#### Enhancements
* It is now possible to set up a tracer on any cluster node via management UI and HTTP API.
GitHub issue: [rabbitmq/rabbitmq-tracing#24](https://github.com/rabbitmq/rabbitmq-tracing/pull/24)
* Tracer connection credentials now can be specified via the management UI and HTTP API.
GitHub issue: [rabbitmq/rabbitmq-tracing#25](https://github.com/rabbitmq/rabbitmq-tracing/pull/25)
### AMQP 1.0 Erlang Client
#### Enhancements
* `sasl=plain` is now added to connection URIs if no other mechanism is specified explicitly
by the user.
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#10](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/10)
* `hostname` connection parameter will now be set to the value of the `address` parameter for improved
compatibility with AMQP 1.0 implementations (e.g. Azure ServiceBus) that expect it to be set.
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#1](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/1)
* TLS version now can be configured via a connection URI query parameter.
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#19](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/19)
### 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](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/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`.