File: 3.6.2.md

package info (click to toggle)
rabbitmq-server 4.0.5-10
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 38,056 kB
  • sloc: erlang: 257,826; javascript: 22,466; sh: 3,037; makefile: 2,517; python: 1,966; xml: 646; cs: 335; java: 244; ruby: 212; php: 100; perl: 63; awk: 13
file content (375 lines) | stat: -rw-r--r-- 15,262 bytes parent folder | download | duplicates (4)
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
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
## RabbitMQ 3.6.2

RabbitMQ `3.6.2` is a maintenance release that includes a [new statistics
collector in the management plugin](https://github.com/rabbitmq/rabbitmq-management/issues/41).

### Management Plugin Incompatibility with Earlier 3.6.x Releases

Because this version includes significant changes to the management plugin,
it should not be deployed into clusters with mixed `3.6.x` node versions
unless **all nodes that have the management plugin enabled** run `3.6.2`.
Otherwise HTTP API requests will fail with exceptions in some scenarios and parts of
management UI may not be updated.

There are no other known incompatibilities with earlier `3.6.x` releases.


### OpenSSL Requirement for Standalone Mac Release

Standalone Mac OS X package now requires OpenSSL 1.0.x to be provided by the system, for example,
from Homebrew.

### Optional `socat` Package Dependency for Distributions that Use `systemd`

Starting with `3.6.2`, RabbitMQ Debian and RPM packages have an optional
[dependency on socat](https://groups.google.com/forum/#!searchin/rabbitmq-users/socat/rabbitmq-users/ktzOsgNEBkY/cOlF_eP6AAAJ). When
installing using `dpkg`, this dependency won't be automatically installed. To install it manually, use

    sudo apt-get install socat


### Server

#### Bug Fixes

 * Channel operations that time out no longer produce noisy crash reports in
   RabbitMQ log files

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

 * Channel operation timeout default is bumped to 15 seconds

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

 * Windows service will pick up RabbitMQ config file regardless of whether
   it was present during service installation

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

 * Erlang distribution failures for `rabbitmqctl` and cross-node links will
   provide more detail when running on Erlang 19 (scheduled for release in Q3 2016).

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

 * `rabbitmqctl list_consumers` now lists all consumers on a given queue

   Previously it would only list one.

   Contributed by Alexey Lebedeff (Mirantis).

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

 * `rabbitmqctl list_queues` now correctly outputs rows for unavailable queues

   Contributed by Alexey Lebedeff (Mirantis).

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

 * `rabbitmqctl set_disk_free_limit mem_relative` erroneously rejected values greater than `1.0`

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

 * Messages with an invalid client-provided `x-death` header value caused queue process termination

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

 * Messages with priorities higher than queue max are now assigned max configured priority
   and no longer cause an unhandled exception that results in queue process restart

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

 * Policy-related `rabbitmqctl` commands could return unformatted messages

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

 * `RABBITMQ_IO_THREAD_POOL_SIZE` is no longer ignored by `rabbitmq-server.bat`

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

 * Deleting a vhost in parallel with updating a policy in it resulted
   in unhandled exceptions

   GitHub issues: [rabbitmq-server#755](https://github.com/rabbitmq/rabbitmq-server/issues/755),
                  [rabbitmq-server#759](https://github.com/rabbitmq/rabbitmq-server/issues/759),
                  [rabbitmq-server#744](https://github.com/rabbitmq/rabbitmq-server/issues/744)

#### Enhancements

 * Connections now emit stats unconditionally when they are blocked and unblocked
   by resource alarms. This makes management UI and HTTP API-reported data to be more up-to-date

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

 * New (node-local) health check command

   `rabbitmqctl node_health_check` is a new command that performs basic health check of a node

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

 * Automatic restart policy enabled for Windows service

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

 * Default number of async I/O VM threads is now calculated based on the
   number of available CPU cores

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

 * `rabbitmqctl list_queues` now supports new flags, `--offline` and `--online`, that limit
   result to only unavailable or available queues (queue leaders, to be more precise)

   Contributed by Alexey Lebedeff (Mirantis).

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

 * RabbitMQ will no longer log a warning about disabled kernel polling on Windows

   The runtime does not support kernel polling (I/O completion ports) on Windows,
   so there is nothing the user can do about it.

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

 * Queue index is now updated in batches when messages are requeued

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


### Management plugin

#### Bug Fixes

 * Samples (stats) for abnormally terminated connections and channels will now be cleaned up more aggressively

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

 * Cluster name could be returned by HTTP API as a non-string value

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

 * Improved IE 11 compatibility

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

#### Enhancements

 * Management plugin has a new, better parallelised event collector which is less likely to
   fall behind.

   GitHub issues: [rabbitmq-management#41](https://github.com/rabbitmq/rabbitmq-management/issues/41),
                  [rabbitmq-management#166](https://github.com/rabbitmq/rabbitmq-management/issues/166),
                  [rabbitmq-management#173](https://github.com/rabbitmq/rabbitmq-management/issues/173),
                  [rabbitmq-management#185](https://github.com/rabbitmq/rabbitmq-management/issues/185),
                  [rabbitmq-management#174](https://github.com/rabbitmq/rabbitmq-management/issues/174)

 * Clients now can provide a human-readable connection name that will be displayed
   in the management UI. Currently Java, .NET and Erlang clients support this.
   In order to use this feature, set the `connection_name` key in client properties.
   Note that this name doesn't have to be unique and cannot be used as a connection identifier,
   for example, in HTTP API requests.

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

 * `GET /api/nodes/{node}/memory` and `GET /api/nodes/{node}/memory/relative` are new HTTP API
   endpoints that return memory usage breakdown in absolute (same as `rabbitmqctl status`) and
   relative terms.

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

 * HTTPS related improvements in `rabbitmqadmin`.

   GitHub issues: [rabbitmq-management#152](https://github.com/rabbitmq/rabbitmq-management/issues/152), [rabbitmq-management#151](https://github.com/rabbitmq/rabbitmq-management/issues/151), [rabbitmq-management#149](https://github.com/rabbitmq/rabbitmq-management/issues/149).

 * Policies now can be listed (read) by the users tagged with `management` and `monitoring`

   As well as those tagged with `policymaker` and `administrator`, of course.

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

 * Effective rates mode is now displayed for cluster nodes by default

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


### MQTT plugin

#### Bug Fixes

 * Resource alarms are handled correctly by MQTT connections

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

 * Session [pre-existing] presence is now correctly communicated to clients

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

#### Enhancements

 * Connections now emit stats unconditionally when they are blocked and unblocked
   by resource alarms. This makes management UI and HTTP API-reported data to be more up-to-date.

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

 * More connection details for MQTT connections reported to management UI

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

### STOMP plugin

#### Bug Fixes

 * Resource alarms are handled correctly by STOMP connections

   GitHub issues: [rabbitmq-stomp#68](https://github.com/rabbitmq/rabbitmq-stomp/issues/68),
                  [rabbitmq-stomp#67](https://github.com/rabbitmq/rabbitmq-stomp/issues/67)

#### Enhancements

 * Connections now emit stats unconditionally when they are blocked and unblocked
   by resource alarms. This makes management UI and HTTP API-reported data to be more up-to-date.

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

 * More connection details for STOMP connections reported to management UI

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



### Web STOMP plugin

#### Enhancements

 * More connection details for STOMP-over-WebSockets connections reported to management UI

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

 * The plugin now sends a protocol header (`Sec-WebSocket-Protocol`) response when
   client presents it.

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


### Web MQTT plugin

#### Bug Fixes

 * More connection details for MQTT-over-WebSockets connections reported to management UI

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

 * Plugin deactivation now correctly stops TCP listener

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


### .NET client

#### Bug Fixes

 * Compatibility with SQL Server 2014 CLR restored

   GitHub issue: [rabbitmq-dotnet-client#167](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/167)

 * Autorecovering connections now respect all provided hostnames
   when reconnecting.

   GitHub issue: [rabbitmq-dotnet-client#157](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/157)

 * `ConnectionFactory#CreateConnection` now respects all provided hostnames
   when automatic connection recovery is disabled.

   GitHub issue: [rabbitmq-dotnet-client#176](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/176)

### Erlang client

#### Bug Fixes

 * Certain channel failures resulted in a race condition during process [tree] shutdown.

   GitHub issue: [rabbitmq-erlang-client#42](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/42)


### LDAP Authentication/Authorisation Backend

#### Bug Fixes

 * LDAP connection pool is now more resilient to TCP connection closure/loss on Erlang/OTP 18.3

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

 * Non-existent group in `tag_queries` shouldn't terminate authorisation

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

 * `attribute` query should not fail when multiple values are returned

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

#### Enhancements

 * Virtual host is now available as a variable in `tag_queries`

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

 * Default LDAP connection pool size was increased from `10` to `64`

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


### HTTP Authentication/Authorisation Backend

#### Enhancements

 * The plugin now uses HTTP 1.1 and keep-alive connections for requests.

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

 * It is now possible to configure the plugin to use `POST` requests instead of
   `GET`, so that no sensitive information is logged.

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

 * The plugin now supports HTTP client TLS options, so authenticating apps can use HTTPS

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

 * Vhost access requests now include client IP address

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

   Contributed by Abdulrazak Alkl.

### Event Exchange plugin

#### Enhancements

 * Policy events now include a vhost field

   GitHub issue: [rabbitmq-event-exchange#17](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/17)

 * Binding events now include a vhost field

   GitHub issue: [rabbitmq-event-exchange#9](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/9)

 * Millesecond resolution timestamp of events is now back as a message header

   GitHub issue: [rabbitmq-event-exchange#12](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/12)

 * `user.authentication.success` no longer has the `vhost` field
   since vhost is only available at a later point. `connection.created`
   events should be used to track successful connections if vhost
   information is desired.

   GitHub issue: [rabbitmq-event-exchange#13](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/13)


## Upgrading

To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained. When upgrading using definitions export/import from versions earlier than 3.6.1, see http://rabbitmq.com/passwords.html.

To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading). All nodes that have RabbitMQ management plugin enabled
must be upgraded in lock step.

## 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.6.2.tar.gz`.