rabbitmq-server/release-notes/3.7.9.md

252 lines
9.8 KiB
Markdown

## RabbitMQ 3.7.9
RabbitMQ `3.7.9` is a maintenance release. It focuses on bug fixes and minor usability improvements.
### Compatibility Notes
CLI tools in this release will often produce an extra line of output, as they did in `3.6.x` releases,
when `-q` is not provided. Tools that parse CLI command output should use `-q --no-table-headers` to suppress all additional output meant for interactive use or
avoid parsing output entirely (e.g. use the HTTP API).
#### 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
* Queue deletion loaded bindings in an inefficient way.
GitHub issue: [rabbitmq/rabbitmq-server#1690](https://github.com/rabbitmq/rabbitmq-server/issues/1690)
* Heartbeat monitor now correctly sends heartbeats at half the negotiated timeout interval.
It previously could fail to do so because it considered its own traffic to be on-the-wire
activity from the peer.
GitHub issue: [rabbitmq/rabbitmq-common#278](https://github.com/rabbitmq/rabbitmq-common/pull/278)
* Nodes were using a [client] Syslog UDP socket even when [logging to Syslog](https://www.rabbitmq.com/logging.html#logging-to-syslog) was not enabled.
GitHub issue: [rabbitmq/rabbitmq-server#1718](https://github.com/rabbitmq/rabbitmq-server/issues/1718)
* `ERL_EPMD_PORT` was ignored when configured in `rabbitmq-env.conf`.
GitHub issue: [rabbitmq/rabbitmq-server#1709](https://github.com/rabbitmq/rabbitmq-server/issues/1709)
* Proxy Protocol dependency is now compatible with Erlang/OTP 21.
GitHub issue: [rabbitmq/rabbitmq-common#269](https://github.com/rabbitmq/rabbitmq-common/issues/269)
#### Enhancements
* It is now possible to configure [cipher suites](https://www.rabbitmq.com/ssl.html#configuring-ciphers) using new style config format.
GitHub issue: [rabbitmq/rabbitmq-server#1712](https://github.com/rabbitmq/rabbitmq-server/issues/1712)
* When a listener fails to start (bind to a server socket), error messages involve less context and are
easier to read.
GitHub issue: [rabbitmq/rabbitmq-server#1711](https://github.com/rabbitmq/rabbitmq-server/issues/1711)
* Improved error reporting for when `erl` or `erl.exe` are no in node's `PATH`.
GitHub issue: [rabbitmq/rabbitmq-common#275](https://github.com/rabbitmq/rabbitmq-common/pull/275)
* 10 TLS connection acceptors are now used by default.
GitHub issue: [rabbitmq/rabbitmq-server#1729](https://github.com/rabbitmq/rabbitmq-server/issues/1729)
### CLI Tools
#### Bug Fixes
* `rabbitmqctl list_*` commands did not include table column headers.
GitHub issue: [rabbitmq/rabbitmq-cli#264](https://github.com/rabbitmq/rabbitmq-cli/issues/264)
* If `RABBITMQ_NODENAME` is configured, CLI tools will use its hostname part when generating its own
Erlang node name.
GitHub issue: [rabbitmq/rabbitmq-cli#270](https://github.com/rabbitmq/rabbitmq-cli/issues/270)
* On Windows CLI tool batch scripts exited with a 0 exit code when it failed to connect to the node.
Contributed by Artem Zinenko.
GitHub issue: [rabbitmq/rabbitmq-server#1735](https://github.com/rabbitmq/rabbitmq-server/issues/1735).
#### Enhancements
* `rabbitmqctl stop` now supports `--idempotent` that makes the command exit with a success when
target node is not running.
GitHub issue: [rabbitmq/rabbitmq-cli#272](https://github.com/rabbitmq/rabbitmq-cli/pull/272)
* `rabbitmqctl add_vhost` is now idempotent (no longer returns an error when vhost already exists)
GitHub issue: [rabbitmq/rabbitmq-cli#260](https://github.com/rabbitmq/rabbitmq-cli/issues/260)
### Management and Management Agent Plugins
#### Bug Fixes
* Logo link now works better with a non-blank API endpoint prefix.
GitHub issue: [rabbitmq/rabbitmq-management#604](https://github.com/rabbitmq/rabbitmq-management/issues/604)
* Decimal headers and argument values are now serialised to JSON correctly.
GitHub issue: [rabbitmq/rabbitmq-management-agent#71](https://github.com/rabbitmq/rabbitmq-management-agent/pull/71)
#### Enhancements
* It is now possible to configure both HTTPS and HTTP listeners using new syntax that's consistent with
Web STOMP and Web MQTT plugins:
``` ini
management.tcp.port = 15672
management.ssl.port = 15671
management.ssl.cacertfile = /path/to/ca_certificate.pem
management.ssl.certfile = /path/to/server_certificate.pem
management.ssl.keyfile = /path/to/server_key.pem
```
GitHub issue: [rabbitmq/rabbitmq-management#563](https://github.com/rabbitmq/rabbitmq-management/issues/563)
* It is now possible to configure `Content-Security-Policy` (CSP) header set by the API.
GitHub issue: [rabbitmq/rabbitmq-management#623](https://github.com/rabbitmq/rabbitmq-management/issues/623)
* It is now possible to configure `Strict-Transport-Policy` (HSTS) header set by the API.
GitHub issue: [rabbitmq/rabbitmq-management#624](https://github.com/rabbitmq/rabbitmq-management/issues/624)
* `GET /api/nodes/{node}` endpoint aggregated data for other cluster nodes only to discard it later.
GitHub issue: [rabbitmq/rabbitmq-management#615](https://github.com/rabbitmq/rabbitmq-management/issues/615)
* When `Handle.exe` is used and returns no file handle information in its output, a warning will be logged.
GitHub issue: [rabbitmq/rabbitmq-management-agent#67](https://github.com/rabbitmq/rabbitmq-management-agent/issues/67)
### LDAP Plugin
#### Enhancements
* String matching queries now support multi-value results.
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#100](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/100)
* `ad_domain` and `ad_user` are new variables available in LDAP plugin queries. They are extracted from the username
when it's in `Domain\User` format, which is typically specific to ActiveDirectory.
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#98](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/98)
* Search queries that return referrals will result in an error instead of an exception.
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#97](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/97)
### Web STOMP Plugin
#### Enhancements
* Advanced WebSocket options now can be configured. Compression is enabled by default.
Compression won't be used with clients that do not support it.
GitHub issues: [rabbitmq/rabbitmq-web-stomp#89](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/89), [rabbitmq/rabbitmq-web-stomp#90](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/90)
### Web MQTT Plugin
#### Bug Fixes
* WebSocket `PING` frames are now ignored instead of being propagated to MQTT frame handler.
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#32](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/32)
#### Enhancements
* Advanced WebSocket options now can be configured. Compression is enabled by default.
Compression won't be used with clients that do not support it.
GitHub issues: [rabbitmq/rabbitmq-web-mqtt#34](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/34)
### AWS Peer Discovery Plugin
#### Bug Fixes
* EC2 API endpoint requests used an unreasonably low timeout (100 ms). The new value
is 10 seconds.
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-aws#24](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/24)
### Consul Peer Discovery Plugin
#### Bug Fixes
* It wasn't possible to specify Consul service tags via new style config format.
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#18](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/18)
* It wasn't possible to configure lock key prefix via new style config format.
GitHub issues: [rabbitmq/rabbitmq-peer-discovery-consul#16](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/16)
#### Enhancements
* Lock acquisition timeout now can be configured using `cluster_formation.consul.lock_timeout` as well as `cluster_formation.consul.lock_wait_time` (an alias),
to be consistent with the Etcd implementation.
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#20](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/pull/20)
### Etcd Peer Discovery Plugin
#### Enhancements
* Lock acquisition timeout now can be configured using `cluster_formation.etcd.lock_timeout` as well as `cluster_formation.etcd.lock_wait_time` (an alias),
to be consistent with the Consul implementation.
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#16](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/pull/16)
### Event Exchange Plugin
#### Enhancements
* Throughput optimizations reduce probability of high memory consumption by `rabbit_event` processes due to
event backlog accumulation.
GitHub issue: [rabbitmq/rabbitmq-server#1722](https://github.com/rabbitmq/rabbitmq-server/issues/1722)
### RPM Package
#### Bug Fixes
* Post-installation script renamed `rabbitmq.conf` to `rabbitmq-env.conf`. A long time ago `rabbitmq.conf` was used to configure
environment variables (like `rabbitmq-env.conf` today) and old post-installation steps were not removed when `rabbitmq.conf`
was re-adopted for new style config files.
GitHub issue: [rabbitmq/rabbitmq-server-release#87](https://github.com/rabbitmq/rabbitmq-server-release/issues/87)