rabbitmq-server/release-notes/3.6.3.md

219 lines
8.5 KiB
Markdown

## RabbitMQ 3.6.3
RabbitMQ `3.6.3` is a maintenance release that includes
bug fixes, packaging and build system enhancements.
As of `3.6.3`, RabbitMQ also comes with several additional plugins in the distribution:
* [rabbitmq_top](http://github.com/rabbitmq/rabbitmq-top), which helps identify (Erlang) processes
that consume most RAM and CPU resources
* [rabbitmq_trust_store](https://github.com/rabbitmq/rabbitmq-trust-store) which manages
trusted client x509/TLS certificates
* [rabbitmq_jms_topic_exchange](https://github.com/rabbitmq/rabbitmq-jms-topic-exchange/) which, together with [RabbitMQ JMS Java client](https://github.com/rabbitmq/rabbitmq-jms-client), provides support for the JMS 1.1 API
atop RabbitMQ.
### Breaking Changes
* Debian package now [supports systemd and also drops support for some older distributions](https://groups.google.com/forum/#!topic/rabbitmq-users/orFuEYExcxk).
* All artifacts in this release are signed with a [new 4096-bit OpenGPG key](https://groups.google.com/forum/#!msg/rabbitmq-users/BO5cmEsdEhc/Jupz1_Q4AwAJ).
### Known Issues on Erlang 19.0
An undocumented runtime metric change in Erlang 19.0 [breaks management plugin](https://github.com/rabbitmq/rabbitmq-management/issues/244).
### Server
#### Bug Fixes
* (Newly elected) queue leader process could terminate immediately after promotion
GitHub issue: [rabbitmq-server#812](https://github.com/rabbitmq/rabbitmq-server/issues/812)
* Priority queue mirror could fail to synchronize after restart
GitHub issues: [rabbitmq-server#687](https://github.com/rabbitmq/rabbitmq-server/issues/687), [rabbitmq-server#802](https://github.com/rabbitmq/rabbitmq-server/issues/802)
* Shutdown timeouts for worker processes are now much more reasonable.
Earlier the timeouts were virtually infinite which could lead to a deadlock during node shutdown.
GitHub issue: [rabbitmq-server#541](https://github.com/rabbitmq/rabbitmq-server/issues/541)
* Purging of a durable queue could result in undelivered publisher confirms.
Contributed by Andreas Ländle.
GitHub issue: [rabbitmq-server#854](https://github.com/rabbitmq/rabbitmq-server/issues/854)
* Old incarnations of queue mirrors are now ensured to be stopped before new ones are started
GitHub issue: [rabbitmq-server#863](https://github.com/rabbitmq/rabbitmq-server/issues/863)
#### Enhancements
* `systemd` support in Debian and RPM packages
Contributed by Alexey Lebedeff (Mirantis).
GitHub issue: [rabbitmq-server#570](https://github.com/rabbitmq/rabbitmq-server/issues/570)
* Debian repository and release artifacts are now signed with a [new 4096-bit OpenGPG key](https://groups.google.com/forum/#!msg/rabbitmq-users/BO5cmEsdEhc/Jupz1_Q4AwAJ)
GitHub issue: [rabbitmq-server#718](https://github.com/rabbitmq/rabbitmq-server/issues/718)
* More resilient `worker_pool`, particularly important for LDAP plugin users
GitHub issue: [rabbitmq-server#834](https://github.com/rabbitmq/rabbitmq-server/issues/834)
* More efficient file handle management
GitHub issue: [rabbitmq-server#828](https://github.com/rabbitmq/rabbitmq-server/issues/828)
* Test suite ported to Common Test
Plugin developers will be encouraged to port their test suites to Common Test
in the future.
GitHub issue: [rabbitmq-server#725](https://github.com/rabbitmq/rabbitmq-server/issues/725)
* Compilation on [Erlang/OTP 19.0](http://erlang.org/download/otp_src_19.0.readme).
GitHub issue: [rabbitmq-server#860](https://github.com/rabbitmq/rabbitmq-server/issues/860)
### Management Plugin
#### Enhancements
* New API endpoint for reporting ETS tables memory consumption (absolute and relative)
GitHub issue: [rabbitmq-management#219](https://github.com/rabbitmq/rabbitmq-management/issues/219)
* Node information page now includes GC and context switching stats
GitHub issue: [rabbitmq-management#208](https://github.com/rabbitmq/rabbitmq-management/issues/208)
* Connection, channel, and queue information pages now include several runtime metrics
GitHub issues: [rabbitmq-management#209](https://github.com/rabbitmq/rabbitmq-management/issues/209), [rabbitmq-management#210](https://github.com/rabbitmq/rabbitmq-management/issues/210), [rabbitmq-management#211](https://github.com/rabbitmq/rabbitmq-management/issues/211)
* Node metrics now include information about how long it takes to obtain a file handle
GitHub issue: [rabbitmq-server#825](https://github.com/rabbitmq/rabbitmq-server/issues/825)
* Partial HTTPS support in `rabbitmqadmin` on Python versions older than `2.7.9`
GitHub issue: [rabbitmq-management#225](https://github.com/rabbitmq/rabbitmq-management/issues/225)
#### Bug Fixes
* A channel statistics-related memory leak fixed.
GitHub issue: [rabbitmq-management#214](https://github.com/rabbitmq/rabbitmq-management/issues/214)
* Stats collectors event queue is now bounded (again)
GitHub issue: [rabbitmq-management#221](https://github.com/rabbitmq/rabbitmq-management/issues/221)
* Stats table name was logged as a tuple
GitHub issue: [rabbitmq-management#206](https://github.com/rabbitmq/rabbitmq-management/issues/206)
### .NET Client
#### Bug Fixes
* Setting user-provided connection name didn't have an effect.
GitHub issue: [rabbitmq-dotnet-client#187](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/187)
* `IConnection#CreateModel` could throw a `NullPointerException` due to a race
condition.
GitHub issue: [rabbitmq-dotnet-client#185](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/185)
* Connections with automatic recovery enabled ignored ports from the hostname
list.
GitHub issues: [rabbitmq-dotnet-client#157](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/157),
[rabbitmq-dotnet-client#190](https://github.com/rabbitmq/rabbitmq-dotnet-client/pull/190)
* Fixes an underflow in delivery tag handling after connection recovery
Contributed by @harishvadali and @Entroper.
GitHub issue: [rabbitmq-dotnet-client#200](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/200)
#### Enhancements
* New [FAKE](https://fsharp.github.io/FAKE/) and [Paket](https://fsprojects.github.io/Paket/)-based build tooling: development on OS X and Linux with Mono is now
possible again.
GitHub issue: [rabbitmq-dotnet-client#169](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/169)
### LDAP Plugin
#### Enhancements
* Nested groups are now supported with a separate query type
GitHub issue: [rabbitmq-auth-backend-ldap#3](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/3)
#### Bug Fixes
* Query failures (e.g. `noSuchObject` responses) from LDAP servers are now correctly treated as `false` in
`or` and `and` queries instead of erroring.
GitHub issue: [rabbitmq-auth-backend-ldap#48](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/48)
### Trust Store Plugin
#### Bug Fixes
* Invalid/unparseable certificates no longer prevent other certificates from (re)loading
GitHub issue: [rabbitmq-trust-store#27](https://github.com/rabbitmq/rabbitmq-trust-store/issues/27)
#### Enhancements
* Certificate verification now can validate only leaf certificates.
This is more convenient in some cases. It will be one of the opt-in modes
in future versions.
GitHub issue: [rabbitmq-trust-store#34](https://github.com/rabbitmq/rabbitmq-trust-store/issues/34)
* The plugin now logs when a certificate is added (loaded) or removed (unloaded)
GitHub issue: [rabbitmq-trust-store#28](https://github.com/rabbitmq/rabbitmq-trust-store/issues/28)
* The plugin now provides a function for listing trust store certificates
via `rabbitmqctl eval`: `rabbitmqctl eval 'io:format(rabbit_trust_store:list()).'`
GitHub issue: [rabbitmq-trust-store#31](https://github.com/rabbitmq/rabbitmq-trust-store/issues/31)
### Erlang Client
#### Enhancements
* `amqp_connection:close/4` is now exported
GitHub issue: [rabbitmq-erlang-client#59](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/59)
#### Bug Fixes
* The client now compiles on Erlang/OTP 19.0
GitHub issue: [rabbitmq-erlang-client#41](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/41)
### Delayed Message Exchange Plugin
#### Enhacements
* Efficiency improvements when publications and delayed delivery happen concurrently.
Contributed by Richard Larocque.
GitHub issues: [rabbitmq-delayed-message-exchange#51](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/pull/51), [rabbitmq-delayed-message-exchange#54](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/pull/54)