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 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413
|
## RabbitMQ 3.6.7
RabbitMQ `3.6.7` is a maintenance release that includes a [new reworked management plugin](https://github.com/rabbitmq/rabbitmq-management/issues/236) that stores collected stats on all cluster nodes (as opposed to one dedicated node).
### Upgrades and Compatibility
See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading) and a note at the end of this release notes document for general documentation on upgrades.
#### ⚠️ Erlang/OTP R16B03 and 17.x Compatibility
Erlang/OTP R16B03 users on Debian and Ubuntu may run into [runtime code compilation errors](https://groups.google.com/forum/#!topic/rabbitmq-users/XfQgta5v6Z0).
While this [was addressed in 3.6.8](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_8), we recommend upgrading to at least Erlang 18.0 if possible
(see [Debian installation guide](https://www.rabbitmq.com/install-debian.html) and [RPM installation guide](https://www.rabbitmq.com/install-rpm.html)).
#### ⚠️ New Management Plugin
In clusters that have rabbitmq_management or rabbitmq_management_agent plugins enabled all nodes must be upgraded at the same time.
There is a couple of public-facing changes in the HTTP API.
##### Test Suites that use HTTP API
Integration test suites that rely on HTTP API for listing
or closing connections, channels, etc need to be adjusted with this plugin:
* We recommend reducing stats retention periods (see [Hop](https://github.com/rabbitmq/hop/blob/master/bin/before_build.sh#L11), [rabbit-hole](https://github.com/michaelklishin/rabbit-hole/blob/master/bin/ci/before_build.sh))
* Because stats emission is now two-step and asynchronous, test suites may need
to wait for events to propagate before asserting on them (see [Hop](https://github.com/rabbitmq/hop/blob/master/src/test/groovy/com/rabbitmq/http/client/ClientSpec.groovy#L168), [rabbit-hole](https://github.com/michaelklishin/rabbit-hole/blob/master/rabbithole_test.go#L130)).
##### POST and PUT Responses Use `201 Created`
POST and PUT responses now use `201 Created` instead of `204 No Content`.
#### ⚠️ Single Atom TCP Listener Options
Single atom TCP listener options such as `binary` in this example:
``` erlang
[
{rabbit, [
{tcp_listen_options, [
binary,
{backlog, 4096},
{sndbuf, 32768},
{recbuf, 32768}
]}
%% …
}].
```
won't serialise to JSON correctly in this release. This is [addressed for 3.6.8](https://github.com/rabbitmq/rabbitmq-management-agent/issues/34).
Note that `binary` is one of the default options and there is no need to override it.
There are no other known incompatibilities with 3.6.2 or later releases.
### Server
#### Bug Fixes
* queue leader process could terminate with a `{bad_match, {error, not_found}}` error.
GitHub issue: [rabbitmq-server#1035](https://github.com/rabbitmq/rabbitmq-server/issues/1035)
* `rabbitmq-service.bat` should exit with a non-0 code when installation fails.
GitHub issue: [rabbitmq-server#1052](https://github.com/rabbitmq/rabbitmq-server/issues/1052)
* `rabbitmqctl stop_app` now produces a more technically correct output about
what the operation does.
GitHub issue: [rabbitmq-server#1043](https://github.com/rabbitmq/rabbitmq-server/issues/1043)
#### Enhancements
* Nodes in a cluster now can be restared in arbitrary order. They will attempt to contact
one of the previously seen peers periodically (10 times with 30 second intervals by default).
GitHub issue: [rabbitmq-server#1033](https://github.com/rabbitmq/rabbitmq-server/issues/1033)
* Increased credit flow default settings, background GC is disabled by default
for more predictable latency.
GitHub issue: [rabbitmq-server#1098](https://github.com/rabbitmq/rabbitmq-server/pull/1098)
* TLS listeners now support SNI (via [Ranch 1.3.0](https://ninenines.eu/articles/ranch-1.3/)).
GitHub issue: [rabbitmq-server#789](https://github.com/rabbitmq/rabbitmq-server/issues/789)
* Successful connection authentication now leaves additional log entries, just like authentication
failures. It is now easier to see from the log what user connected to what vhost.
GitHub issue: [rabbitmq-server#1140](https://github.com/rabbitmq/rabbitmq-server/issues/1140)
* Internal authentication backend now supports credential validators.
GitHub issue: [rabbitmq-server#1054](https://github.com/rabbitmq/rabbitmq-server/issues/1054)
* Worker process shutdown timeout now can be configured.
GitHub issue: [rabbitmq-server#847](https://github.com/rabbitmq/rabbitmq-server/issues/847)
* Default Erlang VM ETS limit was increased from 1400 to 50000. This is necessary to support
a larger number of virtual hosts with the new management plugin.
GitHub issue: [rabbitmq-server#1059](https://github.com/rabbitmq/rabbitmq-server/issues/1059)
* `RABBITMQ_PLUGINS_DIR` now supports multiple directories (colon-separated on Linux and other UNIX-like
platforms, semicolon-separated on Windows).
Contributed by Alexey Lebedeff.
GitHub issue: [rabbitmq-server#1001](https://github.com/rabbitmq/rabbitmq-server/issues/1001)
* Background GC now can be disabled and configured to use a different target interval value.
Original patch by Tim Stewart.
GitHub issue: [rabbitmq-server#1026](https://github.com/rabbitmq/rabbitmq-server/issues/1026)
* `L`-prefixed (`long-long-int`) attribute table (header) keys are now accepted by the parser.
GitHub issue: [rabbitmq-server#1093](https://github.com/rabbitmq/rabbitmq-server/issues/1093)
### Management Plugin
#### Bug Fixes
* Node health check responded with status 500 if health check failed due to a timeout.
GitHub issue: [rabbitmq-management#307](https://github.com/rabbitmq/rabbitmq-management/issues/307)
* `GET /api/nodes` response entries contained a duplicate JSON document property (key).
GitHub issue: [rabbitmq-management#305](https://github.com/rabbitmq/rabbitmq-management/issues/305)
* `rabbitmqadmin` listing commands failed to output values that contained non-ASCII characters
(such as queue names in Asian languages).
GitHub issue: [rabbitmq-management#343](https://github.com/rabbitmq/rabbitmq-management/issues/343)
* Queue details page now correctly displays the number of paged out transient messages.
GitHub issue: [rabbitmq-management#345](https://github.com/rabbitmq/rabbitmq-management/issues/345)
* When user filter returned no results, the message incorrectly said "no vhosts."
GitHub issue: [rabbitmq-management#357](https://github.com/rabbitmq/rabbitmq-management/issues/357)
#### Enhancements
* New management plugin implementation that stores stats on all cluster nodes.
GitHub issue: [rabbitmq-management#236](https://github.com/rabbitmq/rabbitmq-management/issues/236)
* Purging a queue via UI now requires a confirmation.
GitHub issue: [rabbitmq-management#195](https://github.com/rabbitmq/rabbitmq-management/issues/195)
* Queue deletion and purging buttons now use separate UI panes.
GitHub issue: [rabbitmq-management#158](https://github.com/rabbitmq/rabbitmq-management/issues/158)
* Plugins that use HTTP (management, Web STOMP, Web MQTT) now register their ports
as TCP listeners.
GitHub issue: [rabbitmq-web-dispatch#14](https://github.com/rabbitmq/rabbitmq-web-dispatch/issues/14)
* Overview chart legend labels are now clearer and grouped in a more useful way.
GitHub issue: [rabbitmq-management#339](https://github.com/rabbitmq/rabbitmq-management/issues/339)
* Creating a queue in a vhost the user has no access to now provides
reasonable feedback.
GitHub issue: [rabbitmq-management#241](https://github.com/rabbitmq/rabbitmq-management/issues/241)
* Listing queues in a vhost the user has no access to now provides
reasonable feedback.
GitHub issue: [rabbitmq-management#237](https://github.com/rabbitmq/rabbitmq-management/issues/237)
* Deletion UI dialog has clearer wording.
GitHub issue: [rabbitmq-management#159](https://github.com/rabbitmq/rabbitmq-management/issues/159)
* When creating exchanges/queues, virtual host is now pre-selected to match the "current" one.
GitHub issue: [rabbitmq-management#235](https://github.com/rabbitmq/rabbitmq-management/issues/235)
* User creation form now features the "impersonator" tag.
GitHub issue: [rabbitmq-management#284](https://github.com/rabbitmq/rabbitmq-management/issues/284)
* Queue declaration form now includes a shortcut button for switching queue
mode to "lazy."
GitHub issue: [rabbitmq-management#205](https://github.com/rabbitmq/rabbitmq-management/issues/205)
### MQTT Plugin
#### Bug Fixes
* Fixed a memory leak in statistics tables in case of certain
abnormal connection termination scenarios.
GitHub issue: [rabbitmq-mqtt#117](https://github.com/rabbitmq/rabbitmq-mqtt/issues/117)
* Last Will messages that had the `retained` flag set were not retained.
GitHub issue: [rabbitmq-mqtt#74](https://github.com/rabbitmq/rabbitmq-mqtt/issues/74)
* More metrics are reported for MQTT connections.
GitHub issue: [rabbitmq-mqtt#121](https://github.com/rabbitmq/rabbitmq-mqtt/issues/121)
* Certain virtual host names could cause MQTT retainer to not start.
GitHub issue: [rabbitmq-mqtt#123](https://github.com/rabbitmq/rabbitmq-mqtt/issues/123)
#### Enhancements
* Improved logging around connection termination due to unparseable traffic,
e.g. HTTP requests sent to MQTT plugin port.
GitHub issue: [rabbitmq-mqtt#119](https://github.com/rabbitmq/rabbitmq-mqtt/issues/119)
* There is now a way to map MQTT listener ports (target client connection ports)
to vhosts.
GitHub issue: [rabbitmq-mqtt#111](https://github.com/rabbitmq/rabbitmq-mqtt/issues/111)
* There is now a way to map client certificate CN values to vhosts and thus make
specific clients connect to designated vhosts.
GitHub issue: [rabbitmq-mqtt#73](https://github.com/rabbitmq/rabbitmq-mqtt/issues/73)
* Connections to non-existent hosts are now gracefully closed with a reasonable
error code (invalid credentials).
GitHub issue: [rabbitmq-mqtt#100](https://github.com/rabbitmq/rabbitmq-mqtt/issues/100)
* More configuration values are accepted as strings (as well as binaries).
GitHub issue: [rabbitmq-mqtt#86](https://github.com/rabbitmq/rabbitmq-mqtt/issues/86)
### STOMP Plugin
#### Bug Fixes
* Fixed a memory leak in statistics tables in case of certain
abnormal connection termination scenarios.
GitHub issue: [rabbitmq-stomp#103](https://github.com/rabbitmq/rabbitmq-stomp/pull/103)
* More metrics are reported for STOMP connections.
GitHub issue: [rabbitmq-stomp#102](https://github.com/rabbitmq/rabbitmq-stomp/issues/102)
### Federation Plugin
#### Bug Fixes
* The plugin now tolerates a higher rate of link [re-]connection failures.
The rate sustained depends on the `reconnect-delay` parameter configured for the upstream
(see the issue below for details).
GitHub issue: [rabbitmq-federation#46](https://github.com/rabbitmq/rabbitmq-federation/issues/46)
#### Enhancements
* Improved logging for federation links that voluntarily stop, e.g. because
something in their controlling policy has changed.
GitHub issue: [rabbitmq-federation#43](https://github.com/rabbitmq/rabbitmq-federation/issues/43)
* Improved logging around network partitions that can affect federation links.
GitHub issue: [rabbitmq-federation#53](https://github.com/rabbitmq/rabbitmq-federation/issues/53)
### Federation Management Plugin
#### Enhancements
* New HTTP API endpoint that lists only down links.
GitHub issue: [rabbitmq-federation-management#18](https://github.com/rabbitmq/rabbitmq-federation-management/issues/18)
* New HTTP API endpoint that restarts a link.
GitHub issue: [rabbitmq-federation-management#17](https://github.com/rabbitmq/rabbitmq-federation-management/issues/17)
### LDAP Plugin
#### Bug Fixes
* Match query was matching too eagerly ("bi-directionally").
GitHub issue: [rabbitmq-auth-backend-ldap#56](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/56)
* Default LDAP server port was unintentionally set to `3890` (instead of `389`).
GitHub issue: [rabbitmq-auth-backend-ldap#64](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/64)
#### Enhancements
* LDAP server connection pool now supports time-based expiration (and closure) of inactive
LDAP connections.
GitHub issue: [rabbitmq-auth-backend-ldap#7](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/7)
### Top Plugin
#### Enhancements
* Internal buffer length of processes that implement the `gen_server2` behaviour
(most notably queues) are now collected and visible in `rabbitmq_top`. Combined
with Erlang mailbox length this provides a more or less complete picture of Erlang
message backlog a process has.
GitHub issue: [rabbitmq-top#20](https://github.com/rabbitmq/rabbitmq-top/issues/20)
### Event Exchange Plugin
#### Enhacements
* Resource alarm events are now accessible via the event exchange.
GitHub issue: [rabbitmq-server#1120](https://github.com/rabbitmq/rabbitmq-server/issues/1120)
### Web MQTT Plugin
#### Enhancements
* Web MQTT port is now registered as a TCP listener and shows up in the management UI
listeners section.
GitHub issue: [rabbitmq-web-mqtt#17](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/17)
### Web STOMP Plugin
#### Bug Fixes
* When HTTP basic authentication is used but credentials are not provided, the plugin should
fall back to default configured STOMP plugin credentials.
GitHub issue: [rabbitmq-web-stomp#60](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/60)
#### Enhancements
* Web STOMP port is now registered as a TCP listener and shows up in the management UI
listeners section.
GitHub issue: [rabbitmq-web-stomp#65](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/65)
### Trust Store Plugin
#### Enhancements
* Pluggable certificate providers (sources).
GitHub issue: [rabbitmq-trust-store#1](https://github.com/rabbitmq/rabbitmq-trust-store/issues/1)
* HTTP(S) certificate provider (source).
GitHub issue: [rabbitmq-trust-store#54](https://github.com/rabbitmq/rabbitmq-trust-store/issues/54)
### .NET Client
#### Bug Fixes
* `AutorecoveringConnection` had unsynchronised concurrent access to several of its mutable field.
GitHub issues: [rabbitmq-dotnet-client#288](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/288),
[rabbitmq-dotnet-client#291](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/291)
### Erlang Client
#### Bug Fixes
* The client OTP app now correctly defines dependencies on
`compiler` and `syntax_tools`.
GitHub issue: [rabbitmq-erlang-client#72](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/72)
#### Enhancements
* URI parser now accepts binaries as well as strings.
GitHub issue: [rabbitmq-erlang-client#76](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/76)
## 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.0, see http://rabbitmq.com/passwords.html.
To upgrade a RabbitMQ cluster, follow the instructions [in RabbitMQ documentation](https://www.rabbitmq.com/clustering.html#upgrading).
## 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.7.tar.gz`.
|