1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
|
## RabbitMQ 3.7.12
RabbitMQ `3.7.12` is a maintenance release. It focuses on bug fixes and
minor usability improvements. This release [**requires Erlang/OTP 20.3**](https://www.rabbitmq.com/which-erlang.html) or later.
### Erlang/OTP Compatibility Notes
Per the new Erlang version support policy in effect starting with January 2019,
this release [**no longer supports Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
Make sure a [supported Erlang version](https://www.rabbitmq.com/which-erlang.html) is used before upgrading.
[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories)
explains what package repositories and tools can be used to provision latest patch versions of
Erlang `20.3.x` and `21.x`.
### Compatibility Notes
#### Minimum Required Erlang Version
This release requires Erlang/OTP 20.3 or later.
#### `rabbitmqctl shutdown` Behavior with Remote Nodes
In earlier releases, when `rabbitmqctl shutdown` was used against a remote node, it would successfully
shut down the node but won't actually wait for its termination because the pid file path
reported by the remote node is not available locally. This is because `rabbitmqctl shutdown` was
meant to be used as a `rabbitmqctl stop` alternative that doesn't require the caller to know the
pid file path.
Starting with this version, `rabbitmqctl shutdown` will refuse to run against a remote node
by default. If the earlier behavior is desired and expected, it can be restored by passing `--no-wait`:
``` shell
# will refuse to run against a remote node in --wait mode as of 3.7.12
# and --wait is on by default
rabbitmqctl shutdown -n rabbit@hostname.different.from.local --longnames
# behaves the same way as in 3.7.0 through 3.7.11
rabbitmqctl shutdown -n rabbit@hostname.different.from.local --longnames --no-wait
```
#### `inet_dist_listen_min` and `inet_dist_listen_max` in New Style Configuration
`inet_dist_listen_min` and `inet_dist_listen_max` were **removed from new style configuration**.
They wouldn't have any effect due to how configuration translation is performed.
Use `advanced.config` or the `RABBITMQ_DIST_PORT` env variable to configure these settings:
``` erlang
[
{kernel, [
{inet_dist_listen_min, 33672},
{inet_dist_listen_max, 33672}
]},
{rabbit, [
%% ...
]}
].
```
Note that some runtime parameters, e.g. `net_ticktime`, can be set via new style configuration.
This change is specific to the distirbution port settings.
#### Upgrading to Erlang 21.x
When upgrading to this release **and upgrading Erlang to 21.x** 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**.
#### Upgrade Doc 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.
### Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
[RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
## Changes
### Core Server
#### Bug Fixes
* When a node was configured to allow for unlimited frame size, an empty message published
via HTTP API resulted in an infinite recursion loop in the parser.
GitHub issue: [rabbitmq/rabbitmq-common#299](https://github.com/rabbitmq/rabbitmq-common/issues/299)
* `inet_dist_listen_min` and `inet_dist_listen_max` were **removed from new style configuration**.
They wouldn't have any effect due to how configuration translation is performed.
Use `advanced.config` or the `RABBITMQ_DIST_PORT` env variable to configure these settings:
``` erlang
[
{kernel, [
{inet_dist_listen_min, 33672},
{inet_dist_listen_max, 33672}
]},
{rabbit, [
%% ...
]}
].
```
Note that some runtime parameters, e.g. `net_ticktime`, can be set via new style configuration.
This change is specific to the distirbution port settings.
Contributed by [Gabriele Santomaggio](https://github.com/Gsantomaggio).
GitHub issue: [rabbitmq/rabbitmq-server#1881](https://github.com/rabbitmq/rabbitmq-server/pull/1881)
### CLI Tools
#### Bug Fixes
* `rabbitmqctl` and other CLI tools could fail when used with nodes using long node names.
GitHub issue: [rabbitmq/rabbitmq-cli#311](https://github.com/rabbitmq/rabbitmq-cli/issues/311)
* `rabbitmqctl --help` now exits with exit code of 0. `rabbitmqctl` (no arguments) uses code
64 (`EX_USAGE`).
GitHub issue: [rabbitmq/rabbitmq-cli#307](https://github.com/rabbitmq/rabbitmq-cli/issues/307)
#### Enhancements
* `rabbitmqctl shutdown` now requires the user to opt in and provide `--no-wait`
to be used with remote nodes. There are no behavior changes when the command is invoked
against a locally running node. See also the compatibility note to this release.
GitHub issue: [rabbitmq/rabbitmq-cli#309](https://github.com/rabbitmq/rabbitmq-cli/pull/309)
### Management Plugin
#### Bug Fixes
* Large HTTP API request bodies (e.g. importing a large [definition file](https://www.rabbitmq.com/backup.html#rabbitmq-definitions))
were not guaranteed to be fully consumed before parsing.
GitHub issue: [rabbitmq/rabbitmq-management#657](https://github.com/rabbitmq/rabbitmq-management/issues/657)
* `management_db_cache_multiplier` configuration setting was ignored due to a typo.
Contributed by [Josh Soref](https://github.com/jsoref).
GitHub issue: [rabbitmq/rabbitmq-management#659](https://github.com/rabbitmq/rabbitmq-management/pull/659)
### MQTT Plugin
#### Enhancements
* When a retained message is published, its topic is now correctly translated
to use MQTT topic separators (a slash) regardless of the internal representation.
Contributed by [Ryan Sandbach](https://github.com/rsandbach).
GitHub issue: [rabbitmq/rabbitmq-mqtt#175](https://github.com/rabbitmq/rabbitmq-mqtt/issues/175)
* When a client sent a duplicate `CONNECT` frame (tried to "reauthenticate"), connection failed
[with a scary looking exception](https://groups.google.com/d/msg/rabbitmq-users/1MBdymMAZzw/HQLDwI_8GAAJ).
Now the frame is ignored (reauthentication is therefore still impossible) and a warning is logged
but the connection is kept open.
Kudos to Grigory Starinkin for confirming our original hypothesis and providing the steps
to reproduce.
GitHub issue: [rabbitmq/rabbitmq-mqtt#179](https://github.com/rabbitmq/rabbitmq-mqtt/issues/179).
#### Bug Fixes
* Clearer and shorter log messages when a socket write fails.
GitHub issue: [rabbitmq/rabbitmq-mqtt#178](https://github.com/rabbitmq/rabbitmq-mqtt/pull/178)
### LDAP Plugin
#### Enhancements
* The plugin now uses its own [logging sink](https://www.rabbitmq.com/logging.html#advanced-configuration), which makes it possible to direct
all LDAP logs to a separate file.
Contributed by [Yury Alioshinov](https://github.com/Haster2004).
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#105](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/105)
## Shovel Plugin
#### Bug Fixes
* Configurating a Shovel with a valid AMQP 1.0 destination could fail with an exception.
GitHub issue: [rabbitmq/rabbitmq-shovel#50](https://github.com/rabbitmq/rabbitmq-shovel/issues/50)
## 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.12.tar.gz`.
|