File: 3.8.6.md

package info (click to toggle)
rabbitmq-server 4.0.5-6
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 37,948 kB
  • sloc: erlang: 257,835; javascript: 22,466; sh: 2,796; makefile: 2,517; python: 1,966; xml: 646; cs: 335; java: 244; ruby: 212; php: 100; perl: 63; awk: 13
file content (306 lines) | stat: -rw-r--r-- 12,087 bytes parent folder | download | duplicates (2)
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
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
## RabbitMQ 3.8.6

RabbitMQ `3.8.6` is a maintenance release.
It focuses on bug fixes and usability improvements.

### RabbitMQ Adopts the Mozilla Public License 2.0

Starting with this release, core RabbitMQ server and all [tier 1 plugins](https://www.rabbitmq.com/plugins.html#plugin-tiers)
are [relicensed](https://github.com/rabbitmq/rabbitmq-server/issues/2372) under the [Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/)
(previously used license: the Mozilla Public License 1.1).

The permissiveness of the MPL 2.0 is largely the same as of the MPL 1.1.
See the [MPL 2.0 FAQ](https://www.mozilla.org/en-US/MPL/2.0/FAQ/) and
[MPL 2.0 Revision and Changes FAQ](https://www.mozilla.org/en-US/MPL/2.0/Revision-FAQ/) to learn more.

### Erlang 23 Compatibility

This release is [compatible](https://groups.google.com/forum/#!topic/rabbitmq-users/wlPIWz3UYHQ) with [Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).

### Erlang/OTP Compatibility Notes

This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
`22.3` or `23.0` releases are recommended.

[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 `22.3.x`.


## Upgrade and Compatibility Notes

### Deprecations

This release removed HiPE precompilation support. HiPE has been deprecated and
mostly unmaintained since Erlang 22, and will be replaced with a JIT [in Erlang 24](http://erlang.org/pipermail/erlang-questions/2020-June/099645.html)
in 2021.

``` shell
rabbitmqctl hipe_compile
```

and

``` ini
hipe_compile = true
```

are both retained for backwards compatibility but they won't have any effect.


### Upgrade Doc Guides and Change Log

See [3.8.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.0) upgrade and
compatibility notes first 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.

### Upgrading to Erlang 21.x or Later Versions

When upgrading to this release from `3.7.6` or an older version, extra care has to be taken.

Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ **must be upgraded at the same time as Erlang**.

Alternatively the node can be upgraded to `3.7.18` first, then Erlang 22.x or 23.x, then RabbitMQ to most recent
3.8.x release.

### 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 Worth Mentioning

### Core Server

#### License Change

RabbitMQ has been [relicensed](https://github.com/rabbitmq/rabbitmq-server/issues/2372) under the [Mozilla Public License 2.0](https://www.mozilla.org/en-US/MPL/2.0/)
(previously used license: the Mozilla Public License 1.1).

The permissiveness of the MPL 2.0 is largely the same as of the MPL 1.1.
See the [MPL 2.0 FAQ](https://www.mozilla.org/en-US/MPL/2.0/FAQ/) and
[MPL 2.0 Revision and Changes FAQ](https://www.mozilla.org/en-US/MPL/2.0/Revision-FAQ/) to learn more.

#### Deprecations

 * Removed HiPE pre-compilation support.

   GitHub issue: [rabbitmq/rabbitmq-server#2392](https://github.com/rabbitmq/rabbitmq-server/pull/2392)

#### Bug Fixes

 * Definition import on node boot (via the **built-in `load_definitions` configuration setting**) is now performed
   after plugins are enabled.

   This resolves a long-standing chicken-and-egg dependency problem that prevented definitions
   that depend on plugins being functional from being successfully imported during node boot.

   Note that definition import via the management plugin (`management.load_definitions`) is still
   performed during management plugin activation time and therefore **can not offer any guarantees**
   as some plugins may be enabled after the management one.

   Some affected features include

   * [federation upstreams](https://www.rabbitmq.com/federation.html#getting-started)
   * [dynamic shovels](https://www.rabbitmq.com/shovel-dynamic.html)
   * exchanges of types provided by plugins such as [rabbitmq-consistent-hash-exchange](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange)

   GitHub issue: [rabbitmq/rabbitmq-server#2384](https://github.com/rabbitmq/rabbitmq-server/issues/2384)

 * Similarly, client connection listeners (both TCP and TLS-enabled) are now started after
   plugin activation. This makes certain configurations that use the trust store plugin
   behave as expected.

   GitHub issue: [rabbitmq/rabbitmq-server#2405](https://github.com/rabbitmq/rabbitmq-server/issues/2405)

 * Environment variables prefixed with `RABBITMQ_` were ignored when used in the [`rabbitmq-env.conf` file](),
   while their prefixless counterparts worked as expected.

   GitHub issue: [rabbitmq/rabbitmq-common#401](https://github.com/rabbitmq/rabbitmq-common/issues/401)

#### Enhancements

 * `rabbitmq.conf` config parser now accepts lines that only consist of whitespace.

   GitHub issue: [rabbitmq/rabbitmq-server#2393](https://github.com/rabbitmq/rabbitmq-server/pull/2393)


### CLI Tools

#### Deprecations

 * `rabbitmqctl hipe_compile` is now a no-op. HiPE support has been deprecated in Erlang 22
   [will be removed in Erlang 24](http://erlang.org/pipermail/erlang-questions/2020-June/099645.html).

   GitHub issue: [rabbitmq/rabbitmq-cli#433](https://github.com/rabbitmq/rabbitmq-cli/pull/433)

 * The use of the `` environment variable to configure the [shared secret](https://www.rabbitmq.com/cli.html#erlang-cookie) is now deprecated.
   Use the [local file](https://www.rabbitmq.com/cli.html#cookie-file-locations) option instead or, if the value absolutely must be provided on the command line,
   the `--erlang-cookie [value]` switch.

   GitHub issue: [rabbitmq/rabbitmq-cli#443](https://github.com/rabbitmq/rabbitmq-cli/issues/443)

#### Bug Fixes

 * `rabbitmqctl export_definitions` incorrectly serialised runtime parameter values.

   GitHub issue: [rabbitmq/rabbitmq-cli#435](https://github.com/rabbitmq/rabbitmq-cli/issues/435)

 * `CTL_ERL_ARGS` environment variable was unintentionally ignored starting with version `3.8.4`.

   GitHub issue: [rabbitmq/rabbitmq-server#2394](https://github.com/rabbitmq/rabbitmq-server/issues/2394)

 * `[command] --help` and `help [command]` output had minor unintentional inconsistencies.

    GitHub issue: [rabbitmq/rabbitmq-cli#437](https://github.com/rabbitmq/rabbitmq-cli/pull/437)

#### Enhancements

 * `rabbitmq-queues check_if_node_is_quorum_critical` and `rabbitmq-queues check_if_node_is_mirror_sync_critical` checks
    have been adjusted. They now special case single node clusters as the check does not make much sense
    in those environments.

    `rabbitmq-queues check_if_node_is_mirror_sync_critical` now also excludes exclusive queues from
    consideration as they, even if matched by a policy that enables classic queue mirroring,
    would not actually be mirrored.

   GitHub issue: [rabbitmq/rabbitmq-cli#432](https://github.com/rabbitmq/rabbitmq-cli/issues/432)

 * `rabbitmq-diagnostics status` now includes the total amount of memory used by the node in its
   regular output. It was previously only available when `--formatter=json` switch was used.

   GitHub issue: [rabbitmq/rabbitmq-cli#449](https://github.com/rabbitmq/rabbitmq-cli/pull/449)

 * `rabbitmq-diagnostics erlang_cookie_sources` is a new command that helps with troubleshooting
   CLI tool authentication to nodes by listing relevant environment information about the
   [shared secret](https://www.rabbitmq.com/cli.html#erlang-cookie). The actual secret
   **is not displayed** for obvious security reasons.

   GitHub issue: [rabbitmq/rabbitmq-cli#446](https://github.com/rabbitmq/rabbitmq-cli/pull/446)

* `rabbitmqct eval_file` is a new command that evaluates Erlang code expressions from a local file
   on the target node:

   ``` shell
   rabbitmqctl eval_file /path/to/code_snippet.escript
   ```

   GitHub issue: [rabbitmq/rabbitmq-cli#438](https://github.com/rabbitmq/rabbitmq-cli/issues/438)

 * `rabbitmqct eval` now accepts code snippets from standard input:

   ``` shell
   rabbitmqctl eval <<EOF
    io:format("~p~n", [
        rabbit:product_info()
    ]).
   ```

   ``` shell
   rabbitmqctl eval < code_snippet.escript
   ```

   GitHub issue: [rabbitmq/rabbitmq-cli#438](https://github.com/rabbitmq/rabbitmq-cli/issues/438)

 * `rabbitmq-diagnostics resolve_hostname` is a new command that resolves a hostname either locally
   or on the node, and returns the resolved IPv4 or IPv6 addresses.

   The command can help quickly detect hostname resolution irregularities on a node, including
   the effects of [Erlang inetrc file](https://erlang.org/doc/apps/erts/inet_cfg.html) settings.
   Hostname resolution issues can cause CLI tools, cluster formation and peer reconnection to
   not work as expected.

   Some examples:

   ``` shell
   rabbitmq-diagnostics resolve_hostname "google.com" --address-family ipv4

   rabbitmq-diagnostics resolve_hostname "google.com" --address-family ipv6 --offline
   ```

   GitHub issue: [rabbitmq/rabbitmq-cli#431](https://github.com/rabbitmq/rabbitmq-cli/pull/431)

 * All CLI tools now provide an `autocomplete [prefix]` command that lists command completion
   options. It is intended to be used to implement autocompletion of command names in shells.

   GitHub issue: [rabbitmq/rabbitmq-cli#439](https://github.com/rabbitmq/rabbitmq-cli/issues/439)


### Management Plugin

#### Bug Fixes

 * The plugin could send the `authorization` header as `null` in some cases before a successful login.

   Contributed by @furkhat.

   GitHub issue: [rabbitmq/rabbitmq-management#833](https://github.com/rabbitmq/rabbitmq-management/pull/833)

#### Enhancements

 * The UI now uses more human-friendly information units when displaying client network traffic rate values.

   Contribute by @seadog007.

   GitHub issue: [rabbitmq/rabbitmq-management#827](https://github.com/rabbitmq/rabbitmq-management/pull/827)


### Federation Plugin

#### Bug Fixes

 * In environments where `rabbitmq_federation.pgroup_name_cluster_id` is not set or set to `undefined`,
   links will treat such values as a `false` (the default) instead of failing with an exception.

   GitHub issue: [rabbitmq/rabbitmq-federation#109](https://github.com/rabbitmq/rabbitmq-federation/pull/109)


### MQTT Plugin

#### Bug Fixes

 * The plugin could fail to accept new client connections with an exception in some cases.

   GitHub issue: [rabbitmq/rabbitmq-mqtt#235](https://github.com/rabbitmq/rabbitmq-mqtt/pull/235)


### Web STOMP Plugin

#### Enhancements

 * Certain Web Socket errors are now handled more gracefully.

   GitHub issue: [rabbitmq/rabbitmq-web-stomp#123](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/123)


### Web MQTT Plugin

#### Enhancements

 * Certain Web Socket errors are now handled more gracefully.

   GitHub issue: [rabbitmq/rabbitmq-web-mqtt#64](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/64)


### AuthN/AuthZ Backend HTTP Plugin

#### Bug Fixes

 * Virtual host access checks failed in certain complex configurations.

   GitHub issue: [rabbitmq/rabbitmq-auth-backend-http#100](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/100)


## Dependency Upgrades

 * `cuttlefish` was upgraded [from 2.2.0 to 2.3.0](https://github.com/Kyorai/cuttlefish/compare/v2.2.0...v2.3.0)
 * `credentials_obfuscation` was upgraded [from 2.0.0 to 2.1.1](https://github.com/rabbitmq/credentials-obfuscation/compare/v2.0.0...v2.1.1)


## 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-server-3.8.6.tar.xz`.