252 lines
9.8 KiB
Markdown
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)
|