Move release notes from rabbitmq/rabbitmq-website
Keeping them in this repo might encourage more people to update them as changes are merged, and simplify release automation a bit. So let's try it. Per suggestion from @gerhard.
This commit is contained in:
parent
65afbb931b
commit
eff69f5772
|
@ -0,0 +1,169 @@
|
|||
## RabbitMQ 3.5.7
|
||||
|
||||
RabbitMQ `3.5.7` is primarily a bug fix release.
|
||||
|
||||
### Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Fix a race condition that could prevent nodes from stopping.
|
||||
|
||||
GitHub issue: [rabbitmq-server#465](https://github.com/rabbitmq/rabbitmq-server/issues/465)
|
||||
|
||||
* `file_handle_cache:clear_read_cache/0` no longer silently fails.
|
||||
|
||||
The function is mean to be used with `rabbitmqctl eval` in environments where
|
||||
in-process buffering of file data is enabled.
|
||||
|
||||
GitHub issue: [rabbitmq-server#436](https://github.com/rabbitmq/rabbitmq-server/issues/436)
|
||||
|
||||
* Default `RABBITMQ_PLUGINS_DIR` value on Windows should be calculated as relative to RabbitMQ
|
||||
server installation directory, not `RABBITMQ_BASE`.
|
||||
|
||||
If you override `RABBITMQ_BASE`, you may need to copy plugins from `%RABBITMQ_BASE%\plugins`
|
||||
to the `plugins` directory under RabbitMQ installation.
|
||||
|
||||
GitHub issue: [rabbitmq-server#433](https://github.com/rabbitmq/rabbitmq-server/issues/433)
|
||||
|
||||
* When rabbitmq-server failed to start due to an unreadable config file, exit code was 0
|
||||
|
||||
GitHub issue: [rabbitmq-server#464](https://github.com/rabbitmq/rabbitmq-server/issues/464)
|
||||
|
||||
* Overriding `RABBITMQ_LOGS` and `RABBITMQ_SASL_LOGS` on Windows prevented node from starting.
|
||||
|
||||
GitHub issue: [rabbitmq-server#375](https://github.com/rabbitmq/rabbitmq-server/issues/375)
|
||||
|
||||
* Some startup code bits assumed IPv4 is enabled in the environment
|
||||
|
||||
GitHub issue: [rabbitmq-server#117](https://github.com/rabbitmq/rabbitmq-server/issues/117)
|
||||
|
||||
* More robust disk monitor, fewer errors logged.
|
||||
|
||||
GitHub issue: [rabbitmq-server#91](https://github.com/rabbitmq/rabbitmq-server/issues/91)
|
||||
|
||||
* `rabbitmqctl forget_cluster_node` no longer attempts to impersonate live
|
||||
(reachable) nodes.
|
||||
|
||||
GitHub issue: [rabbitmq-server#470](https://github.com/rabbitmq/rabbitmq-server/issues/470)
|
||||
|
||||
* `rabbitmq-plugins` was using an incorrect env variable.
|
||||
|
||||
GitHub issue: [rabbitmq-server#451](https://github.com/rabbitmq/rabbitmq-server/issues/451)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* RAM watermark can be configured as an absolute value in bytes (just like with disk space monitoring):
|
||||
|
||||
```
|
||||
[{rabbit, [{vm_memory_high_watermark, {absolute, 1073741824}}]}].
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq-server#207](https://github.com/rabbitmq/rabbitmq-server/issues/207)
|
||||
|
||||
* `rabbitmqctl authenticate_user` is a new command that can be used to test user authentication.
|
||||
|
||||
GitHub issue: [rabbitmq-server#119](https://github.com/rabbitmq/rabbitmq-server/issues/119)
|
||||
|
||||
* `rabbitmqctl` now supports `exclusive` as a queue info item.
|
||||
|
||||
Contributed by Alexey Lebedeff (@binarin).
|
||||
|
||||
GitHub issue: [rabbitmq-server#371](https://github.com/rabbitmq/rabbitmq-server/issues/371)
|
||||
|
||||
|
||||
### Java client
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Heartbeats are now enabled by default.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#109](https://github.com/rabbitmq/rabbitmq-java-client/issues/109).
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `AutorecoveringChannel#basicCancel` could throw a `NullPointerException`.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#105](https://github.com/rabbitmq/rabbitmq-java-client/issues/105)
|
||||
|
||||
|
||||
### .NET client
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Heartbeats are now enabled by default.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#142](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/142).
|
||||
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `IConnection.Dispose` could throw an exception.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#133](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/133)
|
||||
|
||||
|
||||
### MQTT plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Auto-deletion of queues that back QoS 1 subscriptions is again controlled
|
||||
by the clean session flag.
|
||||
|
||||
GitHub issues: [rabbitmq-mqtt#30](https://github.com/rabbitmq/rabbitmq-mqtt/issues/30) (original report which introduced the issue), [rabbitmq-mqtt#37](https://github.com/rabbitmq/rabbitmq-mqtt/issues/37) (clarification and fix)
|
||||
|
||||
|
||||
|
||||
### STOMP plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Queue names now can be set explicitly using the `x-queue-name` header, for all
|
||||
destination types.
|
||||
|
||||
GitHub issue: [rabbitmq-stomp#43](https://github.com/rabbitmq/rabbitmq-stomp/issues/43)
|
||||
|
||||
|
||||
|
||||
### Management plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Management plugin could prevent a node from starting when it recovers after a network split.
|
||||
|
||||
GitHub issue: [rabbitmq-management#81](https://github.com/rabbitmq/rabbitmq-management/issues/81)
|
||||
|
||||
* Sorting arrow direction in the UI is now more conventional.
|
||||
|
||||
Contributed by Philippe Serhal.
|
||||
|
||||
GitHub issue: [rabbitmq-management#88](https://github.com/rabbitmq/rabbitmq-management/pull/88).
|
||||
|
||||
* 401 responses correctly set content type to `application/json`
|
||||
|
||||
GitHub issue: [rabbitmq-management#67](https://github.com/rabbitmq/rabbitmq-management/issues/67)
|
||||
|
||||
* Consumer utilisation is correctly reported as a number instead of `""` when it equals 0.
|
||||
|
||||
GitHub issue: [rabbitmq-management#26](https://github.com/rabbitmq/rabbitmq-management/issues/26)
|
||||
|
||||
* `rabbitmqadmin` misinterpreted boolean settings in config as strings
|
||||
|
||||
GitHub issue: [rabbitmq-management#20](https://github.com/rabbitmq/rabbitmq-management/issues/20)
|
||||
|
||||
|
||||
### AMQP 1.0 plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Fixed an edge case in serialisation of collections.
|
||||
|
||||
GitHub issue: [rabbitmq-amqp1.0#21](https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/21)
|
||||
|
||||
|
||||
### Erlang client
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Heartbeats are now enabled by default.
|
||||
|
||||
GitHub issue: [rabbitmq-erlang-client#25](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/25).
|
|
@ -0,0 +1,30 @@
|
|||
## RabbitMQ 3.5.8
|
||||
|
||||
RabbitMQ `3.5.8` fixes a security vulnerability ([CVE-2016-9877](https://pivotal.io/security/cve-2016-9877)) in the MQTT plugin.
|
||||
|
||||
### Server
|
||||
|
||||
#### Security
|
||||
|
||||
* `rabbit_diagnostics:maybe_stuck/0` no longer prints process' dictionary
|
||||
because it may contain PRNG seed values and other sensitive information.
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Security
|
||||
|
||||
* Authentication with correct username but omitted password succeeded when TLS/x509 certificate
|
||||
wasn't provided by the client. CVE allocation for this vulnerability is pending.
|
||||
|
||||
GitHub issue: [rabbitmq-mqtt#96](https://github.com/rabbitmq/rabbitmq-mqtt/issues/96)
|
||||
|
||||
## Upgrading
|
||||
|
||||
To upgrade a non-clustered RabbitMQ simply install the new version. All configuration and persistent message data are retained.
|
||||
|
||||
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.5.8.tar.gz`.
|
|
@ -0,0 +1,462 @@
|
|||
## Release Highlights
|
||||
|
||||
This is the release notes for RabbitMQ 3.6.0 RC3. This is a preview of
|
||||
a feature release.
|
||||
|
||||
Key improvements in this release are:
|
||||
|
||||
* Lazy queues
|
||||
* Much better queue synchronisation throughput
|
||||
* Lower RAM use, tunable flow control
|
||||
* Stronger password encryption with pluggable algorithms
|
||||
* Development moved to GitHub; build system now uses erlang.mk
|
||||
* Significant improvements to Web STOMP
|
||||
* Experimental WinRT-compatible .NET client, SQL CLR compatibility in the "regular" one
|
||||
* Pagination in management UI
|
||||
|
||||
|
||||
### Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Cluster-wide alarm state is not updated when alarmed node goes down.
|
||||
|
||||
Contributed by Alexey Lebedeff (@binarin).
|
||||
|
||||
GitHub issue: [rabbitmq-server#362](https://github.com/rabbitmq/rabbitmq-server/issues/362)
|
||||
|
||||
* Blocked connections could be unblocked too early.
|
||||
|
||||
When multiple resource alarms were in effect, clearing just one of them would
|
||||
unblock all publishers prematurely.
|
||||
|
||||
Contributed by Alexey Lebedeff (@binarin).
|
||||
|
||||
GitHub issue: [rabbitmq-server#379](https://github.com/rabbitmq/rabbitmq-server/issues/379)
|
||||
|
||||
* Blocked connections that are closed by clients are now expired
|
||||
and cleaned up by the heartbeat mechanism.
|
||||
|
||||
Contributed by Alexey Lebedeff (@binarin).
|
||||
|
||||
GitHub issue: [rabbitmq-server#384](https://github.com/rabbitmq/rabbitmq-server/issues/384)
|
||||
|
||||
* If `RABBITMQ_MNESIA_DIR` was set to a value with a trailing slash, it could prevent
|
||||
automatic clustering (and other operations that assume pristine node state) from starting.
|
||||
|
||||
GitHub issue: [rabbitmq-server#118](https://github.com/rabbitmq/rabbitmq-server/issues/118)
|
||||
|
||||
* Standard output and error redirection in package scripts not respects `RABBITMQ_LOG_BASE`.
|
||||
|
||||
GitHub issue: [rabbitmq-server#88](https://github.com/rabbitmq/rabbitmq-server/issues/88)
|
||||
|
||||
* Properly seed pseudo-random number generator when picking client port
|
||||
|
||||
Contributed by Alexey Lebedeff (@binarin).
|
||||
|
||||
GitHub issue: [rabbitmq-common#3](https://github.com/rabbitmq/rabbitmq-common/issues/3)
|
||||
|
||||
* `RABBITMQ_ALLOW_INPUT` was ignored on Windows
|
||||
|
||||
GitHub issue: [rabbitmq-server#490](https://github.com/rabbitmq/rabbitmq-server/issues/490)
|
||||
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Lazy queues.
|
||||
|
||||
Lazy queues is a new feature that can significantly reduce RAM use of queues
|
||||
that can grow very long (e.g. don't have consumers online for hours or day).
|
||||
Such queues page messages to disk as they enter the queue.
|
||||
|
||||
This feature is opt-in and has virtually no overhead for consumers in most cases,
|
||||
making throughput for publishers much more even and reducing RAM use.
|
||||
|
||||
GitHub issue: [rabbitmq-server#351](https://github.com/rabbitmq/rabbitmq-server/issues/351)
|
||||
|
||||
* Queue synchronisation to mirrors now happens in batches of configurable size,
|
||||
4096 messages by default. This can improve sync throughput by an order of magnitude.
|
||||
|
||||
GitHub issue: [rabbitmq-server#336](https://github.com/rabbitmq/rabbitmq-server/issues/336)
|
||||
|
||||
* queue leader-to-node distribution is now more flexible: there are several
|
||||
strategies to choose from.
|
||||
|
||||
GitHub issue: [rabbitmq-server#121](https://github.com/rabbitmq/rabbitmq-server/issues/121)
|
||||
|
||||
* Stronger password encryption algorithm.
|
||||
|
||||
SHA-256 is the hashing function used by default now, with SHA-512 being an option provided
|
||||
out of the box. Support for more options (Scrypt, bcrypt, etc) can be added with plugins.
|
||||
|
||||
Existing user records will continue using MD5. To force re-hashing/encryption, change
|
||||
user password using `rabbitmqctl` or management UI/HTTP API.
|
||||
|
||||
This should improve FIPS-180 compatibility.
|
||||
|
||||
GitHub issue: [rabbitmq-server#270](https://github.com/rabbitmq/rabbitmq-server/issues/270)
|
||||
|
||||
* Lower RAM use thanks to disabled in-process caching.
|
||||
|
||||
RabbitMQ's in-process read buffers are now disabled by default. This often significantly
|
||||
reduces RAM usage at effectively no throughput or latency cost because the OS and file
|
||||
system do the same job fairly well.
|
||||
|
||||
GitHub issue: [rabbitmq-server#228](https://github.com/rabbitmq/rabbitmq-server/issues/228)
|
||||
|
||||
* [Configurable flow control settings](https://blog.rabbitmq.com/posts/2015/10/new-credit-flow-settings-on-rabbitmq-3-5-5/)
|
||||
|
||||
Note that larger values will not necessarily lead to higher throughput or lower latency.
|
||||
They can also result in larger RAM use and therefore can be dangerous.
|
||||
|
||||
GitHub issue: [rabbitmq-server#143](https://github.com/rabbitmq/rabbitmq-server/issues/143)
|
||||
|
||||
* Build system switched to erlang.mk.
|
||||
|
||||
[erlang.mk](https://github.com/ninenines/erlang.mk) is a modern build system for Erlang
|
||||
projects. RabbitMQ and all of its sub-projects have been switched to it.
|
||||
|
||||
This yields several benefits for RabbitMQ maintainers and plugin developers,
|
||||
for example, dependency management for plugins is much more straightforward, build
|
||||
times are significantly improved, there is no need to depend on `rabbitmq-server` for most
|
||||
plugins.
|
||||
|
||||
Various 3rd party plugins need to migrate to erlang.mk in order to be built against
|
||||
RabbitMQ 3.6.0 (`rabbit_common`).
|
||||
|
||||
GitHub issue: [rabbitmq-server#388](https://github.com/rabbitmq/rabbitmq-server/issues/388)
|
||||
|
||||
* Streaming `rabbitmqctl`: `rabbitmqctl` list operations now stream results
|
||||
instead of waiting for the entire result set to arrive. This both improves
|
||||
responsiveness and makes it possible to list individual items, including those
|
||||
which did not respond in time.
|
||||
|
||||
GitHub issue: [rabbitmq-server#62](https://github.com/rabbitmq/rabbitmq-server/issues/62)
|
||||
|
||||
* (More) standard exit codes for command line tools
|
||||
|
||||
`rabbitmqctl` and `rabbitmq-plugins` now use more standard, or at least distinctive,
|
||||
error codes for various failures.
|
||||
|
||||
Contributed by Alexey Lebedeff (@binarin).
|
||||
|
||||
GitHub issue: [rabbitmq-server#396](https://github.com/rabbitmq/rabbitmq-server/issues/396)
|
||||
|
||||
* Improved log message for channel exceptions.
|
||||
|
||||
GitHub issues: [rabbitmq-server#416](https://github.com/rabbitmq/rabbitmq-server/issues/416)
|
||||
|
||||
* Improved log message when a client's TCP connection is closed unexpectedly.
|
||||
|
||||
GitHub issue: [rabbitmq-server#60](https://github.com/rabbitmq/rabbitmq-server/issues/60)
|
||||
|
||||
* Improved log message when a client connects to a non-existent vhost
|
||||
|
||||
GitHub issue: [rabbitmq-server#320](https://github.com/rabbitmq/rabbitmq-server/issues/320)
|
||||
|
||||
* Improved log message for `access_refused` connection errors.
|
||||
|
||||
GitHub issue: [rabbitmq-server#418](https://github.com/rabbitmq/rabbitmq-server/issues/418)
|
||||
|
||||
* Improved log message for `command_invalid` connection errors.
|
||||
|
||||
GitHub issue: [rabbitmq-server#419](https://github.com/rabbitmq/rabbitmq-server/issues/419)
|
||||
|
||||
* More sensible error code when a client connects to a non-existent vhost (or vhost it has
|
||||
no permissions for). The code returned is now `530`.
|
||||
|
||||
GitHub issue: [rabbitmq-server#237](https://github.com/rabbitmq/rabbitmq-server/issues/237)
|
||||
|
||||
* Memory monitoring interval is now configurable.
|
||||
|
||||
GitHub issue: [rabbitmq-server#112](https://github.com/rabbitmq/rabbitmq-server/issues/112)
|
||||
|
||||
* Prevent background GC interval from becoming too large due to backoff.
|
||||
|
||||
Contributed by Dallas Marlow (@dallasmarlow).
|
||||
|
||||
GitHub issue: [rabbitmq-server#100](https://github.com/rabbitmq/rabbitmq-server/issues/100)
|
||||
|
||||
* Windows installer now supports "unattended" NSIS installs.
|
||||
|
||||
Contributed by Ryan Zink (@ryanzink).
|
||||
|
||||
GitHub issue: [rabbitmq-server#264](https://github.com/rabbitmq/rabbitmq-server/issues/264)
|
||||
|
||||
* Windows package name now includes RabbitMQ version it provides.
|
||||
|
||||
GitHub issue: [rabbitmq-server#80](https://github.com/rabbitmq/rabbitmq-server/issues/80)
|
||||
|
||||
* `kernel.net_ticktime` is now included into `rabbitmqctl status` output.
|
||||
|
||||
GitHub issue: [rabbitmq-server#63](https://github.com/rabbitmq/rabbitmq-server/issues/63)
|
||||
|
||||
* `rabbitmqctl` now has a command for setting up free disk space limit at runtime.
|
||||
|
||||
GitHub issue: [rabbitmq-server#461](https://github.com/rabbitmq/rabbitmq-server/issues/461)
|
||||
|
||||
* Backup directory location is now mentioned in failed upgrade messages.
|
||||
|
||||
GitHub issue: [rabbitmq-server#169](https://github.com/rabbitmq/rabbitmq-server/issues/169)
|
||||
|
||||
* `rabbit_diagnostics:maybe_stuck/0` now includes date and time in its output.
|
||||
|
||||
GitHub issue: [rabbitmq-server#506](https://github.com/rabbitmq/rabbitmq-server/issues/506)
|
||||
|
||||
#### Other
|
||||
|
||||
* Erlang R16B03 is now required.
|
||||
|
||||
17.5 or 18.x are recommended.
|
||||
|
||||
GitHub issue: [rabbitmq-server#250](https://github.com/rabbitmq/rabbitmq-server/issues/250)
|
||||
|
||||
* Use/support new Erlang/OTP 18 date and time API.
|
||||
|
||||
Only when it is available, of course.
|
||||
|
||||
GitHub issue: [rabbitmq-server#233](https://github.com/rabbitmq/rabbitmq-server/issues/233)
|
||||
|
||||
* RabbitMQ server now supports tracing of credit flow events (e.g. when a process is blocked
|
||||
by credit flow). This is currently a compile-time flag aimed to be used in development
|
||||
environments.
|
||||
|
||||
GitHub issue: [rabbitmq-server#137](https://github.com/rabbitmq/rabbitmq-server/issues/137)
|
||||
|
||||
|
||||
### Java Client
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Shutdown threads can use an executor.
|
||||
|
||||
In environments with very constrainted per-process thread reasources, e.g. basic PaaS plans,
|
||||
temporary threads created during connection shutdown may make the app run over the limit.
|
||||
|
||||
It is now possible to use a user-provided executor for shutdown operations instead.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#87](https://github.com/rabbitmq/rabbitmq-java-client/issues/87)
|
||||
|
||||
* ChannelManager now can use an executor.
|
||||
|
||||
Similar to the above but for `ChannelManager` operations.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#94](https://github.com/rabbitmq/rabbitmq-java-client/issues/94)
|
||||
|
||||
* `Channel#consumerCount(string)` is a new convenience method for retrieving number of consumers on a queue.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#49](https://github.com/rabbitmq/rabbitmq-java-client/issues/49)
|
||||
|
||||
* `Channel#messageCount(string)` is a new convenience method for retrieving number of messages in a queue.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#41](https://github.com/rabbitmq/rabbitmq-java-client/issues/41)
|
||||
|
||||
* `LongString#toString` is part of the API
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#84](https://github.com/rabbitmq/rabbitmq-java-client/issues/84)
|
||||
|
||||
|
||||
### .NET Client
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Host/address list support is back. Host selection strategy (when recovering a connection) is now pluggable.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#81](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/81)
|
||||
|
||||
* Experimental .NET client with Windows RT support is now available.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#16](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/16)
|
||||
|
||||
* SQL CLR compatibility.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#57](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/57)
|
||||
|
||||
* `IModel#ConsumerCount(string)` is a new convenience method for retrieving number of consumers on a queue.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#73](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/73)
|
||||
|
||||
* `IModel#MessageCount(string)` is a new convenience method for retrieving number of messages in a queue.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#74](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/74)
|
||||
|
||||
* Continuation timeout is now configurable.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#80](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/80)
|
||||
|
||||
* `RabbitMQ.Client.Headers` is a new class that contains constants for commonly used headers.
|
||||
|
||||
Contributed by Yury Pliner (@Pliner).
|
||||
|
||||
GitHub issue: [](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/52)
|
||||
|
||||
#### Other
|
||||
|
||||
* .NET 4.5 is now required by the library.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#134](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/134)
|
||||
|
||||
* Code examples are removed from the .NET client repository. All examples belong
|
||||
to `rabbitmq-tutorials` now.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#39](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/39)
|
||||
|
||||
|
||||
|
||||
### Management plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Pagination for connections, channels, exchanges, and queues.
|
||||
|
||||
Management UI now supports pagination, making the UI much more responsive
|
||||
in environments with many connections, queues, etc.
|
||||
|
||||
GitHub issue: [rabbitmq-management#50](https://github.com/rabbitmq/rabbitmq-management/issues/50)
|
||||
|
||||
* Queue information objects in responses now has a boolean property for queue
|
||||
exclusivity instead of a confusing `owner_pid`.
|
||||
|
||||
GitHub issue: [rabbitmq-management#40](https://github.com/rabbitmq/rabbitmq-management/issues/40)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Connection and channel filtering should respect active vhost.
|
||||
|
||||
GitHub issue: [rabbitmq-management#34](https://github.com/rabbitmq/rabbitmq-management/issues/34)
|
||||
|
||||
* GET requests to `/api/queues/{vhost}/{name}/get` now accept/provide `application/json`
|
||||
|
||||
GitHub issue: [rabbitmq-management#46](https://github.com/rabbitmq/rabbitmq-management/issues/46)
|
||||
|
||||
|
||||
### MQTT plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Pluggable retained message stores. Since MQTT 3.1.1 spec doesn't dictate any consistency
|
||||
or availability from the store in clustered environments, we only provide an in-memory implementation
|
||||
suitable for development environments with a single node. For production environments, plugins that
|
||||
provide stores with specific consistency guarantees are expected to be developed.
|
||||
|
||||
GitHub issue: [rabbitmq-mqtt#16](https://github.com/rabbitmq/rabbitmq-mqtt/issues/16)
|
||||
|
||||
* Default subscription (queue) TTL for non-clean sessions is now 24 hours
|
||||
|
||||
GitHub issue: [rabbitmq-mqtt#49](https://github.com/rabbitmq/rabbitmq-mqtt/issues/49)
|
||||
|
||||
* Socket-based authentication plugins now can work with plugins such as MQTT and STOMP
|
||||
(those using direct Erlang client).
|
||||
|
||||
Contributed by Petr Gotthard (@gotthardp).
|
||||
|
||||
GitHub issue: [rabbitmq-server#111](https://github.com/rabbitmq/rabbitmq-server/issues/111)
|
||||
|
||||
|
||||
### STOMP plugin
|
||||
|
||||
#### Enhancement
|
||||
|
||||
* Control over queue properties.
|
||||
|
||||
It is now possible to control queue properties (durable, auto-delete, exclusive plus several
|
||||
supported x-arguments) for all STOMP destinations.
|
||||
|
||||
When using durable topics, it is now necessary to configure queue auto-deletion to `false`
|
||||
explicitly via a header.
|
||||
|
||||
GitHub issue: [rabbitmq-stomp#24](https://github.com/rabbitmq/rabbitmq-stomp/issues/24)
|
||||
|
||||
* Socket-based authentication plugins now can work with plugins such as MQTT and STOMP
|
||||
(those using direct Erlang client).
|
||||
|
||||
Contributed by Petr Gotthard (@gotthardp).
|
||||
|
||||
GitHub issue: [rabbitmq-server#111](https://github.com/rabbitmq/rabbitmq-server/issues/111)
|
||||
|
||||
|
||||
### Web STOMP plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Raw WebSocket endpoint.
|
||||
|
||||
The plugin now supports a new endpoint, `/ws`, which supports WebSocket connections directly
|
||||
without the need to use SockJS.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#17](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/17).
|
||||
|
||||
* Support for binary data streams.
|
||||
|
||||
Thanks to the new direct WebSocket support, binary data now can be transferred over
|
||||
Web STOMP connections.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#19](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/19)
|
||||
|
||||
* STOMP heartbeat support.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#15](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/15)
|
||||
|
||||
* Heartbeats are disabled for SockJS.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#28](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/28)
|
||||
|
||||
* CORS headers support
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#12](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/12)
|
||||
|
||||
* Cowboy configuration.
|
||||
|
||||
Key settings of Cowboy, the HTTP/WebSocket server powering the plugin, now can be fine tuned
|
||||
via this plugin.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#22](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/22)
|
||||
|
||||
* Cowboy is upgraded to `1.0.3`
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#13](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/13)
|
||||
|
||||
* SockJS is upgraded to `1.0.3`.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#4](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/4)
|
||||
|
||||
* Queue parameters now can be configured via headers (just like in the regular STOMP plugin).
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#7](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/7)
|
||||
|
||||
* Address Web STOMP listener binds to now can be configured.
|
||||
Previously only port was configurable.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#2](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/2)
|
||||
|
||||
|
||||
### LDAP plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* LDAP server connections are now pooled. This significantly reduces
|
||||
the load on LDAP servers.
|
||||
|
||||
Contributed by [LShift](http://www.lshift.net).
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-ldap#1](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/1).
|
||||
|
||||
|
||||
|
||||
### Sharding plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Routing key policy is now optional.
|
||||
|
||||
GitHub issue: [rabbitmq-sharding#6](https://github.com/rabbitmq/rabbitmq-sharding/issues/6)
|
||||
|
||||
|
||||
|
||||
### Delayed Message Exchange
|
||||
|
||||
#### Enhancement
|
||||
|
||||
* Initial public release.
|
||||
|
||||
GitHub issue: [rabbitmq-delayed-message-exchange#1](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/issues/1)
|
|
@ -0,0 +1,280 @@
|
|||
## RabbitMQ 3.6.1
|
||||
|
||||
RabbitMQ `3.6.1` is a maintenance release that includes a fix for CVE-2015-8786,
|
||||
a vulnerability in RabbitMQ management plugin.
|
||||
|
||||
### Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Purging a lazy queue could result in an exception
|
||||
|
||||
GitHub issue: [rabbitmq-server#514](https://github.com/rabbitmq/rabbitmq-server/issues/514)
|
||||
|
||||
* Ensure `epmd` is running before starting RabbitMQ node on Windows
|
||||
|
||||
GitHub issue: [rabbitmq-server#625](https://github.com/rabbitmq/rabbitmq-server/issues/625)
|
||||
|
||||
* Channel error could make broker unreachable
|
||||
|
||||
Those errors were misleadingly logged as `channel_termination_timeout`, which
|
||||
the issue really was with unhandled messages from concurrently closed TCP socket process.
|
||||
|
||||
GitHub issue: [rabbitmq-server#530](https://github.com/rabbitmq/rabbitmq-server/issues/530)
|
||||
|
||||
* (Automatic) deletion of an auto-delete queue could lead
|
||||
to blocked channels
|
||||
|
||||
GitHub issue: [rabbitmq-server#581](https://github.com/rabbitmq/rabbitmq-server/issues/581)
|
||||
|
||||
* During (from scratch) queue sync, queue leader node didn't respect mirror alarm state.
|
||||
With large data sets this could drive mirror node out of memory.
|
||||
|
||||
GitHub issue: [rabbitmq-server#616](https://github.com/rabbitmq/rabbitmq-server/issues/616)
|
||||
|
||||
* Changing password for users with non-standard (think broker configuration) password
|
||||
hashing function, for example, those migrated from `3.5.x` releases, didn't update
|
||||
effective hashing function.
|
||||
|
||||
GitHub issue: [rabbitmq-server#623](https://github.com/rabbitmq/rabbitmq-server/issues/623)
|
||||
|
||||
* Heavy and/or prolonged `rabbitmqctl` use could exhaust Erlang VM atom table
|
||||
|
||||
GitHub issue: [rabbitmq-server#549](https://github.com/rabbitmq/rabbitmq-server/issues/549)
|
||||
|
||||
* "Min masters" queue leader location strategy could result
|
||||
in an error.
|
||||
|
||||
GitHub issue: [rabbitmq-server#521](https://github.com/rabbitmq/rabbitmq-server/issues/521)
|
||||
|
||||
* Fixed a race condition in `pause_minority` handling mode.
|
||||
|
||||
GitHub issue: [rabbitmq-server#307](https://github.com/rabbitmq/rabbitmq-server/issues/307)
|
||||
|
||||
* Significantly reduce possibility of a race condition when
|
||||
an exchange is deleted and immediately re-declared, e.g. by a federation
|
||||
link.
|
||||
|
||||
This could result in a link operation being blocked, preventing
|
||||
nodes from stopping.
|
||||
|
||||
GitHub issue: [rabbitmq-federation#7](https://github.com/rabbitmq/rabbitmq-federation/issues/7)
|
||||
|
||||
* `amq.rabbitmq.log` messages now have information about originating
|
||||
node in message headers
|
||||
|
||||
GitHub issue: [rabbitmq-server#595](https://github.com/rabbitmq/rabbitmq-server/issues/595)
|
||||
|
||||
* `scripts/rabbitmq-env` now works with GNU sed 4.2.2
|
||||
|
||||
GitHub issue: [rabbitmq-server#592](https://github.com/rabbitmq/rabbitmq-server/issues/592)
|
||||
|
||||
* Exceptions in VM memory use calculator no longer affect broker startup
|
||||
|
||||
GitHub issue: [rabbitmq-server#328](https://github.com/rabbitmq/rabbitmq-server/issues/328)
|
||||
|
||||
* [Direct Reply-to](https://www.rabbitmq.com/direct-reply-to.html) capability is now advertised to clients
|
||||
|
||||
GitHub issue: [rabbitmq-server#520](https://github.com/rabbitmq/rabbitmq-server/issues/520)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Paths with non-ASCII characters on Windows are now handled
|
||||
|
||||
RabbitMQ now can be installed into a location with non-ASCII characters,
|
||||
e.g. when username contains them.
|
||||
|
||||
GitHub issues: [rabbitmq-server#493](https://github.com/rabbitmq/rabbitmq-server/issues/493)
|
||||
|
||||
* Configurable number of TCP connection acceptors
|
||||
|
||||
Plus a x10 increase of the default. This helps with workloads where connection
|
||||
churn is very high (e.g. all clients are PHP Web apps that cannot maintain
|
||||
long-lived connections).
|
||||
|
||||
GitHub issues: [rabbitmq-server#528](https://github.com/rabbitmq/rabbitmq-server/issues/528)
|
||||
|
||||
* `rabbitmqctl cluster_status` now includes cluster-wide resource alarm status
|
||||
|
||||
GitHub issue: [rabbitmq-server#392](https://github.com/rabbitmq/rabbitmq-server/issues/392)
|
||||
|
||||
* Windows installer no longer jumps over installation log
|
||||
|
||||
GitHub issue: [rabbitmq-server#634](https://github.com/rabbitmq/rabbitmq-server/issues/634)
|
||||
|
||||
* Improved `rabbitmqctl reset` error messages
|
||||
|
||||
GitHub issue: [rabbitmq-server#167](https://github.com/rabbitmq/rabbitmq-server/issues/167)
|
||||
|
||||
* More unsigned field data types are supported.
|
||||
|
||||
GitHub issue: [rabbitmq-server#20](https://github.com/rabbitmq/rabbitmq-server/issues/20)
|
||||
|
||||
|
||||
|
||||
### Java client
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Endpoints (hostnames) are now also accepted as a `java.util.List`
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#125](https://github.com/rabbitmq/rabbitmq-java-client/issues/125)
|
||||
|
||||
* Autorecovering connections now shuffle hosts in a more
|
||||
reliable way
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#124](https://github.com/rabbitmq/rabbitmq-java-client/issues/124)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Binding recovery could fail
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#129](https://github.com/rabbitmq/rabbitmq-java-client/issues/129)
|
||||
|
||||
* `Channel.queueDelete` could throw a `NullPointerException`
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#120](https://github.com/rabbitmq/rabbitmq-java-client/issues/120)
|
||||
|
||||
|
||||
|
||||
### .NET client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Autorecovering connections now use full list of provided hostnames
|
||||
during recovery
|
||||
|
||||
GitHub issues: [rabbitmq-dotnet-client#153](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/153)
|
||||
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Significantly reduce possibility of a race condition when
|
||||
an exchange is deleted and immediately re-declared, e.g. by a federation
|
||||
link
|
||||
|
||||
This rendered federation links dysfunctional.
|
||||
|
||||
GitHub issue: [rabbitmq-federation#7](https://github.com/rabbitmq/rabbitmq-federation/issues/7)
|
||||
|
||||
|
||||
|
||||
### Management plugin
|
||||
|
||||
#### Vulnerability Fixes
|
||||
|
||||
* CVE-2015-8786: user-provided query parameters `lengths_age` and `lengths_incr` had no validation
|
||||
and could be used to exhaust server resources.
|
||||
|
||||
The attacker needs to have access to HTTP API (authenticate successfully and have sufficient
|
||||
tags to pass authorisation) in order to carry out the attack.
|
||||
|
||||
There is no workaround for earlier releases.
|
||||
|
||||
Kudos to Vladimir Ivanov (Positive Technologies) for the responsible disclosure.
|
||||
|
||||
GitHub issue: [rabbitmq-management#97](https://github.com/rabbitmq/rabbitmq-management/issues/97)
|
||||
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Password hashing function is now included in exported definitions
|
||||
|
||||
Those upgrading from versions earlier than `3.6.0` via definitions export
|
||||
won't have to temporarily set hashing function to MD5 to ensure export succeeds.
|
||||
|
||||
GitHub issue: [rabbitmq-management#117](https://github.com/rabbitmq/rabbitmq-management/issues/117)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Internet Explorer (9+) compatibility restored
|
||||
|
||||
GitHub issue: [rabbitmq-management#98](https://github.com/rabbitmq/rabbitmq-management/issues/98)
|
||||
|
||||
* Internet Explorer 11 compatibility fixes
|
||||
|
||||
GitHub issues: [rabbitmq-management#112](https://github.com/rabbitmq/rabbitmq-management/issues/112),
|
||||
[rabbitmq-management#114](https://github.com/rabbitmq/rabbitmq-management/issues/114)
|
||||
|
||||
* When policy fails to be created with invalid paramaters a sensible
|
||||
error message will be displayed.
|
||||
|
||||
GitHub issue: [rabbitmq-management#110](https://github.com/rabbitmq/rabbitmq-management/issues/110)
|
||||
|
||||
|
||||
### Federation Management plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Federation link form now includes more settings (that are exchange- and queue-federation specific)
|
||||
|
||||
GitHub issue: [rabbitmq-federation-management#5](https://github.com/rabbitmq/rabbitmq-federation-management/issues/5)
|
||||
|
||||
|
||||
### Erlang client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `password` and `depth` query parameters are now propagated to TLS options
|
||||
|
||||
GitHub issue: [rabbitmq-erlang-client#36](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/36)
|
||||
|
||||
|
||||
### STOMP plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `durable` and `persistent` headers weren't always used interchangeably,
|
||||
leading to non-durable subscriptions
|
||||
|
||||
GitHub issue: [rabbitmq-stomp#58](https://github.com/rabbitmq/rabbitmq-stomp/issues/58)
|
||||
|
||||
* Client heartbeat timeouts resulted in confusing error messages
|
||||
in broker log.
|
||||
|
||||
GitHub issues: [rabbitmq-stomp#63](https://github.com/rabbitmq/rabbitmq-stomp/issues/63)
|
||||
|
||||
|
||||
### Web STOMP plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Cowboy options are now supported for TLS listeners.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#36](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/36)
|
||||
|
||||
|
||||
### Web STOMP Examples plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Multi-byte UTF-8 characters are now handled
|
||||
by the bundled version of stomp.js.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp-examples#2](https://github.com/rabbitmq/rabbitmq-web-stomp-examples/issues/2)
|
||||
|
||||
|
||||
### Event Exchange plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Event timestamps are now in seconds, not milliseconds
|
||||
|
||||
Per AMQP 0-9-1 spec. This is not a particularly great choice for events,
|
||||
so we will add an optional header with millisecond precision in a future release.
|
||||
|
||||
GitHub issue: [rabbitmq-event-exchange#8](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/8)
|
||||
|
||||
|
||||
### JSON RPC plugin
|
||||
|
||||
Note: this plugin is deprecated and its use is highly discouraged.
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* RabbitmQ `3.6.x` support.
|
||||
|
||||
GitHub issue: [rabbitmq-jsonrpc#3](https://github.com/rabbitmq/rabbitmq-jsonrpc/issues/3)
|
|
@ -0,0 +1,183 @@
|
|||
## RabbitMQ 3.6.10
|
||||
|
||||
RabbitMQ `3.6.10` is a maintenance release.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
|
||||
for general documentation on upgrades.
|
||||
|
||||
:warning: This release introduces stricter validation for `rabbitmq_management_agent.sample_retention_policies` values.
|
||||
In case your installation overrides default sample retention policies, please make sure to read
|
||||
the discussion in [rabbitmq-management-agent#41](https://github.com/rabbitmq/rabbitmq-management-agent/issues/41) before
|
||||
upgrading to make sure your configuration passes validation.
|
||||
|
||||
This release has no other known incompatibilities with versions 3.6.7 through 3.6.9. See [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7)
|
||||
upgrade and compatibility notes if upgrading from an earlier release.
|
||||
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl wait` exited with the status code of 0 when node stopped because it could
|
||||
not contact any cluster peers to [re-]join.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1214](https://github.com/rabbitmq/rabbitmq-server/issues/1214)
|
||||
|
||||
* `rabbitmqctl forget_cluster_node` used in offline mode could result in promotion of a node that's no longer a cluster member.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1213](https://github.com/rabbitmq/rabbitmq-server/issues/1213)
|
||||
|
||||
* Queue status (e.g. `running` vs. `idle`) was reported incorrectly in some cases.
|
||||
|
||||
GitHub issue: [rabbitmq-common#196](https://github.com/rabbitmq/rabbitmq-common/issues/196)
|
||||
|
||||
* queue leader locator could not be set using optional queue arguments (`x-arguments`).
|
||||
|
||||
GitHub issue: [rabbitmq-server#1172](https://github.com/rabbitmq/rabbitmq-server/issues/1172)
|
||||
|
||||
* CLI tool (e.g. `rabbitmqctl`) man pages were not rendered correctly.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1180](https://github.com/rabbitmq/rabbitmq-server/issues/1180)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Disk space monitor will periodically retry (every 2 minutes by default, up to 10 times)
|
||||
before going into disabled state as external tools used to monitor available disk space
|
||||
can fail or produce unexpected output temporarily.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1178](https://github.com/rabbitmq/rabbitmq-server/issues/1178)
|
||||
|
||||
* Memory relative free disk space limits now support integer values as well as floats.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1194](https://github.com/rabbitmq/rabbitmq-server/issues/1194)
|
||||
|
||||
|
||||
### Management and Management Agent Plugins
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* TLS-related settings in HTTP API listeners could break JSON serialisation for the `GET /api/overview` endpoint.
|
||||
|
||||
GitHub issue: [rabbitmq-management#393](https://github.com/rabbitmq/rabbitmq-management/issues/393)
|
||||
|
||||
* Non-numerical values for numerical stats are now handled safety by stats aggregation. For example, if
|
||||
free disk space monitor had to stop reporting data because it could not parse external tool output
|
||||
that would break HTTP API `GET /api/overview` responses.
|
||||
|
||||
GitHub issue: [rabbitmq-management#375](https://github.com/rabbitmq/rabbitmq-management/issues/375).
|
||||
|
||||
* Stats are no longer emitted for connections that are not considered to be in the fully initialised
|
||||
state.
|
||||
|
||||
GitHub issue: [rabbitmq-management-agent#42](https://github.com/rabbitmq/rabbitmq-management-agent/issues/42)
|
||||
|
||||
* `POST` requests now instruct clients to close TCP connections.
|
||||
|
||||
In some popular browsers (Chrome, Internet Explorer) a `POST` request followed by an immediate `GET` request
|
||||
would result in a 400 response. Other browsers do no exhibit this behaviour.
|
||||
|
||||
GitHub issue: [rabbitmq-management#377](https://github.com/rabbitmq/rabbitmq-management/issues/377)
|
||||
|
||||
* I/O average time per operation graph didn't match the legend.
|
||||
|
||||
GitHub issue: [rabbitmq-management#384](https://github.com/rabbitmq/rabbitmq-management/issues/384)
|
||||
|
||||
* Definitions import and export forms are now separte to reduce the chance of user confusion.
|
||||
|
||||
GitHub issue: [rabbitmq-management#389](https://github.com/rabbitmq/rabbitmq-management/issues/389)
|
||||
|
||||
* Sample retention policies are now validated more strictly to avoid configurations that
|
||||
are not supported and will lead to exceptions.
|
||||
|
||||
GitHub issue: [rabbitmq-management-agent#41](https://github.com/rabbitmq/rabbitmq-management-agent/issues/41)
|
||||
|
||||
* Certain stats for connections were not initialised as numerical values, which resulted in log noise.
|
||||
|
||||
GitHub issue: [rabbitmq-management-agent#45](https://github.com/rabbitmq/rabbitmq-management-agent/issues/45)
|
||||
|
||||
* UI operation for binding deletion did not respect optional (extra) binding arguments.
|
||||
|
||||
GitHub issue: [rabbitmq-management#243](https://github.com/rabbitmq/rabbitmq-management/issues/243)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Current virtual host is pre-selected on the "Add/update policy" form.
|
||||
|
||||
GitHub issue: [rabbitmq-management#382](https://github.com/rabbitmq/rabbitmq-management/issues/382)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* A non-initialized connection (e.g. one that failed early because client-provided
|
||||
payload wasn't a valid MQTT payload) produced a crash report log entry during termination.
|
||||
|
||||
GitHub issue: [rabbitmq-mqtt#134](https://github.com/rabbitmq/rabbitmq-mqtt/issues/134)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Stale connection purging in LDAP connection pool could fail
|
||||
with a `badmatch`.
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-ldap#66](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/66)
|
||||
|
||||
|
||||
### Trust Store Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Certificate change detection algorithm no longer uses `stat(2)` on certificate directory because
|
||||
of its limitations that could lead to undetected changes in certain scenarios.
|
||||
|
||||
GitHub issue: [rabbitmq-trust-store#58](https://github.com/rabbitmq/rabbitmq-trust-store/issues/58)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin failed to start after being stopped and re-enabled.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#72](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/72)
|
||||
|
||||
* Server-initiated [consumer cancellation](https://www.rabbitmq.com/consumer-cancel.html) failed with
|
||||
an exception.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#75](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/75)
|
||||
|
||||
|
||||
### Top Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Node selection control used the wrong HTTP API path.
|
||||
|
||||
GitHub issue: [rabbitmq-top#15](https://github.com/rabbitmq/rabbitmq-top/issues/15)
|
||||
|
||||
|
||||
### Management Visualiser Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin wasn't compatible with recent `3.6.x` releases.
|
||||
|
||||
GitHub issue: [rabbitmq-management-visualiser#8](https://github.com/rabbitmq/rabbitmq-management-visualiser/issues/8)
|
||||
|
||||
|
||||
|
||||
## 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.10.tar.gz`.
|
|
@ -0,0 +1,236 @@
|
|||
## RabbitMQ 3.6.11
|
||||
|
||||
RabbitMQ `3.6.11` is a maintenance release.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
|
||||
for general documentation on upgrades.
|
||||
|
||||
⚠️ This release [changes how nodes compute the amount of RAM they use](https://groups.google.com/forum/#!topic/rabbitmq-users/TVZt45O3WzU) (and report). Previously the value was underreported.
|
||||
We recommend monitoring — or at least manually sampling — the [RSS of
|
||||
the Erlang VM](http://www.linfo.org/ps.html) running RabbitMQ, comparing it to the value reported in the management UI
|
||||
to compute the delta. Then adjust configured [VM high memory watermark](https://www.rabbitmq.com/alarms.html) an
|
||||
possibly provisioning more RAM as needed.
|
||||
|
||||
This release has no other known incompatibilities with versions 3.6.7 through 3.6.10.
|
||||
See the upgrade and compatibility sections in the [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) if upgrading from an earlier release.
|
||||
|
||||
⚠️ This is the first release that [supports Erlang/OTP 20](https://groups.google.com/forum/#!searchin/rabbitmq-users/OTP$2020%7Csort:relevance/rabbitmq-users/_imbAavBYjY/ninEKhMYAgAJ).
|
||||
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Node RAM consumption calculation strategy [has changed](https://groups.google.com/forum/#!topic/rabbitmq-users/TVZt45O3WzU)
|
||||
to a more precise one. Previously the value **was underreported**. It is possible to switch to the behavior in earlier versions
|
||||
if desired. This will **affect monitoring charts** and possibly **require bumping VM memory high watermark**
|
||||
or provisioning more RAM.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1223](https://github.com/rabbitmq/rabbitmq-server/issues/1223), [rabbitmq-server#1270](https://github.com/rabbitmq/rabbitmq-server/pull/1270)
|
||||
|
||||
|
||||
* Erlang/OTP 20 is [now supported](https://groups.google.com/forum/#!searchin/rabbitmq-users/OTP$2020%7Csort:relevance/rabbitmq-users/_imbAavBYjY/ninEKhMYAgAJ).
|
||||
|
||||
GitHub issues: [rabbitmq-server#1243](https://github.com/rabbitmq/rabbitmq-server/issues/1243), [rabbitmq-server#1246](https://github.com/rabbitmq/rabbitmq-server/pull/1246), [rabbitmq-federation#58](https://github.com/rabbitmq/rabbitmq-federation/pull/58), [rabbitmq-management-agent#47](https://github.com/rabbitmq/rabbitmq-management-agent/pull/47), [rabbitmq-management#415](https://github.com/rabbitmq/rabbitmq-management/pull/415), [rabbitmq-stomp#115](https://github.com/rabbitmq/rabbitmq-stomp/issues/115)
|
||||
|
||||
* `supervisor2`: supervisor could fail to restart failed child processes in some cases.
|
||||
This could affect multiple plugins, e.g. federation.
|
||||
|
||||
Contributed by Aliaksey Artamonau (Couchbase).
|
||||
|
||||
GitHub issues: [rabbitmq-common#201](https://github.com/rabbitmq/rabbitmq-common/pull/201),
|
||||
[rabbitmq-server#1238](https://github.com/rabbitmq/rabbitmq-server/pull/1238)
|
||||
|
||||
* Memory used by binary heap ("binaries") was reduced for some scenarios that involve mirrored queues.
|
||||
|
||||
GitHub issue: [rabbitmq-common#208](https://github.com/rabbitmq/rabbitmq-common/issues/208)
|
||||
|
||||
* Exclusive queues were not cleaned up when node failed or was considered unavailable by one of its
|
||||
peers.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1323](https://github.com/rabbitmq/rabbitmq-server/issues/1323)
|
||||
|
||||
* `rabbitmq-service.bat start` and `rabbitmq-service.bat stop` did not report access violation
|
||||
errors.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1324](https://github.com/rabbitmq/rabbitmq-server/issues/1324)
|
||||
|
||||
* When high VM memory watermarked is set to a value greater than 1.0,
|
||||
`1.0` will be used as effective value now instead of the default (`0.4`).
|
||||
|
||||
GitHub issue: [rabbitmq-server#1285](https://github.com/rabbitmq/rabbitmq-server/issues/1285)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Total amount of RAM as seen by a node now can be overridden via config file.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1224](https://github.com/rabbitmq/rabbitmq-server/issues/1224)
|
||||
|
||||
* Default value of `RABBITMQ_DISTRIBUTION_BUFFER_SIZE` is now `128000`. This makes inter-node communication
|
||||
throughput more stable on 1 GBbit/s (or greater) network links.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1306](https://github.com/rabbitmq/rabbitmq-server/issues/1306)
|
||||
|
||||
* Plugins that are already expanded (unarhived from `.ez` archives on node boot) won't be
|
||||
expanded again.
|
||||
|
||||
Contributed by Alex Lebedeff (Mirantis).
|
||||
|
||||
GitHub issue: [rabbitmq-server#1226](https://github.com/rabbitmq/rabbitmq-server/pull/1226)
|
||||
|
||||
|
||||
### Management plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Listing queues, exchanges, vhosts via HTTP API is now more efficient for common cases
|
||||
(e.g. when pagination is not used or only a subset of fields is requested).
|
||||
|
||||
GitHub issue: [rabbitmq-management#402](https://github.com/rabbitmq/rabbitmq-management/issues/402)
|
||||
|
||||
* Inter-node cluster link traffic information was missing.
|
||||
|
||||
GitHub issue: [rabbitmq-management#434](https://github.com/rabbitmq/rabbitmq-management/issues/434)
|
||||
|
||||
* Exclusive queues didn't have feature markers in the UI.
|
||||
|
||||
GitHub issue: [rabbitmq-management#459](https://github.com/rabbitmq/rabbitmq-management/issues/459)
|
||||
|
||||
* queue leader locator now has a feature marker in the UI.
|
||||
|
||||
GitHub issue: [rabbitmq-management#468](https://github.com/rabbitmq/rabbitmq-management/pull/468)
|
||||
|
||||
* It is now possible to pre-configure user permission at the time of its creation.
|
||||
|
||||
GitHub issue: [rabbitmq-management#441](https://github.com/rabbitmq/rabbitmq-management/issues/441)
|
||||
|
||||
* `rabbitmqadmin` now supports `--ssl-insecure` (`-k`), serving the same purpose as `-k` in curl
|
||||
|
||||
GitHub issue: [rabbitmq-management#452](https://github.com/rabbitmq/rabbitmq-management/issues/452)
|
||||
|
||||
* `rabbitmqadmin` now supports setting HTTP API endpoint hostname, port, username, and password
|
||||
using a URI.
|
||||
|
||||
GitHub issue: [rabbitmq-management#437](https://github.com/rabbitmq/rabbitmq-management/issues/437)
|
||||
|
||||
* HTTP API requests now are less likely to produce log noise.
|
||||
|
||||
GitHub issue: [rabbitmq-web-dispatch#27](https://github.com/rabbitmq/rabbitmq-web-dispatch/issues/27)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* queue leader migration no longer leaves statistics database records behind.
|
||||
|
||||
GitHub issue: [rabbitmq-management#427](https://github.com/rabbitmq/rabbitmq-management/issues/427)
|
||||
|
||||
* Consumer argument serialisation to JSON was fixed.
|
||||
|
||||
GitHub issue: [rabbitmq-management#424](https://github.com/rabbitmq/rabbitmq-management/issues/424)
|
||||
|
||||
* It is now again possible to create a user without a password (or password hash).
|
||||
Such users won't be able to sign in with [internal authentication backend](https://www.rabbitmq.com/access-control.html)
|
||||
but can be used with external authentication mechanisms (x509 certificates) and backends
|
||||
(LDAP, HTTP, etc).
|
||||
|
||||
GitHib issue: [rabbitmq-management#383](https://github.com/rabbitmq/rabbitmq-management/issues/383)
|
||||
|
||||
* Pagination combined with a user-provided set of columns returned no results.
|
||||
|
||||
GitHub issue: [rabbitmq-management#404](https://github.com/rabbitmq/rabbitmq-management/issues/404)
|
||||
|
||||
* Regular expressions used for filtering were not correctly escaped.
|
||||
|
||||
GitHub issue: [rabbitmq-management#419](https://github.com/rabbitmq/rabbitmq-management/issues/419)
|
||||
|
||||
* `rabbitmqadmin` now handles float rates.
|
||||
|
||||
GitHub issue: [rabbitmq-management#457](https://github.com/rabbitmq/rabbitmq-management/issues/457)
|
||||
|
||||
* `rabbitmqadmin` now ignores `SIGPIPE` signals and much less likely to terminate when its output is piped to
|
||||
another process.
|
||||
|
||||
GitHub issue: [rabbitmq-management#438](https://github.com/rabbitmq/rabbitmq-management/issues/438)
|
||||
|
||||
* HTTP requests with unintialised fields are less likely to crash log event handler.
|
||||
|
||||
GitHub issue: [rabbitmq-web-dispatch#27](https://github.com/rabbitmq/rabbitmq-web-dispatch/issues/27)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Federation links now recover better in certain scenarios, e.g. when one side of a link could be reset.
|
||||
|
||||
GitHub issue: [rabbitmq-federation#59](https://github.com/rabbitmq/rabbitmq-federation/issues/59)
|
||||
|
||||
|
||||
### STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Erlang/OTP 20 is [now supported](https://groups.google.com/forum/#!searchin/rabbitmq-users/OTP$2020%7Csort:relevance/rabbitmq-users/_imbAavBYjY/ninEKhMYAgAJ).
|
||||
|
||||
GitHub issue: [rabbitmq-stomp#115](https://github.com/rabbitmq/rabbitmq-stomp/issues/115)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* No-op MQTT message retainer.
|
||||
|
||||
GitHub issue: [rabbitmq-mqtt#136](https://github.com/rabbitmq/rabbitmq-mqtt/issues/136)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* MQTT connection processes now use connection log level.
|
||||
|
||||
GitHub issue: [rabbitmq-mqtt#142](https://github.com/rabbitmq/rabbitmq-mqtt/issues/142)
|
||||
|
||||
|
||||
### Consistent Hashing Exchange
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Bucket distribution is now consistent (doesn't change) between plugin and node restarts
|
||||
(assuming bindings haven't changed).
|
||||
|
||||
GitHub issue: [rabbitmq-consistent-hash-exchange#32](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/issues/32)
|
||||
|
||||
|
||||
### Top Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmq-top` now gracefully covers scenarios when it is enabled only on a subset of cluster nodes.
|
||||
|
||||
GitHub issue: [rabbitmq-top#23](https://github.com/rabbitmq/rabbitmq-top/issues/23)
|
||||
|
||||
* Node drop down on ETS table tab redirected to the processes tab.
|
||||
|
||||
GitHub issue: [rabbitmq-top#24](https://github.com/rabbitmq/rabbitmq-top/issues/24)
|
||||
|
||||
|
||||
### Message Timestamp Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Timestamp in milliseconds is also injected as a header (unless the header is present).
|
||||
|
||||
GitHub issue: [rabbitmq-message-timestamp#16](https://github.com/rabbitmq/rabbitmq-message-timestamp/issues/16)
|
||||
|
||||
|
||||
## 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.11.tar.gz`.
|
|
@ -0,0 +1,67 @@
|
|||
## RabbitMQ 3.6.12
|
||||
|
||||
RabbitMQ `3.6.12` is a maintenance release.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
|
||||
for general documentation on upgrades.
|
||||
|
||||
This release has no other known incompatibilities with versions 3.6.7 through 3.6.11.
|
||||
See the upgrade and compatibility sections in the [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) if upgrading from an earlier release.
|
||||
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Process responsible for running the autoheal partition handling strategy
|
||||
could run into a deadlock with its peers, preventing autoheal from completing.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1346](https://github.com/rabbitmq/rabbitmq-server/issues/1346)
|
||||
|
||||
* Garbage collection of mirrored queue metrics on nodes that did not
|
||||
host a leader or mirror for a queue affected delivery and acknowledgement rates.
|
||||
This could result in rates being 0 or negative when they should not be.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1340](https://github.com/rabbitmq/rabbitmq-server/issues/1340)
|
||||
|
||||
* Stats emission could prevent queue mirrors from performing garbage collection
|
||||
and consume memory even when they were empty.
|
||||
|
||||
GitHub issue: [rabbitmq-common#220](https://github.com/rabbitmq/rabbitmq-common/pull/220) (continuation to [rabbitmq-common#196](https://github.com/rabbitmq/rabbitmq-common/issues/196))
|
||||
|
||||
* `RABBITMQ_SCHEDULER_BIND_TYPE` and `RABBITMQ_DISTRIBUTION_BUFFER_SIZE` now can be set via `rabbitmq-env.conf`.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1338](https://github.com/rabbitmq/rabbitmq-server/issues/1338)
|
||||
|
||||
|
||||
### Shovel Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Passwords in source and destination URIs are now redacted out.
|
||||
|
||||
GitHub issue: [rabbitmq-federation-management#15](https://github.com/rabbitmq/rabbitmq-federation-management/issues/15)
|
||||
|
||||
|
||||
### Federation Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Passwords in upstream URIs are now redacted out.
|
||||
|
||||
GitHub issue: [rabbitmq-federation-management#15](https://github.com/rabbitmq/rabbitmq-federation-management/issues/15)
|
||||
|
||||
|
||||
## 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.12.tar.gz`.
|
|
@ -0,0 +1,119 @@
|
|||
## RabbitMQ 3.6.13
|
||||
|
||||
RabbitMQ `3.6.13` is a maintenance release.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
|
||||
for general documentation on upgrades.
|
||||
|
||||
This release has no known incompatibilities with versions 3.6.7 through 3.6.12.
|
||||
See the upgrade and compatibility sections in the [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) if upgrading from an earlier release.
|
||||
|
||||
### 3.6.x Series Support Timeline
|
||||
|
||||
Please read this node on [RabbitMQ 3.6.x series support timeline](https://groups.google.com/forum/#!msg/rabbitmq-users/kXkI-f3pgEw/UFowJIK4BQAJ).
|
||||
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Memory usage monitor uses subprocesses a lot more sparingly. They are started
|
||||
roughly once a second or not started at all, depending on the strategy (e.g. on Windows
|
||||
Erlang VM allocator information is used instead).
|
||||
|
||||
GitHub issues: [rabbitmq-server#1343](https://github.com/rabbitmq/rabbitmq-server/issues/1343), [rabbitmq-common#224](https://github.com/rabbitmq/rabbitmq-common/issues/224)
|
||||
|
||||
* Very busy queues are now more efficient at prioritizing consumers, avoiding
|
||||
consumer delivery blocking when relatively long running operations (e.g. bulk flushing
|
||||
of transient messages to disk) happen.
|
||||
|
||||
GitHub issues: [rabbitmq-server#1388](https://github.com/rabbitmq/rabbitmq-server/pull/1388), [rabbitmq-server#1407](https://github.com/rabbitmq/rabbitmq-server/pull/1407)
|
||||
|
||||
* queue leader strategies now take additional queue HA arguments into account.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1371](https://github.com/rabbitmq/rabbitmq-server/issues/1371)
|
||||
|
||||
* Logging to standard output using `RABBITMQ_LOGS=-` wasn't possible on Windows.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1348](https://github.com/rabbitmq/rabbitmq-server/issues/1348)
|
||||
|
||||
* queue leader locator name now can be specified as Erlang strings.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1411](https://github.com/rabbitmq/rabbitmq-server/issues/1411)
|
||||
|
||||
* Direct Erlang client connections could fail with obscure messages when
|
||||
target node was still booting.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1356](https://github.com/rabbitmq/rabbitmq-server/issues/1356)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `supervisor2` now can be used in environments that perform hot code upgrades.
|
||||
|
||||
GitHub issue: [rabbitmq-common#230](https://github.com/rabbitmq/rabbitmq-common/pull/230)
|
||||
|
||||
* systemd service file now white lists exit code 69.
|
||||
|
||||
GitHub issue: [rabbitmq-server-release#51](https://github.com/rabbitmq/rabbitmq-server-release/issues/51)
|
||||
|
||||
* Example systemd service file now includes service restart settings.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1359](https://github.com/rabbitmq/rabbitmq-server/issues/1359)
|
||||
|
||||
* queue leader locator strategy now can be configured using strings.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1411](https://github.com/rabbitmq/rabbitmq-server/issues/1411)
|
||||
|
||||
* Plugin activation avoids logs things that can be confusing.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1364](https://github.com/rabbitmq/rabbitmq-server/issues/1364)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Minor efficiency improvements around stats collection.
|
||||
|
||||
GitHub issues: [rabbitmq-common#235](https://github.com/rabbitmq/rabbitmq-common/pull/235)
|
||||
|
||||
* jQuery upgraded to 1.12.4.
|
||||
|
||||
GitHub issue: [rabbitmq-management#502](https://github.com/rabbitmq/rabbitmq-management/pull/502)
|
||||
|
||||
* UI improvements.
|
||||
|
||||
* More detailed memory use breakdown on the node page.
|
||||
|
||||
GitHub issue: [rabbitmq-management#500](https://github.com/rabbitmq/rabbitmq-management/pull/500)
|
||||
|
||||
* It is now possible to configure an HTTP API path prefix for the plugin.
|
||||
|
||||
GitHub issue: [rabbitmq-management#481](https://github.com/rabbitmq/rabbitmq-management/issues/481)
|
||||
|
||||
* Queue details page no longer truncates node name.
|
||||
|
||||
GitHub issue: [rabbitmq-management#473](https://github.com/rabbitmq/rabbitmq-management/issues/473)
|
||||
|
||||
* Policy name in queue and exchange info is now a link.
|
||||
|
||||
GitHub issue: [rabbitmq-management#493](https://github.com/rabbitmq/rabbitmq-management/issues/493)
|
||||
|
||||
* `DELETE /api/connections/{name}` is now more defensive.
|
||||
|
||||
GitHub issue: [rabbitmq-management#497](https://github.com/rabbitmq/rabbitmq-management/issues/497)
|
||||
|
||||
|
||||
## 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.13.tar.gz`.
|
|
@ -0,0 +1,48 @@
|
|||
## RabbitMQ 3.6.14
|
||||
|
||||
RabbitMQ `3.6.14` is a maintenance release that primarily fixes an issue in systemd
|
||||
unit files that affected some systems. It is virtually identical to [3.6.13](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_13)
|
||||
otherwise.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
|
||||
for general documentation on upgrades.
|
||||
|
||||
This release has no known incompatibilities with versions 3.6.7 through 3.6.13.
|
||||
See the upgrade and compatibility sections in the [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) if upgrading from an earlier release.
|
||||
|
||||
### 3.6.x Series Support Timeline
|
||||
|
||||
Please read this node on [RabbitMQ 3.6.x series support timeline](https://groups.google.com/forum/#!msg/rabbitmq-users/kXkI-f3pgEw/UFowJIK4BQAJ).
|
||||
|
||||
|
||||
### Debian and RPM packages
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* systemd service unit no longer has trailing comments that could lead nodes
|
||||
into restart loops on some systems.
|
||||
|
||||
GitHub issues: [rabbitmq-server#1422](https://github.com/rabbitmq/rabbitmq-server/issues/1422)
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fix
|
||||
|
||||
* Expandable sections on node metrics page failed to expand.
|
||||
|
||||
GitHub issues: [rabbitmq-management#507](https://github.com/rabbitmq/rabbitmq-management/issues/507)
|
||||
|
||||
|
||||
## 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.13.tar.gz`.
|
|
@ -0,0 +1,142 @@
|
|||
## RabbitMQ 3.6.15
|
||||
|
||||
RabbitMQ 3.6.15 is a maintenance release.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
See the ["Upgrading clusters" section of the
|
||||
documentation](https://www.rabbitmq.com/upgrade.html) for general
|
||||
documentation on upgrades.
|
||||
|
||||
This release has no known incompatibilities with versions 3.6.7 through
|
||||
3.6.14. See the upgrade and compatibility sections in the [3.6.7 release
|
||||
notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7)
|
||||
if upgrading from an earlier release.
|
||||
|
||||
### 3.6.x Series Support Timeline
|
||||
|
||||
Please read this node on [RabbitMQ 3.6.x series support
|
||||
timeline](https://groups.google.com/forum/#!msg/rabbitmq-users/kXkI-f3pgEw/UFowJIK4BQAJ).
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Avoid infinite loop when dropping entries in the GM.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1431](https://github.com/rabbitmq/rabbitmq-server/pull/1431)
|
||||
|
||||
* Various changes to the OCF scripts.
|
||||
|
||||
GitHub issues: [rabbitmq-server-release#66](https://github.com/rabbitmq/rabbitmq-server-release/pull/66),
|
||||
[rabbitmq-server-release#67](https://github.com/rabbitmq/rabbitmq-server-release/pull/67),
|
||||
[rabbitmq-server-release#73](https://github.com/rabbitmq/rabbitmq-server-release/pull/73)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [Internal authN backend](https://www.rabbitmq.com/access-control.html) will now prohibit logins with a blank passwords. Such attempts
|
||||
are usually made by mistake because a passwordless user that was meant to authenticate
|
||||
using [x509 (TLS) certificates](https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl/) was not configured to use the correct [authentication
|
||||
mechanism](https://www.rabbitmq.com/authentication.html).
|
||||
|
||||
Note that the same behavior can already be achieved using a [credential validator](https://www.rabbitmq.com/passwords.html),
|
||||
so this is just an extra safety measure.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1466](https://github.com/rabbitmq/rabbitmq-server/pull/1466)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Multi-input forms (such as message properties) again submit all fields.
|
||||
|
||||
GitHub issues: [rabbitmq-management#511](https://github.com/rabbitmq/rabbitmq-management/issues/511)
|
||||
|
||||
* User update form now successfully updates tags for passwordless users (or if the password is cleared at the same time).
|
||||
|
||||
GitHub issue: [rabbitmq-management#533](https://github.com/rabbitmq/rabbitmq-management/issues/533)
|
||||
|
||||
* `Content-Type` header was returned twice in API responses.
|
||||
|
||||
GitHub issue: [rabbitmq-management#527](https://github.com/rabbitmq/rabbitmq-management/issues/527)
|
||||
|
||||
* Avoid duplicated event handlers in the UI.
|
||||
|
||||
GitHub issue: [rabbitmq-management#516](https://github.com/rabbitmq/rabbitmq-management/pull/516)
|
||||
|
||||
* Use `auto` width to make option values fully visible.
|
||||
|
||||
GitHub issue: [rabbitmq-management#519](https://github.com/rabbitmq/rabbitmq-management/issues/519)
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Concurrently registering consumers could fail with a "Key exists" exception in the log.
|
||||
|
||||
GitHub issue: [rabbitmq-mqtt#132](https://github.com/rabbitmq/rabbitmq-mqtt/issues/132)
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Disabling policy (or plugin) now cleans up all internal exchanges and queues used by federation links.
|
||||
|
||||
GitHub issue: [rabbitmq-federation#63](https://github.com/rabbitmq/rabbitmq-federation/issues/63)
|
||||
|
||||
### Standalone MacOS Package
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Standalone MacOS package now ships with Erlang/OTP 20.1 which is compatible with High Sierra.
|
||||
|
||||
GitHub issue: [rabbitmq-server-release#68](https://github.com/rabbitmq/rabbitmq-server-release/issues/68)
|
||||
|
||||
### Debian Package
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Make adm the group owner for RabbitMQ log directories.
|
||||
|
||||
GitHub issue: [rabbitmq-server-release#70](https://github.com/rabbitmq/rabbitmq-server-release/pull/70)
|
||||
|
||||
### Web MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `https/web-mqtt` listener displayed incorrect port in management UI.
|
||||
|
||||
GitHub issue: [rabbitmq-web-mqtt#25](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/25)
|
||||
|
||||
### Top Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Fix node and row selectors after jQuery upgrade to 1.12.
|
||||
|
||||
GitHub issue: [rabbitmq-top#29](https://github.com/rabbitmq/rabbitmq-top/pull/29)
|
||||
|
||||
### Erlang Client
|
||||
|
||||
#### Buf Fixes
|
||||
|
||||
* Enable hostname verification for OTP 19.
|
||||
|
||||
GitHub issue: [rabbitmq-erlang-client#95](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/95)
|
||||
|
||||
## 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-server-3.6.15.tar.xz`.
|
|
@ -0,0 +1,143 @@
|
|||
## RabbitMQ 3.6.16
|
||||
|
||||
RabbitMQ 3.6.16 is a maintenance release that primarily includes selected backports from
|
||||
the [3.7.x series](https://www.rabbitmq.com/changelog.html). Users of earlier 3.6.x releases
|
||||
are recommended to [upgrade](https://www.rabbitmq.com/upgrade.html) to a 3.7.x release, e.g. [3.7.6](https://github.com/rabbitmq/rabbitmq-server/releases).
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
See the [Upgrades documentation guide](https://www.rabbitmq.com/upgrade.html) for general
|
||||
documentation on upgrades.
|
||||
|
||||
This release nearly exclusively contains backports of bug fixes, optimisations and small enhancements
|
||||
(e.g. safer defaults) from the 3.7.x series. Some of them are **potentially breaking** but
|
||||
should only affect a very small percentage of users. They are:
|
||||
|
||||
* The max 255 priority cap is now enforced at all levels
|
||||
* Default `rabbit.channel_max` value is now about 2K, a much safer value than 65K used previously
|
||||
* Default idle LDAP connection timeout is now 300 seconds instead of infinity
|
||||
|
||||
This release has no other known incompatibilities with versions 3.6.7 through
|
||||
3.6.15. See the upgrade and compatibility sections in the [3.6.7 release
|
||||
notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7)
|
||||
if upgrading from an earlier release.
|
||||
|
||||
### 3.6.x Series Support Timeline
|
||||
|
||||
Please read this note on [RabbitMQ 3.6.x series support
|
||||
timeline](https://groups.google.com/forum/#!msg/rabbitmq-users/kXkI-f3pgEw/UFowJIK4BQAJ).
|
||||
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* queue leader locator `min-masters` incorrectly calculated the number of masters.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1519](https://github.com/rabbitmq/rabbitmq-server/issues/1519)
|
||||
|
||||
* Maximum supported number of queue priorities (255) is now enforced.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1590](https://github.com/rabbitmq/rabbitmq-server/issues/1590)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* On Erlang 20.2.3 or later, more optimal memory allocators will be used. On some workloads that leads
|
||||
to [significant reduction in node's RAM consumption](https://groups.google.com/d/msg/rabbitmq-users/LSYaac9frYw/LNZDZUlrBAAJ). The change is workload-specific, however, on the workloads
|
||||
tested that do introduce a negative effect (more RAM used) the difference was very small (about 1%).
|
||||
|
||||
|
||||
It is possible to go back to the previous settings, `+MBas aoffcbf +MHas aoffcbf +MBlmbcs 5120 +MHlmbcs 5120 +MMmcs 10`,
|
||||
by specifying them in the `RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS` [environment variable](https://www.rabbitmq.com/configure.html#customise-environment).
|
||||
|
||||
On Erlang/OTP releases older than 20.2.3 there will be no default changes.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1604](https://github.com/rabbitmq/rabbitmq-server/pull/1604), [rabbitmq/rabbitmq-server#1612](https://github.com/rabbitmq/rabbitmq-server/pull/1612)
|
||||
|
||||
* `queue.delete` operations will now force delete queues that don't have a [promotable
|
||||
master](https://www.rabbitmq.com/ha.html#unsynchronised-mirrors).
|
||||
|
||||
GitHub issue: [rabbitmq-server#1501](https://github.com/rabbitmq/rabbitmq-server/issues/1501)
|
||||
|
||||
* `ha-promote-on-failure` is a new mirrored queue setting that's similar to [`ha-promote-on-shutdown`](https://www.rabbitmq.com/ha.html#unsynchronised-mirrors)
|
||||
but for unexpected leader replica termination.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1578](https://github.com/rabbitmq/rabbitmq-server/pull/1578)
|
||||
* Lock contention in internal database is now much lower when a node with a lot of exclusive queues
|
||||
shuts down or is otherwise considered to be unavailable by peers. This means fewer CPU cycles
|
||||
spent cleaning up the exclusive queues.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1570](https://github.com/rabbitmq/rabbitmq-server/pull/1570)
|
||||
|
||||
* Default [max number of channels allowed on a connection](https://www.rabbitmq.com/networking.html#tuning-for-large-number-of-connections-channel-max) (a.k.a. `channel_max`) has been lowered from `65535` to `2047`.
|
||||
The new default is much safer and will reduce the effect application channel leaks have on node resource consumption. **This is a potentially breaking change**.
|
||||
|
||||
Systems where a lot (at least hundreds) of channels *per connection* are used should explicitly override `channel_max` in the [config file](https://www.rabbitmq.com/configure.html) to a higher suitable value, e.g.:
|
||||
|
||||
``` erlang
|
||||
[
|
||||
{rabbit, [
|
||||
{channel_max, 4000}
|
||||
]}
|
||||
].
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq-server#1593](https://github.com/rabbitmq/rabbitmq-server/issues/1593)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Eliminated unnecessary encoding conversions that could lead to increased memory consumption.
|
||||
|
||||
GitHub issue: [rabbitmq-management#550](https://github.com/rabbitmq/rabbitmq-management/pull/550)
|
||||
|
||||
* `rabbitmqadmin` could run into an exception with certain formatting settings on Python 2.x.
|
||||
|
||||
GitHub issue: [rabbitmq-management#568](https://github.com/rabbitmq/rabbitmq-management/issues/568)
|
||||
|
||||
* `rabbitmqadmin` incorrectly encoded spaces in connection name values
|
||||
|
||||
GitHub issue: [rabbitmq-management#579](https://github.com/rabbitmq/rabbitmq-management/pull/579)
|
||||
|
||||
* HTTP API stats documentation used incorrect field names.
|
||||
|
||||
GitHub issue: [rabbitmq-management#561](https://github.com/rabbitmq/rabbitmq-management/pull/561)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Reduced padding usage in tables in the management UI.
|
||||
|
||||
GitHub issue: [rabbitmq-management#541](https://github.com/rabbitmq/rabbitmq-management/pull/541)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* LDAP server-initiated connection closure was not handled gracefully by connection pool.
|
||||
Kudos to Adam Gardner for [doing all the hard work](https://groups.google.com/forum/#!topic/rabbitmq-users/4Gva3h-yJzM) investigating this issue.
|
||||
|
||||
GitHub issues: [rabbitmq-auth-backend-ldap#82](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/82), [rabbitmq-auth-backend-ldap#90](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/90)
|
||||
|
||||
* `rabbit.idle_timeout` now defaults to 300 seconds instead of `infinity`.
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-ldap#81](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/81)
|
||||
|
||||
|
||||
## 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-server-3.6.16.tar.xz`.
|
|
@ -0,0 +1,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`.
|
|
@ -0,0 +1,218 @@
|
|||
## 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)
|
|
@ -0,0 +1,77 @@
|
|||
## RabbitMQ 3.6.4
|
||||
|
||||
`3.6.4` is a maintanence release.
|
||||
|
||||
|
||||
### Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Nodes on Windows will successfully start if Erlang is installed in a directory with spaces
|
||||
in the path.
|
||||
|
||||
GitHub issue: [rabbitmq-server#859](https://github.com/rabbitmq/rabbitmq-server/issues/859)
|
||||
|
||||
* Node health check is now node-local, as it was meant to be.
|
||||
|
||||
GitHub issue: [rabbitmq-server#818](https://github.com/rabbitmq/rabbitmq-server/issues/818)
|
||||
|
||||
* Queue deletion and termination will no longer leave "tomb stone" messages in message store
|
||||
files. This eliminates the confusing behavior when a node or cluster having no messages
|
||||
enqueued could have many thousands of such "marker" messages in the message store.
|
||||
|
||||
GitHub issue: [rabbitmq-server#839](https://github.com/rabbitmq/rabbitmq-server/issues/839)
|
||||
|
||||
* `rabbitmqctl cluster_status` will now output an accurate error message
|
||||
if invoked shortly after a node was removed from the cluster and the node cannot be
|
||||
contacted.
|
||||
|
||||
GitHub issue: [rabbitmq-server#894](https://github.com/rabbitmq/rabbitmq-server/pull/894)
|
||||
|
||||
Contributed by Peter Lemenkov (Red Hat)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Erlang VM scheduler binding type default has changed to `db`. This means fewer
|
||||
CPU context switches for some workloads.
|
||||
|
||||
GitHub issue: [rabbitmq-server#612](https://github.com/rabbitmq/rabbitmq-server/issues/612)
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* HTTP API is now compatible with Erlang 19.0.
|
||||
|
||||
GitHub issue: [rabbitmq-management#244](https://github.com/rabbitmq/rabbitmq-management/issues/244)
|
||||
|
||||
* Temporary tables are no longer named using atoms, preventing a potential
|
||||
exhaustion of the runtime atom table.
|
||||
|
||||
GitHub issue: [rabbitmq-management#245](https://github.com/rabbitmq/rabbitmq-management/issues/245)
|
||||
|
||||
* Cluster links and traffic charts are correctly displayed again
|
||||
|
||||
GitHub issue: [rabbitmq-management#250](https://github.com/rabbitmq/rabbitmq-management/issues/250)
|
||||
|
||||
* Runtime metric charts now have a description pop-up associated with them.
|
||||
|
||||
GitHub issue: [rabbitmq-management#247](https://github.com/rabbitmq/rabbitmq-management/issues/247)
|
||||
|
||||
### AMQP 1.0 plugin
|
||||
|
||||
#### Bug fixes
|
||||
|
||||
* When an AMQP 1.0 specified its own list of source outcomes in a link
|
||||
attachment, it caused a crash of its session on the server. Now a
|
||||
protocol error is raised if the list contains invalid outcomes.
|
||||
|
||||
GitHub issue: [rabbitmq-amqp1.0#31](https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/31)
|
||||
|
||||
### Java Client
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* The client will now try to use TLS v1.2 and v1.1 before falling back to v1.0 by default.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#155](https://github.com/rabbitmq/rabbitmq-java-client/issues/155)
|
|
@ -0,0 +1,24 @@
|
|||
## RabbitMQ 3.6.5
|
||||
|
||||
`3.6.5` is a maintenance release.
|
||||
|
||||
### Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Loading JSON definitions that included queue leader locator policies could prevent node
|
||||
from starting.
|
||||
|
||||
GitHub issue: [rabbitmq-server#904](https://github.com/rabbitmq/rabbitmq-server/issues/904)
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Rate stats returned by `GET /api/overview` were always `0.0`.
|
||||
|
||||
GitHub issue: [rabbitmq-management#266](https://github.com/rabbitmq/rabbitmq-management/issues/266)
|
||||
|
||||
* Some message rates chart colors were ambiguous.
|
||||
|
||||
GitHub issue: [rabbitmq-management#224](https://github.com/rabbitmq/rabbitmq-management/issues/224)
|
|
@ -0,0 +1,234 @@
|
|||
## RabbitMQ 3.6.6
|
||||
|
||||
`3.6.6` is a maintenance release that includes a fix for an **important security vulnerability** ([CVE-2016-9877](https://pivotal.io/security/cve-2016-9877)) in the MQTT plugin.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
> :warning:
|
||||
> **Upgrading from versions between 3.6.0 and 3.6.5 to this release requires a cluster shutdown.**
|
||||
This is also true for versions prior to 3.6.0.
|
||||
See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading).
|
||||
|
||||
### Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Changing queue mode to `lazy` could block queue process in certain circumstances.
|
||||
|
||||
GitHub issue: [rabbitmq-server#850](https://github.com/rabbitmq/rabbitmq-server/issues/850)
|
||||
|
||||
* Mirroring implementation didn't handle certain internal protocol messages arriving
|
||||
out of order.
|
||||
|
||||
GitHub issue: [rabbitmq-server#922](https://github.com/rabbitmq/rabbitmq-server/issues/922)
|
||||
|
||||
* Mirror set changes weren't handled gracefully in certain circumstances (e.g. in the middle of a mirror promotion).
|
||||
|
||||
GitHub issue: [rabbitmq-server#914](https://github.com/rabbitmq/rabbitmq-server/issues/914)
|
||||
|
||||
* Mirrored queue could terminate after promotion if HA policy was reapplied during sync.
|
||||
|
||||
GitHub issue: [rabbitmq-server#803](https://github.com/rabbitmq/rabbitmq-server/issues/803)
|
||||
|
||||
* Autoheal partition handling mode could run into a multi-node deadlock.
|
||||
|
||||
GitHub issue: [rabbitmq-server#928](https://github.com/rabbitmq/rabbitmq-server/issues/928)
|
||||
|
||||
* Queue mirror group membership now correctly handles certain partial partition cases.
|
||||
|
||||
GitHub issues: [rabbitmq-server#950](https://github.com/rabbitmq/rabbitmq-server/issues/950),
|
||||
[rabbitmq-server#953](https://github.com/rabbitmq/rabbitmq-server/issues/953)
|
||||
|
||||
* Eager queue sync will now stop as soon as a mirror shutdown/unavailability is detected.
|
||||
|
||||
GitHub issue: [rabbitmq-server#975](https://github.com/rabbitmq/rabbitmq-server/issues/975)
|
||||
|
||||
* Lazy queues now trigger runtime GC significantly less frequently, making moving data
|
||||
to the message store more efficient.
|
||||
|
||||
GitHub issue: [rabbitmq-server#973](https://github.com/rabbitmq/rabbitmq-server/issues/973)
|
||||
|
||||
* Mirroring policies now respect the `nodes` parameter when re-electing a master.
|
||||
|
||||
GitHub issue: [](https://github.com/rabbitmq/rabbitmq-server/issues/990)
|
||||
|
||||
* After a partial network partitions, nodes with newly elected masters will now be more defensive
|
||||
about the (no longer relevant) policy change notifications.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1007](https://github.com/rabbitmq/rabbitmq-server/issues/1007)
|
||||
|
||||
* Late responses from peers in certain partial network partition scenarios are now
|
||||
ignored by channels.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1005](https://github.com/rabbitmq/rabbitmq-server/issues/1005)
|
||||
|
||||
* After a partial network partitions, nodes with newly elected masters will now be more defensive
|
||||
about the (no longer relevant) synchronization start requests.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1006](https://github.com/rabbitmq/rabbitmq-server/issues/1006)
|
||||
|
||||
* Network partition triggered late and duplicate acknowledgements are now ignored/filterd out
|
||||
by queue leader processes.
|
||||
|
||||
GitHub issue: [rabbitmq-server#960](https://github.com/rabbitmq/rabbitmq-server/issues/960)
|
||||
|
||||
* Queue mirrors now try detect leader replica changes during partial partitions and do a clean stop
|
||||
instead of failing because their state is in sync with the old leader and not the newly promoted one.
|
||||
|
||||
GitHub issue: [rabbitmq-server#944](https://github.com/rabbitmq/rabbitmq-server/issues/944)
|
||||
|
||||
* `rabbitmqctl` and server startup could be affected by some DNS configurations.
|
||||
|
||||
GitHub issue: [rabbitmq-server#890](https://github.com/rabbitmq/rabbitmq-server/issues/890)
|
||||
|
||||
* RPM package was split into two: for CentOS 6 and 7. The latter includes systemd support.
|
||||
|
||||
GitHub issue: [rabbitmq-server#932](https://github.com/rabbitmq/rabbitmq-server/issues/932)
|
||||
|
||||
* Workaround for Erlang/OTP bug OTP-13425 where crash dump generation failed on UNIX
|
||||
platforms.
|
||||
|
||||
GitHub issue: [rabbitmq-server#956](https://github.com/rabbitmq/rabbitmq-server/issues/956)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Inter-node traffic buffer increased to 32 MB by default, configurable with `RABBITMQ_DISTRIBUTION_BUFFER_SIZE` (in kilobytes).
|
||||
|
||||
This improves network bandwidth utilization for inter-node traffic and reduces the probability
|
||||
of spurious network partitions due to latency spikes caused by the buffer being full.
|
||||
|
||||
GitHub issue: [rabbitmq-server#908](https://github.com/rabbitmq/rabbitmq-server/issues/908)
|
||||
|
||||
* Default flow control settings were increased to `{200, 100}`. This helps with consumer throughput
|
||||
in some cases. The value still can be configured using the `rabbit.credit_flow_default_credit` setting.
|
||||
|
||||
GitHub issue: [rabbitmq-server#949](https://github.com/rabbitmq/rabbitmq-server/issues/949)
|
||||
|
||||
* `rabbitmqctl list_queues` now has more filtering options.
|
||||
|
||||
GitHub issue: [rabbitmq-server#851](https://github.com/rabbitmq/rabbitmq-server/issues/851)
|
||||
|
||||
* `RABBITMQ_IGNORE_SIGINT` is a new environment variable that lets the user disable the
|
||||
`+B` VM flag that is known to have issues in Erlang 18.x series (prevents crash dumps from being produced).
|
||||
|
||||
GitHub issue: [rabbitmq-server#956](https://github.com/rabbitmq/rabbitmq-server/issues/956)
|
||||
|
||||
* The `pg2_fixed` module is now replaced by the standard `pg2` from a newer Erlang/OTP release.
|
||||
|
||||
GitHub issue: [rabbitmq-server#980](https://github.com/rabbitmq/rabbitmq-server/issues/980)
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Authentication with correct username but omitted password succeeded when TLS/x509
|
||||
certificate wasn't provided by the client. CVE allocation for this vulnerability is pending.
|
||||
|
||||
GitHub issue: [rabbitmq-mqtt#96](https://github.com/rabbitmq/rabbitmq-mqtt/issues/96)
|
||||
|
||||
|
||||
### JMS Topic Exchange Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin no longer tries to check if JMS client's version is identical/compatible.
|
||||
This caused certain legitimate use cases, such as exchange declaration over HTTP API, to fail.
|
||||
|
||||
GitHub issue: [rabbitmq-jms-topic-exchange#9](https://github.com/rabbitmq/rabbitmq-jms-topic-exchange/issues/9)
|
||||
|
||||
|
||||
### Java Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Fixed a NPE that can occur when a thread attempts to create a new channel after a connection
|
||||
has been recovered but before channel recovery has completed.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#197](https://github.com/rabbitmq/rabbitmq-java-client/pull/197)
|
||||
|
||||
Contributed by Michael Dent.
|
||||
|
||||
* Binding cache entries of auto-delete queues should be cleaned up when the last consumer is cancelled.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#199](https://github.com/rabbitmq/rabbitmq-java-client/pull/199)
|
||||
|
||||
Contributed by Michael Dent.
|
||||
|
||||
* When a channel is closed, consumers will be correctly cleaned up from AutorecoveringConnection cache.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#208](https://github.com/rabbitmq/rabbitmq-java-client/issues/208)
|
||||
|
||||
* `junit` is no longer listed as a dependency in the OSGi manifest
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#211](https://github.com/rabbitmq/rabbitmq-java-client/issues/211)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `com.rabbitmq.client.AddressResolver` is a new interface that can be used to "expand"
|
||||
endpoints into groups of IP addresses, e.g. to a list of IP addresses resolved from a DNS
|
||||
record.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#153](https://github.com/rabbitmq/rabbitmq-java-client/issues/153)
|
||||
|
||||
* Building on the new `AddressResolver` interface, the client now includes a resolver
|
||||
that uses DNS SVR records to discover endpoints.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#104](https://github.com/rabbitmq/rabbitmq-java-client/issues/104)
|
||||
|
||||
* `com.rabbitmq.client.BuiltinExchangeType` is an enum that contains built-in exchange types.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#150](https://github.com/rabbitmq/rabbitmq-java-client/issues/150)
|
||||
|
||||
|
||||
### .NET Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Fixed a possible `NullReferenceException` in `HeartbeatReadTimerCallback` during
|
||||
connection closure.
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#257](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/257)
|
||||
|
||||
* Fixed a potential race condition in `EventingBasicConsumer`
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#242](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/242)
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Federation links now specify a name which makes them easier to tell from other connections
|
||||
in the management UI (requires RabbitMQ 3.6.3+).
|
||||
|
||||
GitHub issue: [rabbitmq-federation#39](https://github.com/rabbitmq/rabbitmq-federation/issues/39)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Shovel connections now specify a name which makes them easier to tell from other connections
|
||||
in the management UI (requires RabbitMQ 3.6.3+).
|
||||
|
||||
GitHub issue: [rabbitmq-shovel#19](https://github.com/rabbitmq/rabbitmq-shovel/issues/19)
|
||||
|
||||
## Release Artifacts
|
||||
|
||||
Available from:
|
||||
|
||||
* GitHub (see below)
|
||||
* [Bintray](https://bintray.com/rabbitmq/)
|
||||
* [Package Cloud](https://packagecloud.io/rabbitmq/)
|
||||
* [rabbitmq.com](https://www.rabbitmq.com/download.html)
|
||||
|
||||
|
||||
## 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.6.tar.gz`.
|
|
@ -0,0 +1,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`.
|
|
@ -0,0 +1,59 @@
|
|||
## RabbitMQ 3.6.8
|
||||
|
||||
RabbitMQ `3.6.8` is a maintenance release that restores Erlang/OTP R16B03 and 17.x compatibility
|
||||
that was unintentionally affected in [3.6.7](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) by producing that release on a significantly newer Erlang/OTP version.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading) for general documentation on upgrades.
|
||||
|
||||
This release has no incompatibilities with 3.6.7. See [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7) upgrade and compatibility nodes if upgrading from an earlier release.
|
||||
|
||||
### Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Erlang/OTP R16B03 and 17.x are supported again by producing this release on R16B03.
|
||||
Note that [some configurations or community plugins](https://www.rabbitmq.com/which-erlang.html) may require a later version.
|
||||
We recommend all users to upgrade to a 19.x series release if possible. See [Debian](https://www.rabbitmq.com/install-debian.html) and [RPM installation](https://www.rabbitmq.com/install-rpm.html) guides for some Erlang/OTP installation options.
|
||||
|
||||
GitHub issues: [rabbitmq-server#1148](https://github.com/rabbitmq/rabbitmq-server/issues/1148), [rabbitmq-server#1149](https://github.com/rabbitmq/rabbitmq-server/issues/1149)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Certain user permission violations were resulting in a 500 response and scary log entries.
|
||||
|
||||
GitHub issue: [rabbitmq-management#360](https://github.com/rabbitmq/rabbitmq-management/issues/360)
|
||||
|
||||
|
||||
### Management Agent Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Single atom proplist values no longer break JSON serialisation for endpoints such as `GET /api/overview`.
|
||||
|
||||
GitHub issue: [rabbitmq-management-agent#34](https://github.com/rabbitmq/rabbitmq-management-agent/issues/34)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Web STOMP now accepts the same TCP listener options as core RabbitMQ and other plugins.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#69](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/69)
|
||||
|
||||
|
||||
## 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.8.tar.gz`.
|
|
@ -0,0 +1,63 @@
|
|||
## RabbitMQ 3.6.9
|
||||
|
||||
RabbitMQ `3.6.9` is a security and maintenance release.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
See the ["Upgrading clusters" section of the documentation](https://www.rabbitmq.com/clustering.html#upgrading)
|
||||
for general documentation on upgrades.
|
||||
|
||||
This release has no incompatibilities with 3.6.7. See [3.6.7 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_7)
|
||||
upgrade and compatibility notes if upgrading from an earlier release.
|
||||
|
||||
|
||||
### Management and Management Agent Plugins
|
||||
|
||||
#### Security Vulnerability Patches
|
||||
|
||||
Details for the CVEs below are pending publication.
|
||||
|
||||
* `CVE-2017-4965`: XSS vulnerabilities in management UI
|
||||
* `CVE-2017-4966`: authentication details are stored in browser-local storage without expiration
|
||||
* `CVE-2017-4967`: XSS vulnerabilities in management UI
|
||||
|
||||
As part of the patch addressing `CVE-2017-4966` management UI sessions were limited to 8 hours.
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Certain TCP and TLS listener configuration settings could break JSON serialisation of
|
||||
`GET /api/overview` responses.
|
||||
|
||||
GitHub issues: [rabbitmq-management-agent#39](https://github.com/rabbitmq/rabbitmq-management-agent/issues/39),
|
||||
[rabbitmq-management#364](https://github.com/rabbitmq/rabbitmq-management/issues/364),
|
||||
[rabbitmq-management-agent#36](https://github.com/rabbitmq/rabbitmq-management-agent/issues/36)
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* More numerical types are now handled for the "hops" property.
|
||||
|
||||
GitHub issue: [rabbitmq-federation#56](https://github.com/rabbitmq/rabbitmq-federation/issues/56)
|
||||
|
||||
|
||||
### .NET Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Calling ExchangeBind more than once with the same arguments threw an exception.
|
||||
|
||||
GitHub issues: [rabbitmq-dotnet-client#314](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/314),
|
||||
[rabbitmq-dotnet-client#317](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/317)
|
||||
|
||||
|
||||
## 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.9.tar.gz`.
|
|
@ -0,0 +1,475 @@
|
|||
This release introduces new features, changes to RabbitMQ distribution (e.g. what plugins ship
|
||||
with it), and bug fixes. It also includes all the changes from the [3.6.x release series](https://www.rabbitmq.com/changelog.html) unless stated otherwise.
|
||||
|
||||
Documentation for this release is available at [the RabbitMQ website](https://www.rabbitmq.com).
|
||||
|
||||
|
||||
## Breaking Changes
|
||||
|
||||
* Minimum required Erlang/OTP version is now 19.3. Recent Erlang versions can be obtained from [Erlang Solutions](https://www.erlang-solutions.com/resources/download.html), [RabbitMQ zero dependency Erlang RPM](https://github.com/rabbitmq/erlang-rpm), as well as main and backports repositories of recent Ubuntu and Debian releases.
|
||||
|
||||
GitHub issues: [rabbitmq-server#1305](https://github.com/rabbitmq/rabbitmq-server/issues/1305), [rabbitmq-server#1307](https://github.com/rabbitmq/rabbitmq-server/issues/1307), [rabbitmq-common#234](https://github.com/rabbitmq/rabbitmq-common/pull/234).
|
||||
|
||||
* HTTP API has minor breaking changes in several endpoints (see below).
|
||||
|
||||
* .NET client is now [.NET Core-compatible](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/148).
|
||||
Starting with `3.7.0`, [.NET client releases](https://github.com/rabbitmq/rabbitmq-dotnet-client/releases) are decoupled from RabbitMQ server releases and exclusively distributed via the [RabbitMQ.Client NuGet package](https://www.nuget.org/packages/RabbitMQ.Client/).
|
||||
|
||||
* Starting with `3.7.0`, [Java client releases](https://github.com/rabbitmq/rabbitmq-java-client/releases) are decoupled from RabbitMQ server releases and exclusively distributed via Maven: [RabbitMQ Milestones Maven repository](https://bintray.com/rabbitmq/maven-milestones), [RabbitMQ Maven repository](https://bintray.com/rabbitmq/maven), as well as Maven Central.
|
||||
|
||||
* Users tagged with `administrator` now implicitly have access to most operations in all vhosts,
|
||||
including those they don't have explicit permissions for.
|
||||
|
||||
GitHub issue: [rabbitmq-management#461](https://github.com/rabbitmq/rabbitmq-management/issues/461)
|
||||
|
||||
* Plugins now must depend on the `rabbit` application [in order to be recognised as such by `rabbitmq-plugins list`](https://github.com/rabbitmq/rabbitmq-server/issues/1124).
|
||||
Plugins that do not have the dependency will still function, can be enabled or disabled but won't appear
|
||||
in `rabbitmq-plugins list` output.
|
||||
|
||||
* `rabbitmq_management_visualiser` plugin [no longer ships with RabbitMQ](https://groups.google.com/forum/#!searchin/rabbitmq-users/ANN$20rabbitmq_management_visualiser%7Csort:relevance/rabbitmq-users/WiHmPcmzNtI/YJ356EW4BAAJ) and is considered to be deprecated. Installations that have this plugin enabled **must disable it before upgrading**. This can
|
||||
be done using `rabbitmq-plugins disable` (which supports offline modifications)
|
||||
or by updating the list of plugins in `RABBITMQ_ENABLED_PLUGINS_FILE`.
|
||||
|
||||
|
||||
### Erlang/OTP 20 Support
|
||||
|
||||
Erlang/OTP 20 has [breaking changes](https://groups.google.com/d/msg/rabbitmq-users/_imbAavBYjY/xHzMiGgMAgAJ) that affected RabbitMQ.
|
||||
|
||||
3.7.0 supports OTP 20, including upgrades of existing installations to OTP 20. This required changes to the core and multiple plugins that ship with RabbitMQ.
|
||||
|
||||
GitHub issues: [rabbitmq-server#1243](https://github.com/rabbitmq/rabbitmq-server/issues/1243), [rabbitmq-server#1250](https://github.com/rabbitmq/rabbitmq-server/pull/1250), [rabbitmq-server#1268](https://github.com/rabbitmq/rabbitmq-server/pull/1268),
|
||||
[rabbitmq-server#1272](https://github.com/rabbitmq/rabbitmq-server/issues/1272), [rabbitmq-federation#58](https://github.com/rabbitmq/rabbitmq-federation/pull/58), [rabbitmq-management-agent#47](https://github.com/rabbitmq/rabbitmq-management-agent/pull/47),
|
||||
[rabbitmq-management#415](https://github.com/rabbitmq/rabbitmq-management/pull/415), [rabbitmq-stomp#115](https://github.com/rabbitmq/rabbitmq-stomp/issues/115)
|
||||
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* New configuration file format
|
||||
|
||||
RabbitMQ now supports a [new configuration file format](http://next.rabbitmq.com/configure.html#config-file).
|
||||
The format is [based on sysctl](https://github.com/basho/cuttlefish/wiki/Cuttlefish-for-Application-Users)
|
||||
and is similar to `.ini` files. Erlang term configuration files are still supported, it is also
|
||||
possible to combine the two formats (use both `rabbitmq.conf` and `advanced.config`).
|
||||
|
||||
Most documentation examples were updated to use both new and classic config formats. See the docs
|
||||
at [next.rabbitmq.com](http://next.rabbitmq.com), in particular [the configuration guide](http://next.rabbitmq.com/configure.html),
|
||||
for more information.
|
||||
|
||||
GitHub issues: [rabbitmq-server#550](https://github.com/rabbitmq/rabbitmq-server/issues/550),
|
||||
[rabbitmq-server#1103](https://github.com/rabbitmq/rabbitmq-server/pull/1103),
|
||||
[rabbitmq-auth-backend-ldap#59](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/59)
|
||||
|
||||
* Pluggable cluster peer discovery
|
||||
|
||||
Automatic clustering for blank (without an existing database) nodes now can discover
|
||||
peers using pluggable backends. This is a set of features adopted from the [rabbitmq-autocluster](https://github.com/rabbitmq/rabbitmq-autocluster/) plugin by Gavin Roy.
|
||||
Two implementations are available out of the box: one uses a config file- and another DNS A records.
|
||||
Several more are available via plugins:
|
||||
|
||||
* [AWS](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws)
|
||||
* [Consul](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul)
|
||||
* [etcd](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd)
|
||||
* [Kubernetes](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s)
|
||||
|
||||
GitHub issues: [rabbitmq-server#486](https://github.com/rabbitmq/rabbitmq-server/issues/486), [rabbitmq-server#988](https://github.com/rabbitmq/rabbitmq-server/issues/988), [rabbitmq-server#1143](https://github.com/rabbitmq/rabbitmq-server/issues/1143)
|
||||
[rabbitmq-server#1202](https://github.com/rabbitmq/rabbitmq-server/issues/1202), [rabbitmq-server#1171](https://github.com/rabbitmq/rabbitmq-server/issues/1171), [rabbitmq-server#1257](https://github.com/rabbitmq/rabbitmq-server/issues/1257), [rabbitmq-server#1247](https://github.com/rabbitmq/rabbitmq-server/issues/1247)
|
||||
|
||||
* 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#1022](https://github.com/rabbitmq/rabbitmq-server/issues/1022),
|
||||
[rabbitmq-server#487](https://github.com/rabbitmq/rabbitmq-server/issues/487)
|
||||
|
||||
* Every virtual host now has separate message stores.
|
||||
This improves resiliency and reduces contention in multitenant environments,
|
||||
plus makes development of tools that perform backups and recovery of resting data easier
|
||||
in the future.
|
||||
|
||||
During the upgrade nodes will migrate data to this new layout. This can take some time.
|
||||
To reduce the amount of time, drain as many queues as possible before upgrading, e.g.
|
||||
by stopping publishers without stopping consumers for a period of time.
|
||||
|
||||
GitHub issues: [rabbitmq-server#567](https://github.com/rabbitmq/rabbitmq-server/issues/567), [rabbitmq-server#1146](https://github.com/rabbitmq/rabbitmq-server/issues/1146), [rabbitmq-server#1280](https://github.com/rabbitmq/rabbitmq-server/issues/1280),
|
||||
[rabbitmq-management#446](https://github.com/rabbitmq/rabbitmq-management/issues/446), [rabbitmq-server#1303](https://github.com/rabbitmq/rabbitmq-server/issues/1303), [rabbitmq-management#460](https://github.com/rabbitmq/rabbitmq-management/issues/460), [rabbitmq-server#1321](https://github.com/rabbitmq/rabbitmq-server/issues/1321)
|
||||
|
||||
* New [LevelDB-based message store index plugin](https://github.com/rabbitmq/rabbitmq-msg-store-index-eleveldb).
|
||||
|
||||
GitHub issue: [rabbitmq-server#838](https://github.com/rabbitmq/rabbitmq-server/issues/838)
|
||||
|
||||
* Support config file path values with and without file extensions
|
||||
|
||||
RabbitMQ no longer *requires* `RABBITMQ_CONFIG_FILE` values to not have a `.config` or `.conf` suffix. It will try appending both suffixes as needed when searching for suitable config file(s) to load.
|
||||
|
||||
GitHub Issue: [rabbitmq-server#691](https://github.com/rabbitmq/rabbitmq-server/issues/691)
|
||||
|
||||
* Operators now can configure how many concurrent connections are allowed in a vhost.
|
||||
|
||||
GitHub issue: [rabbitmq-server#500](https://github.com/rabbitmq/rabbitmq-server/issues/500)
|
||||
|
||||
* Operators now can configure how many queues can exist in a vhost.
|
||||
|
||||
GitHub issue: [rabbitmq-server#501](https://github.com/rabbitmq/rabbitmq-server/issues/501)
|
||||
|
||||
* Operator policies: their definitions are merged with the standard (user) policies and allow operators put global
|
||||
limits in place, e.g. max queue length or message TTL.
|
||||
|
||||
GitHub issue: [rabbitmq-server#930](https://github.com/rabbitmq/rabbitmq-server/issues/930)
|
||||
|
||||
* It is now possible to configure a limited [prefetch value](https://www.rabbitmq.com/confirms.html) for all newly opened channels by default.
|
||||
This helps prevent consumers that never acknowledge deliveries from exhausting server resources.
|
||||
It is important to make sure that consumers that use [manual acknowledgements](https://www.rabbitmq.com/confirms.html) can cope with this
|
||||
change before enabling it.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1367](https://github.com/rabbitmq/rabbitmq-server/issues/1367)
|
||||
|
||||
* Plugin version constraints
|
||||
|
||||
RabbitMQ now has a mechanism for plugin authors to indicate what versions a plugin is compatible with.
|
||||
Incompatible plugins are logged and ignored.
|
||||
|
||||
GitHub issues: [rabbitmq-server#591](https://github.com/rabbitmq/rabbitmq-server/issues/591), [rabbitmq-server#735](https://github.com/rabbitmq/rabbitmq-server/issues/735), [rabbitmq-server#1090](https://github.com/rabbitmq/rabbitmq-server/issues/1090)
|
||||
|
||||
* Lager-based logging: less [not prone to overload](https://s3.us-east-2.amazonaws.com/ferd.erlang-in-anger/text.v1.1.0.pdf), pluggable backends, debug log level, more flexibility in configuration.
|
||||
|
||||
RabbitMQ now uses [Lager](https://github.com/basho/lager) for its logging subsystem.
|
||||
This brings a group of benefits: (quite verbose) debug log level, pluggable logging
|
||||
backends (will require Lager plugins), and much
|
||||
more flexibility in logging configuration.
|
||||
|
||||
See [RabbitMQ 3.7.0 logging guide](http://next.rabbitmq.com/logging.html), [rabbitmq.conf.example](https://github.com/rabbitmq/rabbitmq-server/blob/master/docs/rabbitmq.conf.example) (new style config)
|
||||
and [rabbitmq.config.example](https://github.com/rabbitmq/rabbitmq-server/blob/v3.7.x/docs/rabbitmq.config.example) (classic/advanced config format) to learn more.
|
||||
|
||||
GitHub issues: [rabbitmq-server#94](https://github.com/rabbitmq/rabbitmq-server/issues/94), [rabbitmq-website#418](https://github.com/rabbitmq/rabbitmq-website/issues/418)
|
||||
|
||||
* Topic authorisation built around topic exchanges. This includes support for certain variables,
|
||||
such as virtual host and username.
|
||||
|
||||
GitHub issues: [rabbitmq-server#505](https://github.com/rabbitmq/rabbitmq-server/issues/505), [rabbitmq-server#1085](https://github.com/rabbitmq/rabbitmq-server/issues/1085), [rabbitmq-server#1099](https://github.com/rabbitmq/rabbitmq-server/issues/1099), [rabbitmq-server#1229](https://github.com/rabbitmq/rabbitmq-server/issues/1229)
|
||||
|
||||
* When queue length limit is exceeded, publishers of messages that did not fit
|
||||
now can opt-in to receive a nack by opting in (configuring an overflow behavior).
|
||||
When the behavior is configured to reject, messages are also discarded more efficiently.
|
||||
|
||||
GitHub issue: [rabbitmq-server#995](https://github.com/rabbitmq/rabbitmq-server/issues/995)
|
||||
|
||||
* [Proxy Protocol](http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt) support.
|
||||
|
||||
GitHub issue: [rabbitmq-server#589](https://github.com/rabbitmq/rabbitmq-server/issues/589)
|
||||
|
||||
* Deleting a vhost now will force close all connections in it.
|
||||
|
||||
GitHub issue: [rabbitmq-server#627](https://github.com/rabbitmq/rabbitmq-server/issues/627)
|
||||
|
||||
* Deleting a user account now will force close all of its connections.
|
||||
|
||||
GitHub issue: [rabbitmq-server#628](https://github.com/rabbitmq/rabbitmq-server/issues/628)
|
||||
|
||||
* OpenSUSE RPM package now supports systemd and requires Leap 42.2.
|
||||
|
||||
GitHub issue: [rabbitmq-server-release#31](https://github.com/rabbitmq/rabbitmq-server-release/pull/31)
|
||||
|
||||
* Standalone MacOS release now bundles Erlang 19.x.
|
||||
|
||||
GitHub issue: [rabbitmq-server-release#10](https://github.com/rabbitmq/rabbitmq-server-release/issues/10)
|
||||
|
||||
* First dead-lettering event now injects a separate set of top-level headers — `x-first-death-queue`, `x-first-death-reason`,
|
||||
and `x-first-death-exchange` — in addition to the `x-deaths` entries.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1332](https://github.com/rabbitmq/rabbitmq-server/issues/1332)
|
||||
|
||||
* LF and CR are now stripped off of names of queues and exchanges
|
||||
|
||||
Although line feeds in names are permitted under the AMQP 0-9-1 spec,
|
||||
in practice they can make it very difficult to work with queues and exchanges.
|
||||
Stripping them out makes life much easier for developers.
|
||||
|
||||
GitHub issue: [rabbitmq-server#710](https://github.com/rabbitmq/rabbitmq-server/issues/710)
|
||||
|
||||
* Deletion of auto-delete and exclusive queues now leaves (debug) log entries
|
||||
|
||||
GitHub issue: [rabbitmq-server#590](https://github.com/rabbitmq/rabbitmq-server/issues/590)
|
||||
|
||||
* `rabbitmqctl set_vm_high_watermark` now produces more useful error messages when
|
||||
relative values provided are outside of the `0..1.0` range.
|
||||
|
||||
GitHub issue: [rabbitmq-cli#157](https://github.com/rabbitmq/rabbitmq-cli/issues/157)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Mirrored queue could terminate if a policy is re-applied concurrently after promotion
|
||||
|
||||
GitHub issue: [rabbitmq-server#803](https://github.com/rabbitmq/rabbitmq-server/issues/803)
|
||||
|
||||
* Old incarnations of queue mirrors are stopped before new ones start
|
||||
|
||||
GitHub issue: [rabbitmq-server#863](https://github.com/rabbitmq/rabbitmq-server/issues/863)
|
||||
|
||||
* Channel interceptors are enabled/disabled together with plugins
|
||||
|
||||
GitHub issue: [rabbitmq-server#559](https://github.com/rabbitmq/rabbitmq-server/issues/559)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
CLI tools were [significatnly redesigned](https://groups.google.com/forum/#!searchin/rabbitmq-users/ANN$20New$20CLI$20tools%7Csort:relevance/rabbitmq-users/x0XugmBt-IE/t2wdjIdSBgAJ),
|
||||
now can be extended from plugins and support command
|
||||
aliases (à la Git). There's also a new tool, `rabbitmq-diagnostics`, and several new commands available.
|
||||
|
||||
GitHub issues: [rabbitmq-server#577](https://github.com/rabbitmq/rabbitmq-server/issues/577), [rabbitmq-cli#38](https://github.com/rabbitmq/rabbitmq-cli/issues/38), [rabbitmq-server#1085](https://github.com/rabbitmq/rabbitmq-server/issues/1085),
|
||||
[rabbitmq-cli#10](https://github.com/rabbitmq/rabbitmq-cli/issues/10), [rabbitmq-cli#178](https://github.com/rabbitmq/rabbitmq-cli/issues/178), [rabbitmq-cli#180](https://github.com/rabbitmq/rabbitmq-cli/issues/180).
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* New CLI command for closing connections in bulk (e.g. a specific vhost).
|
||||
|
||||
GitHub issue: [rabbitmq-server#849](https://github.com/rabbitmq/rabbitmq-server/issues/849)
|
||||
|
||||
* New CLI command for detecting potentially stuck
|
||||
processes (previously invoked as `rabbit_diagnostics:maybe_stuck/0` via `rabbitmqctl eval`).
|
||||
|
||||
GitHub issue: [rabbitmq-cli#144](https://github.com/rabbitmq/rabbitmq-cli/issues/144)
|
||||
|
||||
* New CLI command that lists non-AMQP connections (e.g. MQTT).
|
||||
|
||||
GitHub issue: [rabbitmq-cli#121](https://github.com/rabbitmq/rabbitmq-cli/issues/121)
|
||||
|
||||
* New CLI command that outputs effective Erlang cookie hash.
|
||||
|
||||
GitHub issue: [rabbitmq-cli#151](https://github.com/rabbitmq/rabbitmq-cli/issues/151)
|
||||
|
||||
* `rabbitmq-plugins list` will now only recognise Erlang applications that depend on
|
||||
`rabbit` as plugins. Plugins that lacks the dependency will still function and
|
||||
can be enabled or disabled but won't be listed.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1124](https://github.com/rabbitmq/rabbitmq-server/issues/1124)
|
||||
|
||||
|
||||
|
||||
### Management plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Statistics database is now distributed across the cluster: each nodes stores its own stats.
|
||||
|
||||
GitHub issue: [rabbitmq-management#236](https://github.com/rabbitmq/rabbitmq-management/issues/236)
|
||||
|
||||
* Migration to Cowboy REST
|
||||
|
||||
RabbitMQ management plugin as well as its extensions (e.g. those of
|
||||
Federation and Shovel, `rabbitmq-top`) now uses [Cowboy REST](http://ninenines.eu/docs/en/cowboy/HEAD/guide/rest_handlers/)
|
||||
instead of Webmachine. Cowboy is a state-of-the-art open source Erlang HTTP 1.1 server and REST micro framework
|
||||
that is also used in the plugins that provide WebSocket support.
|
||||
|
||||
The change is largely invisible to management UI and HTTP API
|
||||
clients but there are minor changes that can affect test suites: for example,
|
||||
`POST` and `PUT` responses now use `201 Created` instead of `204 No Content`.
|
||||
|
||||
Plugins that extend management UI need to be ported to Cowboy REST and Cowboy 2.
|
||||
|
||||
GitHub issue: [rabbitmq-management#63](https://github.com/rabbitmq/rabbitmq-management/issues/63)
|
||||
|
||||
* Users tagged with `administrator` now implicitly have access to most operations in all vhosts,
|
||||
including those they don't have explicit permissions for.
|
||||
|
||||
GitHub issue: [rabbitmq-management#461](https://github.com/rabbitmq/rabbitmq-management/issues/461)
|
||||
|
||||
* User that creates a vhost is automatically granted full permissions in it. This is a usability
|
||||
improvement to the management UI. Note that this assumes that a user that has the permissions to create
|
||||
vhosts also has the permission to grant themselves permissions to any vhost, so this changes nothing in
|
||||
terms of security.
|
||||
|
||||
GitHub issue: [rabbitmq-management#445](https://github.com/rabbitmq/rabbitmq-management/issues/445)
|
||||
|
||||
* New HTTP API endpoint allows for bulk deletion of users.
|
||||
|
||||
GitHub issue: [rabbitmq-management#448](https://github.com/rabbitmq/rabbitmq-management/issues/448)
|
||||
|
||||
* Node endpoint now returns more information about [memory use breakdown](http://next.rabbitmq.com/memory-use.html).
|
||||
This is **breaking change**.
|
||||
|
||||
GitHub issue: [rabbitmq-management#499](https://github.com/rabbitmq/rabbitmq-management/issues/499)
|
||||
|
||||
* Report more TLS-related values via HTTP API
|
||||
|
||||
The HTTP API now reports all SSL/TLS options available for the RabbitMQ server as well as for the management plugin.
|
||||
|
||||
GitHub issue: [rabbitmq-management#163](https://github.com/rabbitmq/rabbitmq-management/issues/163)
|
||||
|
||||
* Topic authorisation permission management.
|
||||
|
||||
GitHub issue: [rabbitmq-management#405](https://github.com/rabbitmq/rabbitmq-management/issues/405)
|
||||
|
||||
* Dual IP Stack Support
|
||||
|
||||
Management plugin now can be configured to use IPv6 or both IPv6 and IPv4.
|
||||
|
||||
GitHub issue: [rabbitmq-management#64](https://github.com/rabbitmq/rabbitmq-management/issues/64)
|
||||
|
||||
* "Get messages" in the UI now offers more requeueing options. This is a **breaking change** for HTTP API
|
||||
clients as the list of accepted `ackmode` field values has [changed](https://rawcdn.githack.com/rabbitmq/rabbitmq-management/v3.7.0/priv/www/api/index.html).
|
||||
|
||||
GitHub issue: [rabbitmq-management#68](https://github.com/rabbitmq/rabbitmq-management/issues/68)
|
||||
|
||||
|
||||
### Java client
|
||||
|
||||
These release notes are for the 4.0 release. Please see [Java client release notes](https://github.com/rabbitmq/rabbitmq-java-client/releases)
|
||||
for information about later releases.
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Bump default TLS version to v1.2 with a fallback for older JDKs
|
||||
|
||||
The Java client now attempts to use TLS v1.2 by default (which many RabbitMQ servers prefer due to vulnerabilities in TLS v1)
|
||||
but falls back to TLS v1 for older JDKs such as JDK 6.
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#139](https://github.com/rabbitmq/rabbitmq-java-client/issues/139)
|
||||
|
||||
* Begin recovery after all shutdown listeners have been given a chance to run
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#135](https://github.com/rabbitmq/rabbitmq-java-client/issues/135)
|
||||
|
||||
* `com.rabbitmq.client.Connection` and `com.rabbitmq.client.Channel` now implement `java.io.Closeable`
|
||||
|
||||
GitHub issue: [rabbitmq-java-client#131](https://github.com/rabbitmq/rabbitmq-java-client/issues/131)
|
||||
|
||||
|
||||
### .NET Client
|
||||
|
||||
These release notes are for the 4.0 release. Please see [.NET client release notes](https://github.com/rabbitmq/rabbitmq-dotnet-client/releases)
|
||||
for information about later releases.
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* .NET Core support (as of .NET client `4.0.0`).
|
||||
|
||||
GitHub issues: [rabbitmq-dotnet-client#148](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/148), [rabbitmq-dotnet-client#213](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/213), [rabbitmq-dotnet-client#206](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/206)
|
||||
|
||||
* AppVeyor CI and NuGet feed of Nightly Builds
|
||||
|
||||
GitHub issue: [rabbitmq-dotnet-client#206](https://github.com/rabbitmq/rabbitmq-dotnet-client/issues/206)
|
||||
|
||||
|
||||
### MQTT plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Topic authorisation.
|
||||
|
||||
GitHub issues: [rabbitmq-mqtt#95](https://github.com/rabbitmq/rabbitmq-mqtt/issues/95), [rabbitmq-server#505](https://github.com/rabbitmq/rabbitmq-server/issues/505), [rabbitmq-mqtt#114](https://github.com/rabbitmq/rabbitmq-mqtt/issues/114).
|
||||
|
||||
* Client ID is propagated to [authentication backends](http://rabbitmq.com/access-control.html).
|
||||
|
||||
GitHub issue: [rabbitmq-mqtt#139](https://github.com/rabbitmq/rabbitmq-mqtt/issues/139)
|
||||
|
||||
* QoS 2 subscriptions are downgraded to QoS 1
|
||||
|
||||
GitHub issue: [rabbitmq-mqtt#21](https://github.com/rabbitmq/rabbitmq-mqtt/issues/21)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Support for AMQP 1.0 and a foundation for more protocols supported in the future.
|
||||
This means cross-protocol shoveling (AMQP 0-9-1 to AMQP 1.0 or the other way around) is now
|
||||
supported. [Erlang client for AMQP 1.0](https://github.com/rabbitmq/rabbitmq-amqp1.0-client) is now also available
|
||||
as a standalone project.
|
||||
|
||||
GitHub issue: [rabbitmq-shovel#26](https://github.com/rabbitmq/rabbitmq-shovel/issues/26)
|
||||
|
||||
* Message timestamping.
|
||||
|
||||
Shovel now adds an extra header that contains the timestamp
|
||||
indicating when message was shovelled.
|
||||
|
||||
GitHub issue: [rabbitmq-shovel#2](https://github.com/rabbitmq/rabbitmq-shovel/issues/2)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* New CLI command that restarts a link.
|
||||
|
||||
GitHub issue: [rabbitmq-federation#45](https://github.com/rabbitmq/rabbitmq-federation/issues/45)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Internal exchanges and queues are now cleaned up if the policy goes out of effect or the plugin is disabled.
|
||||
|
||||
GitHub issue: [rabbitmq-federation#63](https://github.com/rabbitmq/rabbitmq-federation/issues/63)
|
||||
|
||||
### Event Exchange Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Acting user information is now included into the emitted events where possible.
|
||||
|
||||
GitHub issue: [rabbitmq-event-exchange#10](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/10)
|
||||
|
||||
|
||||
### AMQP 1.0 Plugin
|
||||
|
||||
This release introduces a new sub-project, an [Erlang client for AMQP 1.0](https://github.com/rabbitmq/rabbitmq-amqp1.0-client), and AMQP 1.0 support
|
||||
in the Shovel plugin.
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Transfer frames are no longer sent before credit has been granted.
|
||||
|
||||
GitHub issue: [rabbitmq-amqp1.0#43](https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/43)
|
||||
|
||||
* Ensure messages with `uint` TTL can round trip.
|
||||
|
||||
GitHub issue: [rabbitmq-amqp1.0#13](https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/13)
|
||||
|
||||
|
||||
### LDAP Authn/Authz Backend
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Topic authorisation support with variable expansion.
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-ldap#71](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/71)
|
||||
|
||||
|
||||
### Delayed Message Exchange Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to see how many messages are delayed in management UI
|
||||
|
||||
GitHub issue: [rabbitmq-delayed-message-exchange#3](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/issues/3)
|
||||
|
||||
|
||||
### Erlang Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Connection operations now use a reasonable timeout.
|
||||
|
||||
GitHub issue: [rabbitmq-erlang-client#85](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/85)
|
||||
|
||||
|
||||
### AMQP 0-9-1 Authn/Authz Backend
|
||||
|
||||
* Topic authorisation support with variable expansion.
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-amqp#16](https://github.com/rabbitmq/rabbitmq-auth-backend-amqp/issues/16)
|
||||
|
||||
|
||||
## 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, CLI tools or other sub-projects. Please download the archive named `rabbitmq-server-<version>.tar.xz` from this release
|
||||
page.
|
|
@ -0,0 +1,121 @@
|
|||
## RabbitMQ 3.7.1
|
||||
|
||||
RabbitMQ `3.7.1` is a bug fix release.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
This release has no known incompatibilities with 3.7.0. 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.
|
||||
|
||||
See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Standalone Mac build now bundles a version of Erlang/OTP that is compatible with High Sierra (20.1, to be specific).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#68](https://github.com/rabbitmq/rabbitmq-server-release/issues/68)
|
||||
|
||||
* RabbitMQ distribution now again can be built in an offline environment (one without access to the Internet).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#61](https://github.com/rabbitmq/rabbitmq-server-release/issues/61)
|
||||
|
||||
* `total_memory_available_override_value` was not available via the [new config format](https://www.rabbitmq.com/configure.html).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1445](https://github.com/rabbitmq/rabbitmq-server/issues/1445)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl set_parameter` ignored the virtual host argument and default to the default (`/`) vhost.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#232](https://github.com/rabbitmq/rabbitmq-cli/issues/232)
|
||||
|
||||
|
||||
### AWS Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* HTTP client proxy settings were applied to late and thus didn't have any effect.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-common#5](https://github.com/rabbitmq/rabbitmq-peer-discovery-common/issues/5)
|
||||
|
||||
|
||||
### Consul Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* HTTP client proxy settings were applied to late and thus didn't have any effect.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-common#5](https://github.com/rabbitmq/rabbitmq-peer-discovery-common/issues/5)
|
||||
|
||||
|
||||
### etcd Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* HTTP client proxy settings were applied to late and thus didn't have any effect.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-common#5](https://github.com/rabbitmq/rabbitmq-peer-discovery-common/issues/5)
|
||||
|
||||
|
||||
### Kubernetes Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* HTTP client proxy settings were applied to late and thus didn't have any effect.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-common#5](https://github.com/rabbitmq/rabbitmq-peer-discovery-common/issues/5)
|
||||
|
||||
|
||||
### Management and Management Agent Plugins
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Certain node metrics in multi-cluster environment were not merged correctly
|
||||
when aggregated.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#525](https://github.com/rabbitmq/rabbitmq-management/issues/525)
|
||||
|
||||
|
||||
### Auth Backend HTTP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* It was not possible to configure request HTTP method using the [new style config file](https://www.rabbitmq.com/configure.html).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-http#61](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/61)
|
||||
|
||||
|
||||
### Shovel Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Move Messages form on individual queue page didn't provide all the Shovel parameters required as
|
||||
of 3.7.0 and thus did not transfer any messages.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel-management#24](https://github.com/rabbitmq/rabbitmq-shovel-management/issues/24)
|
||||
|
||||
|
||||
### Erlang AMQP 1.0 Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Continuation frames without `delivery_id` were not handled correctly.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#11](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/11)
|
||||
|
||||
|
||||
## 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.1.tar.gz`.
|
|
@ -0,0 +1,248 @@
|
|||
## RabbitMQ 3.7.10
|
||||
|
||||
RabbitMQ `3.7.10` is a maintenance release. It focuses on bug fixes and minor usability improvements.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
`rabbitmq-plugins` in this release will produce an extra leading line of output, as they did in `3.6.x` releases,
|
||||
when `-q` is not provided. Tools that parse `rabbitmq-plugins` output should use `-q --no-table-headers` to suppress
|
||||
all output meant for interactive use.
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This is the [**last release to support Erlang/OTP 19.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ). Users are highly encouraged to
|
||||
upgrade to a more recent [supported Erlang version](https://www.rabbitmq.com/which-erlang.html).
|
||||
|
||||
#### 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**.
|
||||
|
||||
#### Documentation 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.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Channel stats emission performed some operations without a timeout, so listing channels or running
|
||||
a node health check could block and potentially cause temporary process accumulation on the node.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1783](https://github.com/rabbitmq/rabbitmq-server/issues/1783)
|
||||
|
||||
* Virtual host process memory usage was higher than necessary.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1770](https://github.com/rabbitmq/rabbitmq-server/pull/1770)
|
||||
|
||||
* Node could run into a failed assertion after a partial partition.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1682](https://github.com/rabbitmq/rabbitmq-server/issues/1682)
|
||||
|
||||
* Topic authorisation could fail with an exception if connection terminated (cleanly or abruptly) concurrently.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-common#290](https://github.com/rabbitmq/rabbitmq-common/pull/290), [rabbitmq/rabbitmq-server#1538](https://github.com/rabbitmq/rabbitmq-server/issues/1538)
|
||||
|
||||
* Pointing `RABBITMQ_SERVER_CODE_PATH` at a HiPE-precompiled code directory didn't result in HiPE-compiled
|
||||
modules being loaded.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1777](https://github.com/rabbitmq/rabbitmq-server/issues/1777)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `kernel.inet_dist_listen_min` and `kernel.inet_dist_listen_max` could not be configured via new style config.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1784](https://github.com/rabbitmq/rabbitmq-server/issues/1784)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl list_consumers` only listed consumers on queues that had leader replica hosted on
|
||||
the target node. Instead consumers of all queues in the virtual host should have been listed.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#284](https://github.com/rabbitmq/rabbitmq-cli/issues/284)
|
||||
|
||||
* A combination of `RABBITMQ_NODENAME` and `RABBITMQ_USE_LONGNAME` now works the same way for CLI
|
||||
tools as prior to 3.7.0.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#278](https://github.com/rabbitmq/rabbitmq-cli/issues/278)
|
||||
|
||||
* New command: `rabbitmq-diagnostics tls_versions`, that lists TLS versions available in the runtime
|
||||
on the target nodes.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#289](https://github.com/rabbitmq/rabbitmq-cli/pull/289)
|
||||
|
||||
* `rabbitmqadmin declare user` now supports providing a password hash and algorithm instead of a password.
|
||||
|
||||
Contributed by John W. Higgings.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#641](https://github.com/rabbitmq/rabbitmq-management/pull/641)
|
||||
|
||||
* `-q` was hardcoded for `rabbitmq-plugins`
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1781](https://github.com/rabbitmq/rabbitmq-server/issues/1781)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `rabbitmqctl set_log_level` is a new command that changes effective log level of a node at runtime.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#276](https://github.com/rabbitmq/rabbitmq-cli/issues/276)
|
||||
|
||||
* `rabbitmq-diagnostics runtime_thread_stats` is a new command that outputs runtime thread state stats.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#282](https://github.com/rabbitmq/rabbitmq-cli/pull/282)
|
||||
|
||||
* `rabbitmq-plugins directories` is a new command that outputs effective [plugin directories](https://www.rabbitmq.com/plugins.html#plugin-directories).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#261](https://github.com/rabbitmq/rabbitmq-cli/issues/261)
|
||||
|
||||
* `--silent` is a new flag that combines `--quiet` and `--no-table-headers` (where applicable).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#274](https://github.com/rabbitmq/rabbitmq-cli/issues/274)
|
||||
|
||||
* Improved error messages for several common issues that can make `rabbitmq-plugins` commands fail.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#283](https://github.com/rabbitmq/rabbitmq-cli/pull/283)
|
||||
|
||||
|
||||
### Management and Management Agent Plugins
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Exported definitions for an individual virtual host were missing [runtime parameters](https://www.rabbitmq.com/parameters.html).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#628](https://github.com/rabbitmq/rabbitmq-management/issues/628)
|
||||
|
||||
* Filter inputs now escape incomplete HTML tags from their values. Previously they only stripped complete and valid tags.
|
||||
Note that the inputs are not populated from request parameters and have to be manually populated by the user.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#646](https://github.com/rabbitmq/rabbitmq-management/issues/646)
|
||||
|
||||
* Exclusive queue owner connection now again can be navigated to using a link on the queue page.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#467](https://github.com/rabbitmq/rabbitmq-management/issues/467)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* More TLS options, including cipher suites, now can be configured using new style config format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#643](https://github.com/rabbitmq/rabbitmq-management/issues/643)
|
||||
|
||||
* Metric chart ranges now only list options for which enough data is [retained](https://www.rabbitmq.com/management.html#sample-retention).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#635](https://github.com/rabbitmq/rabbitmq-management/issues/635)
|
||||
|
||||
|
||||
### STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* TCP listener options now can be configured using new style configuration format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-stomp#129](https://github.com/rabbitmq/rabbitmq-stomp/issues/129)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Backported several stability improvements for interaction with AMQP 1.0 endpoints from the 3.8 development
|
||||
branch (master).
|
||||
|
||||
Changes: [one](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/commit/8f0f7df34904abdee67e9764406837a5a7ecc091), [two](https://github.com/rabbitmq/rabbitmq-amqp1.0-common/commit/43bf4486fe6b993e5bc000056e78767889a23bbe)
|
||||
|
||||
* Shovels now can be created with blank publish properties.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel#46](https://github.com/rabbitmq/rabbitmq-shovel/issues/46)
|
||||
|
||||
|
||||
### Consistent Hash Exchange Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin relied on a non-deterministic ordering behavior when bindings were removed (e.g. because a queue was
|
||||
deleted). This could lead to inconsistent hash ring state and affect routing behavior.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-consistent-hash-exchange#40](http://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/issues/40)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* When `web_mqtt.ssl.listener` is set, TLS certificate, key and other TLS settings were ignored.
|
||||
|
||||
GitHub: [rabbitmq/rabbitmq-web-stomp#104](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/104)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [Proxy protocol](https://www.rabbitmq.com/networking.html#proxy-protocol) support.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#84](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/84)
|
||||
|
||||
* TCP (as in, non-TLS) listener now can be disabled.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#100](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/100)
|
||||
|
||||
* More TLS options, including cipher suites, now can be configured using new style config format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#101](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/101)
|
||||
|
||||
* Proxy protocol now can be enabled via new style config format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#99](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/99)
|
||||
|
||||
* Resource-driven flow control support.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#40](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/40)
|
||||
|
||||
|
||||
### Web MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* When `web_mqtt.ssl.listener` is set, TLS certificate, key and other TLS settings were ignored.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#48](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/48)
|
||||
|
||||
* Last Will message was not sent when connection that had it configured was closed cleanly.
|
||||
|
||||
Contributed by Karen Mae Bajador.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#52](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/52)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [Proxy protocol](https://www.rabbitmq.com/networking.html#proxy-protocol) support.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#29](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/29)
|
||||
|
||||
* TCP (as in, non-TLS) listener now can be disabled.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#31](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/31)
|
||||
|
||||
* More TLS options, including cipher suites, now can be configured using new style config format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#45](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/45)
|
||||
|
||||
* Proxy protocol now can be enabled via new style config format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#46](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/46)
|
||||
|
||||
* Resource-driven flow control support.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#40](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/40)
|
||||
|
||||
## 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.10.tar.gz`.
|
|
@ -0,0 +1,139 @@
|
|||
## RabbitMQ 3.7.11
|
||||
|
||||
RabbitMQ `3.7.11` is a maintenance release. It focuses on bug fixes and
|
||||
minor usability improvements. This is the first release to **require Erlang/OTP 20.3+**.
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
Per the new Erlang version support policy in effect starting with January 2019,
|
||||
this release [**drops support for 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
|
||||
|
||||
* This release requires Erlang/OTP 20.3 or later.
|
||||
* Default CLI command exit code has changed from 70 (`EX_UNAVAILABLE`) to 69 (`EX_SOFTWARE`).
|
||||
This does not affect all commands and all error conditions, e.g. argument validation still uses code 64 (`EX_USAGE`)
|
||||
|
||||
#### 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**.
|
||||
|
||||
#### Documentation 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.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Erlang Version Requirement
|
||||
|
||||
* This release **requires Erlang/OTP `20.3.x`** or `21.x`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1820](https://github.com/rabbitmq/rabbitmq-server/issues/1820)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Number of socket file descriptors used is now correctly incremented.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#652](https://github.com/rabbitmq/rabbitmq-management/issues/652)
|
||||
|
||||
* Configuration schema file was not copied during upgrades.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-server#1843](https://github.com/rabbitmq/rabbitmq-server/issues/1843)
|
||||
|
||||
* First heartbeat frame on a successfully negotiated connection is now sent after a half of the negotiated heartbeat
|
||||
timeout. Previously it was sent after a complete timeout. Since most connections have other activity after
|
||||
connection handshake is complete, this didn't have any visible effects on most systems.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#293](https://github.com/rabbitmq/rabbitmq-common/pull/293)
|
||||
|
||||
* If Syslog was configured to use TCP, the node could fail to start.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1850](https://github.com/rabbitmq/rabbitmq-server/issues/1850)
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Several new `rabbitmq-diagnostics` commands useful for diagnostics and health checks.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-cli/issues/292](https://github.com/rabbitmq/rabbitmq-cli/issues/292), [rabbitmq/rabbitmq-cli#303](https://github.com/rabbitmq/rabbitmq-cli/pull/303), [rabbitmq/rabbitmq-cli#303](https://github.com/rabbitmq/rabbitmq-cli/pull/303)
|
||||
|
||||
* All CLI tools now can display command-specific help with `[command name] --help`, e.g. `rabbitmqctl set_policy --help`
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#306](https://github.com/rabbitmq/rabbitmq-cli/pull/306)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `rabbitmqadmin` now defines an exception not available in Python 2, making TCP connection
|
||||
error reporting more similar with that on Python 3.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#647](https://github.com/rabbitmq/rabbitmq-management/issues/647)
|
||||
|
||||
|
||||
### AWS Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* When an EC2 API endpoint could not be reached, the plugin terminated in a way that
|
||||
brought down the entire node with it.
|
||||
|
||||
GitHib issue: [rabbitmq/rabbitmq-peer-discovery-aws#25](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/25)
|
||||
|
||||
|
||||
### STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Avoid using a private socket API function that's likely going away in Erlang 22.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-stomp#128](https://github.com/rabbitmq/rabbitmq-stomp/pull/128)
|
||||
|
||||
* Default topic exchange used by the plugin is now configurable.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-stomp#94](https://github.com/rabbitmq/rabbitmq-stomp/issues/94)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Avoid using a private socket API function that's likely going away in Erlang 22.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-mqtt#171](https://github.com/rabbitmq/rabbitmq-mqtt/pull/171)
|
||||
|
||||
|
||||
### AuthN/AuthZ Backend Cache Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The new style config format did not support `auth_cache.cache_refusals`
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-cache#17](https://github.com/rabbitmq/rabbitmq-auth-backend-cache/issues/17)
|
||||
|
||||
### Erlang Client
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Avoid using a private socket API function that's likely going away in Erlang 22.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-erlang-client#114](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/114)
|
||||
|
||||
|
||||
|
||||
## 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.11.tar.gz`.
|
|
@ -0,0 +1,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`.
|
|
@ -0,0 +1,177 @@
|
|||
## RabbitMQ 3.7.13
|
||||
|
||||
RabbitMQ `3.7.13` 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.
|
||||
|
||||
#### 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
|
||||
|
||||
* Binding and unbinding operations could fail with a `NOT_FOUND` channel exception if binding tables
|
||||
got out of sync.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-server#1873](https://github.com/rabbitmq/rabbitmq-server/issues/1873), [rabbitmq/rabbitmq-server#1878](https://github.com/rabbitmq/rabbitmq-server/pull/1878), [rabbitmq/rabbitmq-server#1884](https://github.com/rabbitmq/rabbitmq-server/pull/1884)
|
||||
|
||||
* Eliminated an accumulating inefficiency around topic-based authorisation (only topic
|
||||
exchanges are affected).
|
||||
|
||||
Contributed by [Ayanda Dube](https://github.com/Ayanda-D).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1886](https://github.com/rabbitmq/rabbitmq-server/pull/1886)
|
||||
|
||||
* TCP connections could accumulate when [Proxy protocol](https://www.rabbitmq.com/networking.html#proxy-protocol)
|
||||
was enabled and proxy's TCP connections were closed before Proxy protocol header was received and parsed.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1901](https://github.com/rabbitmq/rabbitmq-server/issues/1901)
|
||||
|
||||
* When a queue was deleted, [internal events](https://github.com/rabbitmq/rabbitmq-event-exchange)
|
||||
about consumer cancellation (`consumer.deleted`) were not emitted.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1892](https://github.com/rabbitmq/rabbitmq-server/issues/1892)
|
||||
|
||||
* Connection tracking subsystem failed and logged an exception when connection was closed before it could
|
||||
be registered.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1898](https://github.com/rabbitmq/rabbitmq-server/pull/1898)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Exclusive queue property mismatch during queue declaration now produces a more helpful
|
||||
error message.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1887](https://github.com/rabbitmq/rabbitmq-server/issues/1887)
|
||||
|
||||
* Erlang 22 forward compatibility: support more cipher suites for config value encryption.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#307](https://github.com/rabbitmq/rabbitmq-common/pull/307)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `rabbitmqctl shutdown` in `--wait` mode now uses node names instead of `gethostname(2)` when inferring
|
||||
if target node is remote. This is more reliable as it takes explicitly set node names and `ERL_INETRC`
|
||||
settings into account. In addition, it treats all nodes that have `@localhost` in the name as local
|
||||
(running on the same host).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#327](https://github.com/rabbitmq/rabbitmq-cli/issues/327).
|
||||
|
||||
* `rabbitmqctl forget_cluster_node` produces a more helpful error message when asked to remove a node with running
|
||||
RabbitMQ application.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#323](https://github.com/rabbitmq/rabbitmq-cli/issues/323)
|
||||
|
||||
* New command, `rabbitmqctl force_gc`, that requests fullsweep GC for all processes on the target node.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#319](https://github.com/rabbitmq/rabbitmq-cli/issues/319)
|
||||
|
||||
* All RabbitMQ CLI tools now support `--version` as well as `version` as a command.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#314](https://github.com/rabbitmq/rabbitmq-cli/issues/314)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqadmin`'s' `declare vhost_limit` and `delete vhost_limit` did not support the vhost
|
||||
parameter.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#667](https://github.com/rabbitmq/rabbitmq-management/issues/667)
|
||||
|
||||
* `PUT /api/vhost-limits/{vhost}/{limit}` documentation was incorrect and used confusing language.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#667](https://github.com/rabbitmq/rabbitmq-management/issues/667)
|
||||
|
||||
|
||||
### Debian and RPM Packages
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Debian and RPM packages no longer source `/etc/profile` in post installation scripts.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#93](https://github.com/rabbitmq/rabbitmq-server-release/issues/93)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Federation links could fail to start with an `{error, already_started} `.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#84](https://github.com/rabbitmq/rabbitmq-federation/issues/84)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* AMQP 1.0 endpoint URIs could fail to parse.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#23](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/23)
|
||||
|
||||
|
||||
### HTTP AuthN/AuthZ Backend Plugin
|
||||
|
||||
#### Enhnanceements
|
||||
|
||||
* User tags are now passed to virtual host, resource and topic authorisation check endpoints as a space-separated string.
|
||||
|
||||
Contributed by [romerod](https://github.com/romerod).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-http#79](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/79)
|
||||
|
||||
|
||||
### Trust Store Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* HTTP provider did not correctly update `If-Modified-Since` request header when certificates
|
||||
(and thus their `Last-Modified` response header) were updated.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-trust-store#68](https://github.com/rabbitmq/rabbitmq-trust-store/issues/68)
|
||||
|
||||
|
||||
## 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.13.tar.gz`.
|
|
@ -0,0 +1,100 @@
|
|||
## RabbitMQ 3.7.14
|
||||
|
||||
RabbitMQ `3.7.14` 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.
|
||||
|
||||
#### 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
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* TCP and TLS listeners are started later to reduce the probability of clients connecting to and performing operations
|
||||
on a node that's not fully initialised.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1869](https://github.com/rabbitmq/rabbitmq-server/issues/1869)
|
||||
|
||||
* Reduced schema data store locking for binding operations.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1900](https://github.com/rabbitmq/rabbitmq-server/pull/1900)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* More informative and user-friendly help messages produced by `help` and `help [command]` commands.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#332](https://github.com/rabbitmq/rabbitmq-cli/pull/332)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Groups of upstream URIs were not formatted correctly.
|
||||
|
||||
Contributed by [Grigory Starinkin](https://github.com/velimir).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#683](https://github.com/rabbitmq/rabbitmq-management/pull/683)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `management.load_definitions` now can point at a directory of definition files, not just a single file.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#665](https://github.com/rabbitmq/rabbitmq-management/issues/665)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Federation links could fail to start with an `{error, already_started}`.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-federation#84](https://github.com/rabbitmq/rabbitmq-federation/issues/84), [rabbitmq/rabbitmq-federation#87](https://github.com/rabbitmq/rabbitmq-federation/pull/87)
|
||||
|
||||
|
||||
### RPM Package
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* RPM package post-install scripts now restart the node in case it was running before the upgrade.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#94](https://github.com/rabbitmq/rabbitmq-server-release/issues/94)
|
||||
|
||||
|
||||
## 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.14.tar.gz`.
|
|
@ -0,0 +1,255 @@
|
|||
## RabbitMQ 3.7.15
|
||||
|
||||
RabbitMQ `3.7.15` 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.
|
||||
It is also the first release to support Erlang 22.
|
||||
|
||||
### 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.
|
||||
|
||||
#### 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
|
||||
|
||||
* `rabbitmq.conf` validation errors on startup unintentionally lacked a lot of relevant details.
|
||||
|
||||
Contributed by Grigory Starinkin.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1985](https://github.com/rabbitmq/rabbitmq-server/issues/1985)
|
||||
|
||||
* Message store compaction could enter a race condition with queue operations.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2000](https://github.com/rabbitmq/rabbitmq-server/issues/2000)
|
||||
|
||||
* Internal schema data store consistency checks used an on-disk location which could be unintentionally
|
||||
preserved between deployments and make subsequent deployments fail. Now an entirely in-memory set of tables
|
||||
is used for schema consistency checks.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1960](https://github.com/rabbitmq/rabbitmq-server/pull/1960)
|
||||
|
||||
* When [publisher confirms](https://www.rabbitmq.com/confirms.html) had to send both positive and negative acknowledgements around the same time,
|
||||
it could be done in a way that would violate expectations of most client libraries.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1719](https://github.com/rabbitmq/rabbitmq-server/pull/1719)
|
||||
|
||||
* Policy validation could allow invalid values in certain cases.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1999](https://github.com/rabbitmq/rabbitmq-server/pull/1999)
|
||||
|
||||
* `amq.rabbitmq.log` exchage was lazily initialised and could be temporarily unavailable after node start.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1973](https://github.com/rabbitmq/rabbitmq-server/issues/1973)
|
||||
|
||||
* Clearing a policy with `overflow` behaviour or removing the key from it did not
|
||||
roll back the overflow behaviour to `drop-head` (the default).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1980](https://github.com/rabbitmq/rabbitmq-server/issues/1980)
|
||||
|
||||
* Missing `getconf` command (used to fetch platform's memory page size) is now handled more gracefully
|
||||
with a default value.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#318](https://github.com/rabbitmq/rabbitmq-common/issues/318)
|
||||
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Initial Erlang 22 compatibility.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-common#315](https://github.com/rabbitmq/rabbitmq-common/issues/315),
|
||||
[rabbitmq/rabbitmq-common#313](https://github.com/rabbitmq/rabbitmq-common/pull/313),
|
||||
[rabbitmq/rabbitmq-common#323](https://github.com/rabbitmq/rabbitmq-common/pull/323)
|
||||
|
||||
* Connection tracking is now more efficient, reducing node load
|
||||
and internal event backlog in case of [high connection churn](https://www.rabbitmq.com/networking.html#dealing-with-high-connection-churn).
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-server#1971](https://github.com/rabbitmq/rabbitmq-server/pull/1971),
|
||||
[rabbitmq/rabbitmq-server#1975](https://github.com/rabbitmq/rabbitmq-server/pull/1975)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Enabled kernel sendfile for HTTP API documentation pages could lead to leaked file descriptors
|
||||
when those pages are accessed repeatedly (e.g. a tab is always open for weeks and weeks).
|
||||
The plugin now disables sendfile for those static files by default. It can be manually enabled
|
||||
via configuration as needed.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#698](https://github.com/rabbitmq/rabbitmq-management/pull/698)
|
||||
|
||||
* Listing permissions could result in a 500 response.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#688](https://github.com/rabbitmq/rabbitmq-management/pull/688)
|
||||
|
||||
* When CORS headers were enabled, binding endpoints were inaccessible due to an exception.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#687](https://github.com/rabbitmq/rabbitmq-management/pull/687)
|
||||
|
||||
* An option to display message rates for the last 8 and 24 hours was hidden in the UI even when data
|
||||
for those time intervals was available.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#693](https://github.com/rabbitmq/rabbitmq-management/pull/693)
|
||||
|
||||
* Information unit suffix incorrectly suggested that values were powers of 10 (gigabyte) instead of
|
||||
power of 2 (gibibyte).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#694](https://github.com/rabbitmq/rabbitmq-management/pull/694)
|
||||
|
||||
|
||||
### AMQP 1.0 Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Default host specified in `amqp1_0.default_vhost` (`rabbitmq_amqp1_0.default_vhost` in classic config format)
|
||||
now takes precedence over `default_vhost` (`rabbit.default_vhost`) in the core broker.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0#86](https://github.com/rabbitmq/rabbitmq-amqp1.0/pull/86)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Connections to source and destination nodes are now correctly closed if topology operations
|
||||
fail on either end (e.g. due to insufficient permissions).
|
||||
|
||||
Contributed by Grigory Starinkin.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel#54](https://github.com/rabbitmq/rabbitmq-shovel/pull/54)
|
||||
|
||||
* Improved handling of cases where AMQP 1.0 endpoint connection was refused access to a virtual host.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel#57](https://github.com/rabbitmq/rabbitmq-shovel/pull/57)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* The plugin now provides a new CLI command and HTTP API endpoint for restarting
|
||||
a dynamic Shovel.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel#48](https://github.com/rabbitmq/rabbitmq-shovel/issues/48)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Queue federation now uses a more informative consumer tag value.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#66](https://github.com/rabbitmq/rabbitmq-federation/issues/66)
|
||||
|
||||
|
||||
## CLI Tools
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Streamling `list_*` commands could hang when encountering an error from one of the cluster nodes.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#336](https://github.com/rabbitmq/rabbitmq-cli/issues/336)
|
||||
|
||||
* `rabbitmqctl delete_queue -u` failed argument validation due to a typo.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#339](https://github.com/rabbitmq/rabbitmq-cli/issues/339)
|
||||
|
||||
* `rabbitmq-diagnostics cipher_suites` now provides a way to display all available (not just enabled)
|
||||
cipher suites.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#342](https://github.com/rabbitmq/rabbitmq-cli/issues/342)
|
||||
|
||||
### Enhancements
|
||||
|
||||
* When an unsupported node name is used, CLI tools will now produce more specific error messages.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#345](https://github.com/rabbitmq/rabbitmq-cli/issues/345)
|
||||
|
||||
* `rabbitmq-diagnostics erlang_version` now supports `--offline`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#315](https://github.com/rabbitmq/rabbitmq-cli/issues/315)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Default STOMP plugin log is now used for `CONNECT` frames without credentials.
|
||||
|
||||
Contributed by Nick Goossens.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#110](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/110)
|
||||
|
||||
|
||||
### Erlang AMQP 0-9-1 Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Direct connections (via Erlang distribution) from outside of a RabbitMQ should no longer fail due to
|
||||
a dependency on a module that was previously a part of core RabbitMQ broker.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-erlang-client#91](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/91)
|
||||
|
||||
|
||||
### Auth Backend Cache Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Virtual host endpoint requests were not cached.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-auth-backend-cache#20](https://github.com/rabbitmq/rabbitmq-auth-backend-cache/issues/20),
|
||||
[rabbitmq/rabbitmq-auth-backend-cache#24](https://github.com/rabbitmq/rabbitmq-auth-backend-cache/issues/24)
|
||||
|
||||
|
||||
### Top Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Calculation worker process could fail due to an exception.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-top#34](https://github.com/rabbitmq/rabbitmq-top/issues/34)
|
||||
|
||||
|
||||
### JMS Topic Exchange Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `LIKE` operator could be incorrectly evaluated.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-jms-topic-exchange#18](https://github.com/rabbitmq/rabbitmq-jms-topic-exchange/issues/18)
|
||||
|
||||
|
||||
## 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.7.15.tar.xz`.
|
|
@ -0,0 +1,174 @@
|
|||
## RabbitMQ 3.7.16
|
||||
|
||||
RabbitMQ `3.7.16` is a maintenance release. It focuses on bug fixes and minor usability improvements.
|
||||
|
||||
### 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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### OpenSUSE Leap 42.3 Support Dropped
|
||||
|
||||
OpenSUSE Leap 42.3 has [gone out of support on July 1st](https://en.opensuse.org/Lifetime), 2019. Packages for
|
||||
that distribution are therefore no longer produced because upstream OpenSUSE repositories are no longer
|
||||
available.
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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 hosting an exclusive queue was restarted with queue leader locator being something other than
|
||||
"node local", redeclaration of the queue failed.
|
||||
|
||||
Contributed by Lajos Gerecs.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2039](https://github.com/rabbitmq/rabbitmq-server/issues/2039)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to configure default worker pool size:
|
||||
|
||||
``` ini
|
||||
default_worker_pool_size = 1024
|
||||
```
|
||||
|
||||
This may be necessary in environments with a large number of queues (say, hundreds of thousands)
|
||||
to speed up queue and binding recovery on node boot. By default the size of the pool is
|
||||
computed as the number of [available runtime schedulers](https://www.rabbitmq.com/runtime.html).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2030](https://github.com/rabbitmq/rabbitmq-server/issues/2030)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl report` and `rabbitmqctl list_queues` could fail with a `{bad_argument,type}` because of a 3.8-specific column was erroneously listed as supported.
|
||||
|
||||
Contributed by Lajos Gerecs.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#354](https://github.com/rabbitmq/rabbitmq-cli/pull/354)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* New health check: `rabbitmq-diagnostics check_virtual_hosts`.
|
||||
|
||||
[rabbitmq/rabbitmq-cli#302](https://github.com/rabbitmq/rabbitmq-cli/issues/302)
|
||||
|
||||
* New observability command, `rabbitmq-diagnostics log_location [--all]`, displays log file location(s)
|
||||
on target node. The node is assumed to be running.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#325](https://github.com/rabbitmq/rabbitmq-cli/issues/325)
|
||||
|
||||
* New observability commands, `rabbitmq-diagnostics log_tail` and `rabbitmq-diagnostics log_tail_stream`,
|
||||
provide a way to remotely inspect recent log file entries on a running node. The commands are meant
|
||||
to be used for troubleshooting and not to automate log aggregation.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#326](https://github.com/rabbitmq/rabbitmq-cli/issues/326)
|
||||
|
||||
* `rabbitmq-diagnostics schema_info` displays information about internal database schema
|
||||
(tables, their properties and metadata).
|
||||
|
||||
[rabbitmq/rabbitmq-cli#330](https://github.com/rabbitmq/rabbitmq-cli/issues/330)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* When multiple definition files were [imported on node boot](https://www.rabbitmq.com/management.html#load-definitions), errors were not reported
|
||||
the same way they would be with a single file.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#710](https://github.com/rabbitmq/rabbitmq-management/pull/710)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* The plugin now disables [client inactivity timeout](https://www.rabbitmq.com/management.html#advanced-options) for the definition import endpoints and reports
|
||||
progress using periodic [`102 Processing` responses](https://httpstatuses.com/102) so that the connection is kept alive even if importing
|
||||
definition takes a long time.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#711](https://github.com/rabbitmq/rabbitmq-management/pull/711)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `3.7.15` introduced a regression where Shovels would not try to reconnect after a network
|
||||
failure.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel#60](https://github.com/rabbitmq/rabbitmq-shovel/issues/60)
|
||||
|
||||
|
||||
### Web MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Default maximum connection limit set by a dependency (1024) has been lifted.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#55](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/55)
|
||||
|
||||
* Client ID wasn't propagated to connection metadata for MQTT connections over WebSockets.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#57](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/57)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Default maximum connection limit set by a dependency (1024) has been lifted.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#113](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/113)
|
||||
|
||||
|
||||
### Trust Store Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possiible to configure HTTPS proxy settings for the HTTPS backend.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-trust-store#69](https://github.com/rabbitmq/rabbitmq-trust-store/issues/69)
|
||||
|
||||
|
||||
### Debian Package
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Exit code 69 is now considered a success again in the systemd service file.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-server-release#104](https://github.com/rabbitmq/rabbitmq-server-release/pull/104), [rabbitmq/rabbitmq-server-release#51](https://github.com/rabbitmq/rabbitmq-server-release/issues/51)
|
||||
|
||||
|
||||
## 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.7.16.tar.xz`.
|
|
@ -0,0 +1,122 @@
|
|||
## RabbitMQ 3.7.17
|
||||
|
||||
RabbitMQ `3.7.17` is a maintenance release. It focuses on bug fixes and upgrades
|
||||
a JavaScript dependency in the management UI to patch three CVEs in that library.
|
||||
|
||||
### 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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `amqqueue` module and the feature flag subsystem were backported from 3.8. This makes it possible
|
||||
for plugin developers to target both `3.7.x` and `3.8.x` release series.
|
||||
|
||||
Note that this only backports the API. There are no feature flags to enable in `3.7.17`.
|
||||
No 3.8-specific features that must be enabled via feature flags were backported and there are no
|
||||
plans to do it in later `3.7.x` releases.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2028](https://github.com/rabbitmq/rabbitmq-server/issues/2028)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl stop` description had a typo.
|
||||
|
||||
Contributed by Eugene Pirogov.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#363](https://github.com/rabbitmq/rabbitmq-cli/pull/363)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Commands that take passwords as arguments now accept them via standard input.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#365](https://github.com/rabbitmq/rabbitmq-cli/issues/365)
|
||||
|
||||
* `rabbitmq-diagnostics observer` no longer requires RabbitMQ application to be running on
|
||||
the target node.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#368](https://github.com/rabbitmq/rabbitmq-cli/pull/368)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* jQuery has been upgraded to `3.4.x`. This series addresses a number of known CVEs in the library: [CVE-2015-9251](https://nvd.nist.gov/vuln/detail/CVE-2015-9251), [CVE-2017-16012](https://nvd.nist.gov/vuln/detail/CVE-2017-16012), [CVE-2019-11358](https://nvd.nist.gov/vuln/detail/CVE-2019-11358).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#714](https://github.com/rabbitmq/rabbitmq-management/issues/714)
|
||||
|
||||
* Blank effective policy definitions were formatted as a JSON array instead of an empty object in API responses.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#701](https://github.com/rabbitmq/rabbitmq-management/issues/701)
|
||||
|
||||
#### Usability
|
||||
|
||||
* Definition import endpoint no longer reports progress via `102 Processing` responses. They proved to be problematic
|
||||
for some HTTP clients, including `rabbitmqadmin`.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-management#715](https://github.com/rabbitmq/rabbitmq-management/issues/715), [rabbitmq/rabbitmq-management#718](https://github.com/rabbitmq/rabbitmq-management/pull/718)
|
||||
|
||||
* Leading and trailing white space characters are now highlighted in queue and exchange names to make them easier to spot.
|
||||
Tab characters are highlighted as well, even in the middle of the word. The idea is that those characters are typically used by mistake and should be easier to notice.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#721](https://github.com/rabbitmq/rabbitmq-management/pull/721)
|
||||
|
||||
* It wasn't possible to delete a binding declared with `routing_key` set to `null` (only possible via the HTTP API).
|
||||
Now such bindings can be deleted but this practice is highly discouraged. Future HTTP API versions might refuse to accept
|
||||
`null` values as they are impossible to declare via AMQP 0-9-1.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#723](https://github.com/rabbitmq/rabbitmq-management/pull/723)
|
||||
|
||||
|
||||
### Shovel Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Shovel restart link conflicted with that in the Federation management plugin. When both were enabled, only one
|
||||
was actually functional.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel-management#35](https://github.com/rabbitmq/rabbitmq-shovel-management/issues/35)
|
||||
|
||||
* Shovel URI was misformatted for a period of time after UI refresh happened and before the Shovel was fully initialised and running.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel-management#37](https://github.com/rabbitmq/rabbitmq-shovel-management/issues/37)
|
||||
|
||||
## 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.7.17.tar.xz`.
|
|
@ -0,0 +1,163 @@
|
|||
## RabbitMQ 3.7.18
|
||||
|
||||
RabbitMQ `3.7.18` is a maintenance release that includes a fix to [CVE-2019-11281](https://pivotal.io/security/cve-2019-11281).
|
||||
Kudos to [Markus @RareData Alvila](https://twitter.com/RareData) for responsibly disclosing the vulnerability.
|
||||
|
||||
The release also contains bug fixes and internal
|
||||
API changes that refine the common plugin API with the [upcoming `3.8.0` version](https://github.com/rabbitmq/rabbitmq-server/releases/).
|
||||
|
||||
### 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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
This release introduces credential obfuscation for Shovel connections and Federation links. This requires
|
||||
one more application (library) from Erlang/OTP, `tools`. Operators must make sure that the Erlang runtime
|
||||
provides it. On Debian-based systems, the package [`erlang-tools`](https://packages.ubuntu.com/bionic/erlang-tools) must be installed.
|
||||
|
||||
This release contains a **breaking change to the plugin API** around queue state access introduced in `3.7.17`.
|
||||
Plugins that do not use that API revision are not affected. All plugins that ship with RabbitMQ have been updated
|
||||
as necessary.
|
||||
|
||||
This revision was necessary to maintain a single API with the upcoming `3.8.0` release.
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* New style config file parser is now more forgiving, handles trailing whitespace and empty lines
|
||||
better.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2073](https://github.com/rabbitmq/rabbitmq-server/pull/2073)
|
||||
|
||||
* `gen_server2` now includes two new functions, `stop/1` and `stop/3`, which `gen_server` in OTP
|
||||
introduced a couple of releases ago.
|
||||
|
||||
Contributed by @codeadict.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#335](https://github.com/rabbitmq/rabbitmq-common/pull/335)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Log rotation is functional again on Windows.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2059](https://github.com/rabbitmq/rabbitmq-server/issues/2059)
|
||||
|
||||
* White space characters in `RABBITMQ_BASE` and other [configurable paths](https://www.rabbitmq.com/configure.html#customise-environment) are now handled better on Windows.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2025](https://github.com/rabbitmq/rabbitmq-server/issues/2025)
|
||||
|
||||
* Eliminate a "deprecated Ranch options" log warning.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2069](https://github.com/rabbitmq/rabbitmq-server/issues/2069)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Two more TLS listener options are now available via new style configuration file:
|
||||
`management.ssl.verify` and `management.ssl.fail_if_no_peer_cert`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#735](https://github.com/rabbitmq/rabbitmq-management/issues/735)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* HTTP API documentation correction.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#737](https://github.com/rabbitmq/rabbitmq-management/issues/737)
|
||||
|
||||
|
||||
### AMQP 1.0 Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Connections that fail due to insufficient client permissions (authorisation failures) are now handled
|
||||
gracefully with reasonable log messages.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0#92](https://github.com/rabbitmq/rabbitmq-amqp1.0/pull/92)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Sensitive values in Shovel connection state (namely, the connection credentials) are now stored in
|
||||
encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
|
||||
at the cost of making troubleshooting authentication failures harder.
|
||||
|
||||
GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Sensitive values in Federation link state (namely, the connection credentials) are now stored in
|
||||
encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
|
||||
at the cost of making troubleshooting authentication failures harder.
|
||||
|
||||
GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
|
||||
|
||||
|
||||
### RabbitMQ Erlang Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Sensitive values in connection state (namely, the connection credentials) are now stored in
|
||||
encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
|
||||
at the cost of making troubleshooting authentication failures harder.
|
||||
|
||||
GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
|
||||
|
||||
|
||||
### Web STOMP Examples Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* jQuery was upgraded to `3.4.x`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp-examples#18](https://github.com/rabbitmq/rabbitmq-web-stomp-examples/issues/18)
|
||||
|
||||
|
||||
### Web MQTT Examples Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* jQuery was upgraded to `3.4.x`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt-examples#2](https://github.com/rabbitmq/rabbitmq-web-mqtt-examples/issues/2)
|
||||
|
||||
|
||||
## 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.7.18.tar.xz`.
|
|
@ -0,0 +1,114 @@
|
|||
## RabbitMQ 3.7.19
|
||||
|
||||
RabbitMQ `3.7.19` is a maintenance release that focuses on bug fixes.
|
||||
RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
Per the new Erlang version support policy in effect starting with January 2019,
|
||||
this release [**no longer supports Erlang/OTP 20.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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
* `rabbit_diagnostics:binary_refs/1`, a predecessor to Recon used for binary heap inspection,
|
||||
could fail with an exception due to a race condition.
|
||||
|
||||
Contributed by John Eckersberg (@jeckersb).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2117](https://github.com/rabbitmq/rabbitmq-server/pull/2117)
|
||||
|
||||
* It was not possible to set `ERL_MAX_PORTS` in `rabbitmq-env-conf.bat`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2084](https://github.com/rabbitmq/rabbitmq-server/issues/2084)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Import of large definition files submitted via management UI form could fail.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#739](https://github.com/rabbitmq/rabbitmq-management/issues/739)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmq-diagnostics node_health_check` would pass even when some cluster nodes had
|
||||
network partitions in effect.
|
||||
|
||||
Contributed by Lajos Gerecs (@luos).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2127](https://github.com/rabbitmq/rabbitmq-server/pull/2127)
|
||||
|
||||
* `rabbitmqctl set_parameter` output could be misleading.
|
||||
|
||||
Contributed by @Whitespirit0.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#376](https://github.com/rabbitmq/rabbitmq-cli/issues/376)
|
||||
|
||||
|
||||
### STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Cleanup of a subscription after a server-initiated [consumer cancelation](https://www.rabbitmq.com/consumer-cancel.html)
|
||||
failed with an exception.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-stomp#136](https://github.com/rabbitmq/rabbitmq-stomp/issues/136)
|
||||
|
||||
|
||||
### Event Exchange Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Events could fail to be emitted in multi-node clusters.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-event-exchange#41](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/41)
|
||||
|
||||
|
||||
### Management Exchange Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin was not updated to correctly fetch a list of TCP and TLS listeners used
|
||||
by the management plugin.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management-exchange#8](https://github.com/rabbitmq/rabbitmq-management-exchange/issues/8)
|
||||
|
||||
|
||||
## 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.7.19.tar.xz`.
|
|
@ -0,0 +1,30 @@
|
|||
## RabbitMQ 3.7.2
|
||||
|
||||
RabbitMQ `3.7.2` fixes an issue in the HTTP auth backend plugin that was introduced in `3.7.1`.
|
||||
It has no other functional changes compared to `3.7.1`.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
This release has no known incompatibilities with earlier 3.7.x versions.
|
||||
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.
|
||||
|
||||
See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Auth Backend HTTP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Plugin threw an exception while performing HTTP requests.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-http#62](https://github.com/rabbitmq/rabbitmq-auth-backend-http/issues/62)
|
||||
|
||||
|
||||
## 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.2.tar.gz`.
|
|
@ -0,0 +1,163 @@
|
|||
## RabbitMQ 3.7.20
|
||||
|
||||
RabbitMQ `3.7.20` is a maintenance release that focuses on bug fixes.
|
||||
RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
Per the new Erlang version support policy in effect starting with January 2019,
|
||||
this release [**no longer supports Erlang/OTP 20.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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
* Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
|
||||
of a rolling upgrade-then-restart for each node individually.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2132](https://github.com/rabbitmq/rabbitmq-server/issues/2132)
|
||||
|
||||
* Improved error handling in a module that continuously registers the node with [epmd](https://www.rabbitmq.com/clustering.html) avoids
|
||||
log noise.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2130](https://github.com/rabbitmq/rabbitmq-server/issues/2130)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl await_startup` failed with an exception when effective timeout was set to `infinity`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2144](https://github.com/rabbitmq/rabbitmq-server/pull/2144)
|
||||
|
||||
* `rabbitmq-diagnostics check_port_connectivity` produced a false positive in an IPv6-only environment.
|
||||
|
||||
Contributed by Gabriele Santomaggio.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#385](https://github.com/rabbitmq/rabbitmq-cli/pull/385)
|
||||
|
||||
* `rabbitmq-diagnostics status`, `rabbitmq-diagnostics cluster_status`, `rabbitmq-diagnostics listeners` now support
|
||||
`--formatter=erlang` (raw Erlang data structure output)
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#383](https://github.com/rabbitmq/rabbitmq-cli/issues/383)
|
||||
|
||||
|
||||
### Kubernetes Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Requests to Kubernetes API endpoints failed with an `nxdomain` (domain name resolution failure)
|
||||
in an IPv6-only environment. Now the plugin will configure its HTTP[S] client to use IPv6 if
|
||||
the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html) tells it to.
|
||||
See [Using IPv6 for Inter-node Communication (and CLI Tools)](https://www.rabbitmq.com/networking.html#distribution-ipv6) to learn more.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-k8s#55](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/issues/55)
|
||||
|
||||
### AWS Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin will now configure its HTTP[S] client to use IPv6 if
|
||||
the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html) tells it to.
|
||||
See [Using IPv6 for Inter-node Communication (and CLI Tools)](https://www.rabbitmq.com/networking.html#distribution-ipv6) to learn more.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-aws#32](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/pull/32)
|
||||
|
||||
|
||||
### Consul Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to specify service metadata values:
|
||||
|
||||
``` ini
|
||||
cluster_formation.consul.svc_meta.key1 = value1
|
||||
cluster_formation.consul.svc_meta.key2 = value2
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#34](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/34)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin will now configure its HTTP[S] client to use IPv6 if
|
||||
the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html) tells it to.
|
||||
See [Using IPv6 for Inter-node Communication (and CLI Tools)](https://www.rabbitmq.com/networking.html#distribution-ipv6) to learn more.
|
||||
|
||||
GitHub issue: [rabbitmq-peer-discovery-consul#36](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/pull/36)
|
||||
|
||||
|
||||
|
||||
### etcd Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin will now configure its HTTP[S] client to use IPv6 if
|
||||
the [inetrc file](http://erlang.org/doc/apps/erts/inet_cfg.html) tells it to.
|
||||
See [Using IPv6 for Inter-node Communication (and CLI Tools)](https://www.rabbitmq.com/networking.html#distribution-ipv6) to learn more.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#19](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/pull/19)
|
||||
|
||||
|
||||
|
||||
### Erlang Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Connection could not be restarted after a heartbeat timeout due to strict pattern matching.
|
||||
|
||||
Contributed by Giuseppe D'Anna (@larrywax).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-erlang-client#126](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/126)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* The plugin will no log a warning when DN lookup settings are incomplete.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#114](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/114)
|
||||
|
||||
|
||||
### Tracing Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* On Windows, deleting the file used by an active (running) trace resulted in an `EACCES` exception.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-tracing#31](https://github.com/rabbitmq/rabbitmq-tracing/issues/31)
|
||||
|
||||
|
||||
## 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.7.20.tar.xz`.
|
|
@ -0,0 +1,98 @@
|
|||
## RabbitMQ 3.7.21
|
||||
|
||||
RabbitMQ `3.7.21` is a maintenance release that includes a patch for [CVE-2019-11287](https://pivotal.io/security/cve-2019-11287).
|
||||
RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
Per the new Erlang version support policy in effect starting with January 2019,
|
||||
this release [**no longer supports Erlang/OTP 20.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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
* Avoid pattern expansion when logging connection closure reason.
|
||||
|
||||
This addresses [CVE-2019-11287](https://pivotal.io/security/cve-2019-11287).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2155](https://github.com/rabbitmq/rabbitmq-server/pull/2155)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Errors were not propagated back to the client correctly in case of an LDAP server authentication failure.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#116](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/116)
|
||||
|
||||
|
||||
### STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `stomp.hide_server` is now available in the new style configuration format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-stomp#140](https://github.com/rabbitmq/rabbitmq-stomp/issues/140)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin emitted a warning on start.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#115](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/115)
|
||||
|
||||
|
||||
### Web MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin emitted a warning on start.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#59](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/59)
|
||||
|
||||
|
||||
### Event Exchange Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `event_exchange.vhost` is now available in the new style configuration format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-event-exchange#43](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/43)
|
||||
|
||||
|
||||
## 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.7.21.tar.xz`.
|
|
@ -0,0 +1,100 @@
|
|||
## RabbitMQ 3.7.22
|
||||
|
||||
RabbitMQ `3.7.22` is a maintenance release that focuses on bug fixes.
|
||||
RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
Per the new Erlang version support policy in effect starting with January 2019,
|
||||
this release [**no longer supports Erlang/OTP 20.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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
* One-off Erlang VM starts used by startup scripts now do as little work as possible
|
||||
in order to avoid starting subcomponents, loading configuration and so on.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#340](https://github.com/rabbitmq/rabbitmq-common/pull/340)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl await_startup` failed with an exception when RabbitMQ application was stopped but the
|
||||
runtime (Erlang VM) was running.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2158](https://github.com/rabbitmq/rabbitmq-server/issues/2158)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Definition import via HTTP API could fail in if performed via HTTP API (but not management UI)
|
||||
and contained operator policies.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#751](https://github.com/rabbitmq/rabbitmq-management/issues/751)
|
||||
|
||||
* When a node cannot compute the number of file descriptors it uses, it will be more resilient and will
|
||||
log warnings (e.g. about missing `handle.exe` in `PATH` on Windows) much more proactively.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management-agent#86](https://github.com/rabbitmq/rabbitmq-management-agent/issues/86)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Metric aggregation optimizations.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management-agent#84](https://github.com/rabbitmq/rabbitmq-management-agent/pull/84)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Throughput improvements and reduced CPU usage but slightly higher per connection RAM footprint.
|
||||
|
||||
Contributed by Grigory Starinkin (Erlang Solutions).
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-mqtt#216](https://github.com/rabbitmq/rabbitmq-mqtt/pull/216), [rabbitmq/rabbitmq-mqtt#217](https://github.com/rabbitmq/rabbitmq-mqtt/pull/217)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Last Will messages that use QoS 2 will now be downgraded to QoS 1 just like with "regular" published messages.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-mqtt#214](https://github.com/rabbitmq/rabbitmq-mqtt/issues/214)
|
||||
|
||||
|
||||
## 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.7.22.tar.xz`.
|
|
@ -0,0 +1,78 @@
|
|||
## RabbitMQ 3.7.23
|
||||
|
||||
RabbitMQ `3.7.23` is a maintenance release.
|
||||
RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
Per the new Erlang version support policy in effect starting with January 2019,
|
||||
this release [**no longer supports Erlang/OTP 20.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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Throughput improvements ranging from 14 to 60 percent depending on workload.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
|
||||
|
||||
|
||||
### AMQP 1.0 Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Throughput improvements.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
|
||||
|
||||
|
||||
### STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Throughput improvements.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Clients now can authenticate using an x.509 (TLS) certificate.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#116](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/116)
|
||||
|
||||
|
||||
## 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.7.23.tar.xz`.
|
|
@ -0,0 +1,114 @@
|
|||
## RabbitMQ 3.7.24
|
||||
|
||||
RabbitMQ `3.7.24` is a maintenance release.
|
||||
RabbitMQ `3.7.x` series is supported [through March 2020](https://www.rabbitmq.com/versions.html).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
Per the new Erlang version support policy in effect starting with January 2019,
|
||||
this release [**no longer supports Erlang/OTP 20.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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
* Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
|
||||
|
||||
Contributed by @tomyouyou.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2209](https://github.com/rabbitmq/rabbitmq-server/pull/2209)
|
||||
|
||||
* Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred,
|
||||
with an option to change the value or disable scheduled run entirely. More frequent binary heap GC runs seem
|
||||
unneccesary on Erlang 22.
|
||||
|
||||
Contributed by Aleksander Nycz.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#343](https://github.com/rabbitmq/rabbitmq-common/pull/343)
|
||||
|
||||
* The node now can recover even if virtual host recovery terms file was corrupted.
|
||||
|
||||
Contributed by @tomyouyou.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2195](https://github.com/rabbitmq/rabbitmq-server/pull/2195)
|
||||
|
||||
* Better error reporting in an edge case with classic queue leader replica election.
|
||||
|
||||
Contributed by Ayanda Dube.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#355](https://github.com/rabbitmq/rabbitmq-common/pull/355)
|
||||
|
||||
* Fixed an incorrect return value in the internal queue data store module.
|
||||
|
||||
Contributed by Sergey Loguntsov.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2221](https://github.com/rabbitmq/rabbitmq-server/pull/2221)
|
||||
|
||||
* Syslog client is now started even when Syslog logging is configured only for some log sinks.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2044](https://github.com/rabbitmq/rabbitmq-server/issues/2044)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* RabbitMQ nodes will now gracefully shutdown when receiving a `SIGTERM` or `SIGQUIT` signals.
|
||||
Previously the runtime would invoke a default handler that terminates the VM giving
|
||||
RabbitMQ no chance to execute its shutdown steps.
|
||||
|
||||
In addition, `SIGUSER1` and `SIGUSR2` signals are ignored.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2222](https://github.com/rabbitmq/rabbitmq-server/issues/2222)
|
||||
|
||||
* Some proxy protocol errors are now logged at debug level. This reduces log noise in environments
|
||||
where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending
|
||||
any data.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2204](https://github.com/rabbitmq/rabbitmq-server/pull/2204)
|
||||
|
||||
|
||||
### Management and Management Agent Plugins
|
||||
|
||||
### Enhancements
|
||||
|
||||
* A new `POST /login` endpoint can be used by custom management UI login forms to authenticate the user
|
||||
and set the cookie.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#764](https://github.com/rabbitmq/rabbitmq-management/issues/764)
|
||||
|
||||
* Warning about a missing `handle.exe` in `PATH` on Windows is now only logged every few minutes.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management-agent#90](https://github.com/rabbitmq/rabbitmq-management-agent/issues/90)
|
||||
|
||||
|
||||
|
||||
## 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.7.24.tar.xz`.
|
|
@ -0,0 +1,115 @@
|
|||
## RabbitMQ 3.7.25
|
||||
|
||||
RabbitMQ `3.7.25` is a maintenance release. It focuses on bug fixes and usability
|
||||
improvements.
|
||||
|
||||
This is **the last generally supported `3.7.x` release**.
|
||||
RabbitMQ `3.7.x` series are now covered by the [limited extended support](https://www.rabbitmq.com/versions.html) policy.
|
||||
|
||||
Please consider [upgrading](https://www.rabbitmq.com/upgrade.html) to [RabbitMQ `3.8.x`](https://www.rabbitmq.com/changelog.html).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
|
||||
Previously recent `3.7.x` nodes could start on Erlang 20.3 and to some extent tested on it despite
|
||||
the Erlang `21.3+` requirements in release notes and documentation.
|
||||
|
||||
Starting with this release, `21.3+` is a **hard requirement** enforced in the code
|
||||
to [ensure forward compatibility with Erlang 23](https://github.com/rabbitmq/rabbitmq-server/pull/2269).
|
||||
|
||||
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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Erlang `20.3` and earlier version support has been completely removed after months of being documented as unsupported.
|
||||
This release, however, gains Erlang `23.0` forward compatibility.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2269](https://github.com/rabbitmq/rabbitmq-server/pull/2269)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* More frequent garbage collection by stats DB cache processes in environments where HTTP API queries produced
|
||||
large data sets.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#788](https://github.com/rabbitmq/rabbitmq-management/pull/788)
|
||||
|
||||
* `rabbitmqadmin` binding deletion now defaults to the same property key value as binding creation.
|
||||
|
||||
Contributed by Ivan Kaloyanov.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#779](https://github.com/rabbitmq/rabbitmq-management/pull/779)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqadmin import` mangled non-ASCII characters.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#785](https://github.com/rabbitmq/rabbitmq-management/issues/785)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Internal resources cleanup is now more selective on abnormal link termination. A new upstream parameter, `resource-cleanup-mode`,
|
||||
can be set to `"never"` used to prevent internal queues from being deleted by exchange federation links on termination.
|
||||
Use this when data safety is more important than protection from resource leaks. It then will be up to the operator to make
|
||||
sure such resources are periodically deleted or use a suitable [TTL](https://www.rabbitmq.com/ttl.html).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#105](https://github.com/rabbitmq/rabbitmq-federation/issues/105)
|
||||
|
||||
|
||||
### Shovel Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Shovels are now correctly removed even when deletion commands are executed against a different node
|
||||
(not the one on which the target Shovel has been created).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel#68](https://github.com/rabbitmq/rabbitmq-shovel/issues/68)
|
||||
|
||||
|
||||
### Trust Store Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* HTTPS certificate provider will no longer terminate if upstream service response contains
|
||||
invalid JSON.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-trust-store#73](https://github.com/rabbitmq/rabbitmq-trust-store/issues/73)
|
||||
|
||||
|
||||
## 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.7.25.tar.xz`.
|
|
@ -0,0 +1,79 @@
|
|||
## RabbitMQ 3.7.26
|
||||
|
||||
RabbitMQ `3.7.26` is a maintenance release. It focuses on bug fixes and usability
|
||||
improvements.
|
||||
|
||||
RabbitMQ `3.7.x` series are out of general support and covered by the [limited extended support](https://www.rabbitmq.com/versions.html) policy.
|
||||
|
||||
Please consider [upgrading](https://www.rabbitmq.com/upgrade.html) to [RabbitMQ `3.8.x`](https://www.rabbitmq.com/changelog.html).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
|
||||
Previously recent `3.7.x` nodes could start on Erlang 20.3 and to some extent tested on it despite
|
||||
the Erlang `21.3+` requirements in release notes and documentation.
|
||||
|
||||
Starting with this release, `21.3+` is a **hard requirement** enforced in the code
|
||||
to [ensure forward compatibility with Erlang 23](https://github.com/rabbitmq/rabbitmq-server/pull/2269).
|
||||
|
||||
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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* "Command" operations such as binding propagation now use a separate channel for all links, preventing latency
|
||||
spikes for asynchronous operations (such as message publishing) (a head-of-line blocking problem).
|
||||
|
||||
Contributed by Grigory Starinkin.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#97](https://github.com/rabbitmq/rabbitmq-federation/pull/97)
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqadmin` failed with an exception on Python 3 when `-f pretty_json` flag was used.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#794](https://github.com/rabbitmq/rabbitmq-management/issues/794)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* AMQP 1.0 client used by Shovel now correctly encodes Erlang atoms.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#45](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/45)
|
||||
|
||||
|
||||
## 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.7.26.tar.xz`.
|
|
@ -0,0 +1,83 @@
|
|||
## RabbitMQ 3.7.27
|
||||
|
||||
RabbitMQ `3.7.27` is a maintenance release. It contains a couple of backports
|
||||
from the `3.8.x` branch.
|
||||
|
||||
RabbitMQ `3.7.x` series are out of general support and covered by the [limited extended support policy](https://www.rabbitmq.com/versions.html) only.
|
||||
|
||||
Please consider [upgrading](https://www.rabbitmq.com/upgrade.html) to [RabbitMQ `3.8.x`](https://www.rabbitmq.com/changelog.html).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
|
||||
Erlang `21.3+` is now a **hard requirement** checked on node startup.
|
||||
|
||||
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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* More peer discovery errors are retried.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1627](https://github.com/rabbitmq/rabbitmq-server/issues/1627)
|
||||
|
||||
* Initial Erlang/OTP 24 compatibility.
|
||||
|
||||
Erlang/OTP 24 is expected to ship in mid-2021. While RabbitMQ 3.7 will be [out of support](https://www.rabbitmq.com/versions.html) by then,
|
||||
some initial compatibility work was backported to this branch due to contious integration on Erlang/OTP master.
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* One-off connections periodically used by exchange federation links now handle timeouts in certain
|
||||
operations gracefully. This avoids unnecessary link disruption and restarts in certain environments.
|
||||
The default interval has also been bumped from 30s to 90s.
|
||||
|
||||
In environments with stable topologies the interval can be significantly increased to decrease connection
|
||||
churn, simplify monitoring and in general conserve some resources:
|
||||
|
||||
``` erlang
|
||||
%% advanced.config
|
||||
[
|
||||
{rabbitmq_federation, [
|
||||
%% 86400 seconds or 24 hours
|
||||
{internal_exchange_check_interval, 86400000}
|
||||
]}
|
||||
].
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#107](https://github.com/rabbitmq/rabbitmq-federation/pull/107)
|
||||
|
||||
|
||||
## 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.7.27.tar.xz`.
|
|
@ -0,0 +1,64 @@
|
|||
## RabbitMQ 3.7.28
|
||||
|
||||
RabbitMQ `3.7.28` is a security patch release.
|
||||
|
||||
|
||||
RabbitMQ `3.7.x` series are out of general support and covered by the [limited extended support policy](https://www.rabbitmq.com/versions.html)
|
||||
through October 1st, 2020.
|
||||
Please consider [upgrading](https://www.rabbitmq.com/upgrade.html) to [RabbitMQ `3.8.x`](https://www.rabbitmq.com/changelog.html).
|
||||
|
||||
RabbitMQ Core team would like to thank Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center
|
||||
for researching and responsibly disclosing the vulnerability addressed in this release.
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [**no longer supports Erlang/OTP 20.3**](https://groups.google.com/d/msg/rabbitmq-users/G4UJ9zbIYHs/qCeyjkjyCQAJ).
|
||||
Erlang `21.3+` is now a **hard requirement** checked on node startup.
|
||||
|
||||
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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
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 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.
|
||||
|
||||
### 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
|
||||
|
||||
* Addressed a Windows-specific binary planting security vulnerability [CVE-2020-5419](https://tanzu.vmware.com/security/cve-2020-5419) that allowed for arbitrary code execution.
|
||||
The vulnerability requires the attacker to have local access and elevated privileges,
|
||||
and cannot be executed remotely.
|
||||
|
||||
[CVSS score](https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H): `6.7` (medium severity).
|
||||
|
||||
This vulnerability was researched and [responsibly disclosed](https://www.rabbitmq.com/contact.html#security) by
|
||||
Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center.
|
||||
|
||||
|
||||
|
||||
## 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.7.28.tar.xz`.
|
|
@ -0,0 +1,110 @@
|
|||
## RabbitMQ 3.7.3
|
||||
|
||||
RabbitMQ `3.7.3` is a patch release with some bug fixes and enhancements.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
This release has no known incompatibilities with earlier 3.7.x versions.
|
||||
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.
|
||||
|
||||
See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Logging to `amq.rabbitmq.log` exchange is available again as a logging mechanism. Note that
|
||||
the user must opt-in by setting `log.exchange = true` in the [config file](http://rabbitmq.com/configure.html).
|
||||
|
||||
GitHub issue: [rabbitmq-server#1456](https://github.com/rabbitmq/rabbitmq-server/issues/1456)
|
||||
|
||||
* During node boot, the logger will temporarily accept a much higher maximum rate so that no messages are dropped.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1471](https://github.com/rabbitmq/rabbitmq-server/issues/1471)
|
||||
|
||||
* Plugin activation could hang if a plugin's channel interceptor failed to activate with an exception.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1477](https://github.com/rabbitmq/rabbitmq-server/pull/1477)
|
||||
|
||||
* During node boot, virtual host that are not yet initialised could be queried for status, which
|
||||
resulted in log noise.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1472](https://github.com/rabbitmq/rabbitmq-server/pull/1482)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [Internal authN backend](https://www.rabbitmq.com/access-control.html) will now prohibit logins with blank passwords. Such attempts
|
||||
are usually made by mistake because a passwordless user that was meant to authenticate
|
||||
using [x509 (TLS) certificates](https://github.com/rabbitmq/rabbitmq-auth-mechanism-ssl/) was not configured to use the correct [authentication
|
||||
mechanism](https://www.rabbitmq.com/authentication.html).
|
||||
|
||||
Note that the same behavior can already be achieved using a [credential validator](https://www.rabbitmq.com/passwords.html), so this is
|
||||
just an extra safety measure.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1465](https://github.com/rabbitmq/rabbitmq-server/pull/1465)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Definition import now stores global parameters in a way that the MQTT plugin expects.
|
||||
|
||||
GitHub issue: [rabbitmq-management#528](https://github.com/rabbitmq/rabbitmq-management/issues/528)
|
||||
|
||||
* User update form now successfully updates tags for passwordless users (or if the password is cleared at the same time).
|
||||
|
||||
GitHub issue: [rabbitmq-management#533](https://github.com/rabbitmq/rabbitmq-management/issues/533)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Requeue is now the default option in the Get Messages section.
|
||||
|
||||
Contributed by @dparkinson.
|
||||
|
||||
GitHub issue: [rabbitmq-management#542](https://github.com/rabbitmq/rabbitmq-management/pull/542)
|
||||
|
||||
* For [passwordless users](https://www.rabbitmq.com/passwords.html), the "no password" option on the user editing form is now preselected.
|
||||
|
||||
GitHub issue: [rabbitmq-management#537](https://github.com/rabbitmq/rabbitmq-management/issues/537)
|
||||
|
||||
|
||||
### LDAP AuthN/AuthZ Backend Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* More config keys are now supported via [new style config format](https://www.rabbitmq.com/configure.html).
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-ldap#78](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/78)
|
||||
|
||||
|
||||
### Peer Discovery Consul Plugin
|
||||
|
||||
* When a node registers with Consul it will now set its initial health check status to `passing`.
|
||||
Previously the node would be in the `critical` state until it first reported its health for the
|
||||
first time (in 15 seconds with default settings), which could prevent its peers from discovering it.
|
||||
|
||||
Kudos to @andersenleo for investigating this issue and recommending a solution.
|
||||
|
||||
GitHub issue: [rabbitmq-peer-discovery-consul#8](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/8)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* CLI tools honor `RABBITMQ_CTL_ERL_ARGS` again.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1461](https://github.com/rabbitmq/rabbitmq-server/issues/1461)
|
||||
|
||||
|
||||
|
||||
## 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.3.tar.gz`.
|
|
@ -0,0 +1,117 @@
|
|||
## RabbitMQ 3.7.4
|
||||
|
||||
RabbitMQ `3.7.4` is a patch release that primarily includes bug fixes.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
This release has no known incompatibilities with earlier 3.7.x versions.
|
||||
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.
|
||||
|
||||
See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Priority queues could terminate when the node was under memory pressure and needed to
|
||||
offload messages to disk.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1535](https://github.com/rabbitmq/rabbitmq-server/issues/1535)
|
||||
|
||||
* queue leader locator strategy of `min-masters` was affected by queue binding count and could
|
||||
select the wrong node.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1519](https://github.com/rabbitmq/rabbitmq-server/issues/1519)
|
||||
|
||||
* It was not possible to set [randomized startup delay](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition) range via new style config file.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1531](https://github.com/rabbitmq/rabbitmq-server/issues/1531)
|
||||
|
||||
* Windows scripts used `USE_LONGNAME` from the env file incorrectly.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1508](https://github.com/rabbitmq/rabbitmq-server/issues/1508)
|
||||
|
||||
* systemd notification implementation was prone to shell escaping issues.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1187](https://github.com/rabbitmq/rabbitmq-server/issues/1187)
|
||||
|
||||
* It wasn't possible to configure `delegate_count` via new style config file.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1497](https://github.com/rabbitmq/rabbitmq-server/issues/1497)
|
||||
|
||||
* It wasn't possible to configure `net_ticktime` via new style config file.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1522](https://github.com/rabbitmq/rabbitmq-server/issues/1522)
|
||||
|
||||
#### Enhancement
|
||||
|
||||
* It is now possible to configure max number of Erlang processes and atoms using
|
||||
`RABBITMQ_MAX_NUMBER_OF_PROCESSES` (`MAX_NUMBER_OF_PROCESSES` in `rabbitmq-env.conf`) and `RABBITMQ_MAX_NUMBER_OF_ATOMS`
|
||||
(`MAX_NUMBER_OF_ATOMS`) environment variables, respectively.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1528](https://github.com/rabbitmq/rabbitmq-server/pull/1528)
|
||||
|
||||
* `SCHEDULER_BIND_TYPE` and `DISTRIBUTION_BUFFER_SIZE` now can be used in `rabbitmq-env.conf` without
|
||||
the `RABBITMQ_` prefix.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1528](https://github.com/rabbitmq/rabbitmq-server/pull/1528)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmq-plugins set` failed when was used in offline mode (with `--offline`)
|
||||
|
||||
GitHub issue: [rabbitmq-cli#241](https://github.com/rabbitmq/rabbitmq-cli/issues/241)
|
||||
|
||||
* `rabbitmqctl list_*` command streaming now can be restricted to a set of client TCP ports
|
||||
used to contact RabbitMQ nodes.
|
||||
|
||||
GitHub issue: [rabbitmq-cli#237](https://github.com/rabbitmq/rabbitmq-cli/issues/237)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bugs
|
||||
|
||||
* Valid definitions could be rejected as invalid during import via HTTP API.
|
||||
|
||||
GitHub issue: [rabbitmq-management#552](https://github.com/rabbitmq/rabbitmq-management/issues/552)
|
||||
|
||||
* It wasn't possible to configure `path_prefix` via new style config file.
|
||||
|
||||
GitHub issue: [rabbitmq-management#547](https://github.com/rabbitmq/rabbitmq-management/issues/547)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bugs
|
||||
|
||||
* Valid upstreams were rejected as invalid when imported from a definition file.
|
||||
|
||||
GitHub issue: [rabbitmq-federation#70](https://github.com/rabbitmq/rabbitmq-federation/issues/70)
|
||||
|
||||
* Valid upstream sets were rejected as invalid when added using CLI tools.
|
||||
|
||||
GitHub issue: [rabbitmq-federation#67](https://github.com/rabbitmq/rabbitmq-federation/issues/67)
|
||||
|
||||
|
||||
### Peer Discovery AWS Plugin
|
||||
|
||||
#### Bugs
|
||||
|
||||
* The plugin skipped registration and thus [randomized startup delay](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition) injection.
|
||||
|
||||
GitHub issue: [rabbitmq-peer-discovery-aws#17](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/17)
|
||||
|
||||
|
||||
## 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.4.tar.gz`.
|
|
@ -0,0 +1,201 @@
|
|||
## RabbitMQ 3.7.5
|
||||
|
||||
RabbitMQ `3.7.5` a maintenance release that primarily includes bug fixes.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
This release includes one **potential incompatibility** with earlier `3.7.x` releases. It will only affect applications that use a lot (at least hundreds) of channels per connection. Previous behavior can be restored via configuration.
|
||||
|
||||
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.
|
||||
|
||||
See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Topic authorisation check could fail with an exception.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1538](https://github.com/rabbitmq/rabbitmq-server/issues/1538)
|
||||
|
||||
* Some runtime parameters and operator policies were rejected during definition import.
|
||||
|
||||
GitHub issue: [rabbitmq-management#565](https://github.com/rabbitmq/rabbitmq-management/issues/565), [rabbitmq-federation#73](https://github.com/rabbitmq/rabbitmq-federation/issues/73)
|
||||
|
||||
* Queues could run into an exception under memory pressure.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1582](https://github.com/rabbitmq/rabbitmq-server/issues/1582)
|
||||
|
||||
* During parallel cluster formation nodes could run into an exception when inserting seed data
|
||||
(default virtual host, user and permissions).
|
||||
|
||||
GitHub issue: [rabbitmq-server#1556](https://github.com/rabbitmq/rabbitmq-server/pull/1556)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* New `ha-promote-on-failure` queue mirroring setting to augment already existing `ha-promote-on-shutdown`.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1578](https://github.com/rabbitmq/rabbitmq-server/pull/1578)
|
||||
|
||||
* `queue.delete` operations will now force delete queues that don't have a [promotable
|
||||
master](https://www.rabbitmq.com/ha.html#unsynchronised-mirrors).
|
||||
|
||||
GitHub issue: [rabbitmq-server#1501](https://github.com/rabbitmq/rabbitmq-server/issues/1501)
|
||||
|
||||
* Lock contention in internal database is now much lower when a node with a lot of exclusive queues
|
||||
shuts down or is otherwise considered to be unavailable by peers. This means fewer CPU cycles
|
||||
spent cleaning up the exclusive queues.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1570](https://github.com/rabbitmq/rabbitmq-server/pull/1570)
|
||||
|
||||
* Default [max number of channels allowed on a connection](https://www.rabbitmq.com/networking.html#tuning-for-large-number-of-connections-channel-max) (a.k.a. `channel_max`) has been lowered from `65535` to `2047`.
|
||||
The new default is much safer and will reduce the effect application channel leaks have on node resource consumption. **This is a potentially breaking change**.
|
||||
|
||||
Systems where a lot (at least hundreds) of channels *per connection* are used should explicitly override `channel_max` in the [config file](https://www.rabbitmq.com/configure.html) to a higher suitable value, e.g.:
|
||||
|
||||
```
|
||||
channel_max = 4000
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq-server#1593](https://github.com/rabbitmq/rabbitmq-server/issues/1593)
|
||||
|
||||
* [Ranch](https://github.com/ninenines/ranch) dependency has been updated to `1.5.x` which should prevent rare cases of mass termination of client connections.
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `-t` (`--timeout`) is now only displayed for commands that will actually use it.
|
||||
|
||||
GitHub issue: [rabbitmq-cli#236](https://github.com/rabbitmq/rabbitmq-cli/issues/236)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `GET /api/overview` could fail if SNI for management plugin listener was configured.
|
||||
|
||||
GitHub issue: [rabbitmq-management#567](https://github.com/rabbitmq/rabbitmq-management/issues/567)
|
||||
|
||||
* `rabbitmqadmin` could run into an exception with certain formatting settings on Python 2.x.
|
||||
|
||||
GitHub issue: [rabbitmq-management#568](https://github.com/rabbitmq/rabbitmq-management/issues/568)
|
||||
|
||||
* HTTP API stats documentation used incorrect field names.
|
||||
|
||||
GitHub issue: [rabbitmq-management#561](https://github.com/rabbitmq/rabbitmq-management/pull/561)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* LDAP server-initiated connection closure was not handled gracefully by connection pool.
|
||||
Kudos to Adam Gardner for [doing all the hard work](https://groups.google.com/forum/#!topic/rabbitmq-users/4Gva3h-yJzM) investigating this issue.
|
||||
|
||||
GitHub issues: [rabbitmq-auth-backend-ldap#82](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/82), [rabbitmq-auth-backend-ldap#90](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/90)
|
||||
|
||||
* `auth_ldap.idle_timeout` now defaults to 300 seconds instead of `infinity`.
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-ldap#81](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/81)
|
||||
|
||||
* `group_lookup_base` was not configurable via the new style config format.
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-ldap#85](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/85)
|
||||
|
||||
* `auth_ldap.log` didn't accept `network_unsafe` for severity value.
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-ldap#86](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/86)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to configure TLS options for LDAP server connections via the [new style config format](https://www.rabbitmq.com/configure.html).
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-ldap#88](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/88)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Federation upstream sets could run into a type error with exchange federation.
|
||||
|
||||
GitHub issue: [rabbitmq-federation#75](https://github.com/rabbitmq/rabbitmq-federation/issues/75)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Valid dynamic Shovel properties can be rejected by validation.
|
||||
|
||||
GitHub issue: [rabbitmq-shovel#38](https://github.com/rabbitmq/rabbitmq-shovel/issues/38)
|
||||
|
||||
* Shovel names are again included into (application-provided) connection names and can therefore
|
||||
be seen in the management UI.
|
||||
|
||||
GitHub issue: [rabbitmq-shovel#40](https://github.com/rabbitmq/rabbitmq-shovel/issues/40)
|
||||
|
||||
|
||||
### Peer Discovery AWS Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* China-based AWS regions now use a correct base API URI.
|
||||
|
||||
GitHub issue: [rabbitmq-peer-discovery-aws#23](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/23)
|
||||
|
||||
* The plugin could fail to discover all nodes in a returned instance set.
|
||||
|
||||
GitHub issue: [rabbitmq-peer-discovery-aws#20](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/20)
|
||||
|
||||
|
||||
### Peer Discovery Kubernetes Plugin
|
||||
|
||||
#### Enhnacements
|
||||
|
||||
* The plugin now supports [randomized startup delay](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition) with much lower default values
|
||||
since RSD is [not really necessary](https://www.rabbitmq.com/cluster-formation.html#peer-discovery-k8s) for stateful set deployments.
|
||||
|
||||
GitHub issue: [rabbitmq-peer-discovery-k8s#23](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/issues/23)
|
||||
|
||||
|
||||
### AMQP 1.0 Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* It wasn't possible to send some messages using QPid JMS client over AMQP 1.0.
|
||||
|
||||
GitHub issue: [rabbitmq-amqp1.0#61](https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/61)
|
||||
|
||||
|
||||
### Web MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* New style config format was not interpreting IP addresses correctly.
|
||||
|
||||
GitHub issue: [rabbitmq-web-mqtt#26](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/26)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* It wasn't possible to configure TCP listener(s) in the new style config format.
|
||||
|
||||
GitHub issue: [rabbitmq-web-stomp#82](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/82)
|
||||
|
||||
|
||||
|
||||
## 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.5.tar.gz`.
|
|
@ -0,0 +1,122 @@
|
|||
## RabbitMQ 3.7.6
|
||||
|
||||
RabbitMQ `3.7.6` a maintenance release that primarily includes bug fixes.
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
This release includes one **potential incompatibility** with earlier `3.7.x` releases. Only systems
|
||||
that use a high number (hundreds) of [queue priorities](https://www.rabbitmq.com/priority.html) are affected.
|
||||
|
||||
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.
|
||||
|
||||
See [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Max priority cap for queues is now enforced and set to 255. Applications that rely on a higher number of priorities **will break**.
|
||||
Such applications must be updated to use no more than 255 priorities.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1590](https://github.com/rabbitmq/rabbitmq-server/issues/1590)
|
||||
|
||||
* Bulk deletion of exclusive queues when their owning connection closes has been optimized.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-server#1566](https://github.com/rabbitmq/rabbitmq-server/issues/1566), [rabbitmq/rabbitmq-server#1513](https://github.com/rabbitmq/rabbitmq-server/issues/1513)
|
||||
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* On Erlang 20.2.3 or later, more optimal memory allocators will be used. On some workloads that leads
|
||||
to [significant reduction in node's RAM consumption](https://groups.google.com/d/msg/rabbitmq-users/LSYaac9frYw/LNZDZUlrBAAJ). The change is workload-specific, however, on the workloads
|
||||
tested that do introduce a negative effect (more RAM used) the difference was very small (about 1%).
|
||||
|
||||
|
||||
It is possible to go back to the previous settings, `+MBas aoffcbf +MHas aoffcbf +MBlmbcs 5120 +MHlmbcs 5120 +MMmcs 10`,
|
||||
by specifying them in the `RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS` [environment variable](https://www.rabbitmq.com/configure.html#customise-environment).
|
||||
|
||||
On Erlang/OTP releases older than 20.2.3 there will be no default changes.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1604](https://github.com/rabbitmq/rabbitmq-server/pull/1604)
|
||||
|
||||
* [Logging to Syslog](https://www.rabbitmq.com/logging.html#logging-to-syslog) without 3rd party plugins.
|
||||
|
||||
GitHub issue: [rabbitmq-server#1600](https://github.com/rabbitmq/rabbitmq-server/pull/1600)
|
||||
|
||||
* `connection.closed` events now include client-provided connection name and more client details.
|
||||
That information is in turn available via the [rabbitmq_event_exchange](https://github.com/rabbitmq/rabbitmq-event-exchange).
|
||||
|
||||
GitHub issue: [rabbitmq-server#1596](https://github.com/rabbitmq/rabbitmq-server/issues/1596)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `await_online_nodes <count> [--timeout <timeout>]` is a new command that will wait until the target
|
||||
node's cluster has at least `<count>` nodes. The command supports a timeout. It is meant to simplify
|
||||
cluster provisioning automation and can be used as the very first check performed after starting a node.
|
||||
|
||||
Note that the command requires at least one node to be running and reachable.
|
||||
|
||||
GitHub issue: [rabbitmq-cli#235](https://github.com/rabbitmq/rabbitmq-cli/issues/235)
|
||||
|
||||
* `rabbitmq-diagnostics ping [--node <target> --timeout <timeout>]` is a new minimalistic health check command.
|
||||
It only verifies if the target node is up, registered with epmd and accepts/authenticates CLI tool connections.
|
||||
It fills the gap between `rabbitmq-diagnostics node_health_check`, which performs a lot of checks, take a lot more time
|
||||
and is fairly opinionated in what it does. `ping` is more suitable in environments where
|
||||
failing aliveness checks will result in node restarts, namely Kubernetes.
|
||||
|
||||
GitHub issue: [rabbitmq-cli#253](https://github.com/rabbitmq/rabbitmq-cli/issues/253)
|
||||
|
||||
|
||||
### Management and Management Agent Plugins
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Queue metrics could be missing after a node restart or plugin [re-]enablement.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management-agent#58](https://github.com/rabbitmq/rabbitmq-management-agent/issues/58)
|
||||
|
||||
* `rabbitmqadmin` now correctly percent-encodes spaces in connection names.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#576](https://github.com/rabbitmq/rabbitmq-management/issues/576)
|
||||
|
||||
* When creating a new vhost, user permissions will only be granted to the users that exist in the
|
||||
internal database. If an external authentication/authorisation service is used, the step is skipped.
|
||||
|
||||
GitHub issue: [rabbitmq-management#531](https://github.com/rabbitmq/rabbitmq-management/issues/531)
|
||||
|
||||
* Virtual host imported from definitions or created via HTTP API will explicitly await for the vhost to initialise
|
||||
on all cluster nodes.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#575](https://github.com/rabbitmq/rabbitmq-management/issues/575)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* LDAP connection pool now correctly purges connections in more failure scenarios (e.g. LDAP server restart)
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-ldap#92](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/92)
|
||||
|
||||
|
||||
### HTTP Authentication/authorisation Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `201 Created` responses are now accepted from HTTP services that back the plugin.
|
||||
|
||||
GitHub issue: [rabbitmq-auth-backend-http#68](https://github.com/rabbitmq/rabbitmq-auth-backend-http/pull/68)
|
||||
|
||||
|
||||
## 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.6.tar.gz`.
|
|
@ -0,0 +1,86 @@
|
|||
## RabbitMQ 3.7.7
|
||||
|
||||
RabbitMQ `3.7.7` a maintenance release. This release introduces
|
||||
compatibility with [Erlang/OTP 21](http://www.erlang.org/news/123).
|
||||
|
||||
### Upgrades and Compatibility
|
||||
|
||||
This release has no known incompatibilities with earlier `3.7.x` releases.
|
||||
|
||||
#### Upgrading to Erlang 21.0
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.0** at the same time, extra care has to be taken.
|
||||
Since CLI tools from any earlier RabbitMQ release will fail on Erlang 21, RabbitMQ **must be upgraded before Erlang**.
|
||||
|
||||
#### Documentation 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.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* This release is compatible with [Erlang/OTP 21](http://www.erlang.org/news/123), the newest major
|
||||
Erlang runtime release.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1616](https://github.com/rabbitmq/rabbitmq-server/issues/1616)
|
||||
|
||||
* Windows installer will now take default [Erlang cookie](https://www.rabbitmq.com/cli.html#erlang-cookie) location differences between Erlang versions into account.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#82](https://github.com/rabbitmq/rabbitmq-server-release/pull/82)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to configure Web browser session timeout. Default is still 8 hours.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#584](https://github.com/rabbitmq/rabbitmq-management/pull/584)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Direct connections downstream were not closed in some cases.
|
||||
|
||||
Contributed by Ricardo Gonçalves.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#76](https://github.com/rabbitmq/rabbitmq-federation/issues/76)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* It wasn't possible to set `auth_ldap.dn_lookup_bind` to the value of `anon` in the new style config format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#94](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/94)
|
||||
|
||||
### Consul Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The following combination of settings was rejected by the plugin, even though they are reasonable
|
||||
and were recommended by the docs:
|
||||
|
||||
``` ini
|
||||
cluster_formation.consul.svc_addr_auto = true
|
||||
# en0 is just an example, it could be any other NIC name
|
||||
cluster_formation.consul.svc_addr_nic = en0
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#12](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/12)
|
||||
|
||||
## 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.7.tar.gz`.
|
|
@ -0,0 +1,339 @@
|
|||
## RabbitMQ 3.7.8
|
||||
|
||||
RabbitMQ `3.7.8` a maintenance release. It focuses on bug fixes and
|
||||
further improves [Erlang/OTP 21](http://www.erlang.org/news/123) compatibility.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
This release has no known incompatibilities with earlier `3.7.x` releases.
|
||||
|
||||
#### Upgrading to Erlang 21.0
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.0** 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**.
|
||||
|
||||
#### Documentation 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.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Virtual host (specifically binding) recovery has been optimized.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1650](https://github.com/rabbitmq/rabbitmq-server/pull/1650)
|
||||
|
||||
* A binding removal optimization was reverted because it could result in custom exchange type state not cleaned up
|
||||
as plugin authors intended.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1691](https://github.com/rabbitmq/rabbitmq-server/pull/1691)
|
||||
|
||||
* A queue sync operation now can be cancelled when a resource alarm is in effect on the receiving node.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1636](https://github.com/rabbitmq/rabbitmq-server/issues/1636)
|
||||
|
||||
* Inter-node communication port (a.k.a. distribution port) unintentionally used an excessively large
|
||||
buffer size (1.2 GB instead of 128 MB). Kudos to Chris Friesen for noticing and reporting this.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1659](https://github.com/rabbitmq/rabbitmq-server/issues/1659)
|
||||
|
||||
* More idempotent binding removal.
|
||||
|
||||
When transactions that removed bindings were rolled back and retried, the code
|
||||
that performed the deletion could fail with a misleading assertion failure, `{error, not_found}`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1689](https://github.com/rabbitmq/rabbitmq-server/pull/1689)
|
||||
|
||||
* A resource alarm triggered during boot could prevent node from starting.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1644](https://github.com/rabbitmq/rabbitmq-server/issues/1644)
|
||||
|
||||
* Environments with high queue or channel churn could run into an exception in local process group.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1699](https://github.com/rabbitmq/rabbitmq-server/issues/1699)
|
||||
|
||||
* Priority queues no longer fail with an exception when used together with other `rabbit_backing_queue`
|
||||
behaviour implementations.
|
||||
|
||||
Contributed by Matteo Cafasso.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1669](https://github.com/rabbitmq/rabbitmq-server/pull/1669)
|
||||
|
||||
* Syslog configuration parameters could be rejected by config validator.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1639](https://github.com/rabbitmq/rabbitmq-server/issues/1639)
|
||||
|
||||
* `rabbitmq-echopid.bat` now loads `rabbitmq-env.bat` correctly.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1642](https://github.com/rabbitmq/rabbitmq-server/issues/1642)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Improved config file validation and loading. For example, `advanced.config` now can be used
|
||||
without the main `rabbitmq.conf` config file.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1671](https://github.com/rabbitmq/rabbitmq-server/pull/1671)
|
||||
|
||||
* On Erlang/OTP 21 Syslog server now can be configured using a hostname (not just an IP address).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1658](https://github.com/rabbitmq/rabbitmq-server/pull/1658)
|
||||
|
||||
* `rabbitmqctl rename_cluster_node` documentation improvements.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1641](https://github.com/rabbitmq/rabbitmq-server/pull/1641)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Policies were unintentionally excluded from `rabbitmqctl report` output.
|
||||
|
||||
Contributed by Ayanda Dube.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#256](https://github.com/rabbitmq/rabbitmq-cli/pull/256)
|
||||
|
||||
* Global parameters were unintentionally excluded from `rabbitmqctl report` output.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#258](https://github.com/rabbitmq/rabbitmq-cli/pull/258)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Virtual host imported from definitions or created via HTTP API will explicitly await for the vhost to initialise
|
||||
on all cluster nodes. This change was previously scheduled for `3.7.6` but was only partially applied (didn't have any effect on HTTP API clients).
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-management#575](https://github.com/rabbitmq/rabbitmq-management/issues/575), [rabbitmq/rabbitmq-management#591](https://github.com/rabbitmq/rabbitmq-management/pull/591)
|
||||
|
||||
* HTTP API connection endpoints returned a duplicate key, `node`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#601](https://github.com/rabbitmq/rabbitmq-management/issues/601)
|
||||
|
||||
* Response compression wasn't enabled by default for compatible clients.
|
||||
|
||||
* Failed login error message now clears automatically after successful login.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#609](https://github.com/rabbitmq/rabbitmq-management/issues/609)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Cowboy listener settings now can be configured using new style config file.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#596](https://github.com/rabbitmq/rabbitmq-management/issues/596)
|
||||
|
||||
* Cowboy timeouts now can be configured.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-management#594](https://github.com/rabbitmq/rabbitmq-management/issues/594)
|
||||
|
||||
* `rabbitmqadmin` now supports a new argument, `--request-timeout`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#593](https://github.com/rabbitmq/rabbitmq-management/issues/593)
|
||||
|
||||
* Switching sections will now scroll to the top of the newly rendered page.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#590](https://github.com/rabbitmq/rabbitmq-management/pull/590)
|
||||
|
||||
|
||||
### Consistent Hashing Exchange Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Message distribution uniformity has been significantly improved. [Jump Consistent Hash](https://arxiv.org/abs/1406.2294) is now used for
|
||||
the hashing function.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-consistent-hash-exchange#37](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/issues/37)
|
||||
|
||||
|
||||
### STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Nodes experiencing very high connection churn could run out of Erlang processes.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-stomp#125](https://github.com/rabbitmq/rabbitmq-stomp/pull/125), [rabbitmq/rabbitmq-server#1640](https://github.com/rabbitmq/rabbitmq-server/pull/1640)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* WebSocket endpoint path is now configurable.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#86](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/86)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
* Session presence flag was always set to `true` regardless of the state of client connection session.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-mqtt#163](https://github.com/rabbitmq/rabbitmq-mqtt/issues/163)
|
||||
|
||||
|
||||
### Web MQTT Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* WebSocket endpoint path is now configurable.
|
||||
|
||||
Contributed by Thomas Sauzeau.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#30](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/30)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin could try to try to forward messages consumed from the source before receiving
|
||||
credit from the AMQP 1.0 destination.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel#44](https://github.com/rabbitmq/rabbitmq-shovel/pull/44)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `sasl=plain` is now added to connection URIs if no other mechanism is specified explicitly
|
||||
by the user.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#10](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/10)
|
||||
|
||||
* TLS version for AMQP 1.0 endpoints now can be configured via a connection URI query parameter.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#19](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/19)
|
||||
|
||||
* Specifying a port without a hostname in connection URI is now considered
|
||||
to be an unsupported combination and will throw an error.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-erlang-client#107](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/107)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Improved OTP release handling compatibility.
|
||||
|
||||
Contributed by Ayanda Dube.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#78](https://github.com/rabbitmq/rabbitmq-federation/pull/78)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Link initialization optimizations.
|
||||
|
||||
Contributed by Ayanda Dube.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-federation#79](https://github.com/rabbitmq/rabbitmq-federation/pull/79), [rabbitmq/rabbitmq-federation#80](https://github.com/rabbitmq/rabbitmq-federation/pull/80)
|
||||
|
||||
* Specifying a port without a hostname in connection URI is now considered
|
||||
to be an unsupported combination and will throw an error.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-erlang-client#107](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/107)
|
||||
|
||||
|
||||
### Peer Discovery Etcd Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Node name is now correctly extracted from the keys returned by
|
||||
etcd even when key prefix includes slashes.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#14](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/14)
|
||||
|
||||
|
||||
### Debian Package
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Package installation scripts will make sure that the `/etc/rabbitmq` directory is readable.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#72](https://github.com/rabbitmq/rabbitmq-server-release/pull/72)
|
||||
|
||||
|
||||
### RPM Package
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Package installation scripts will make sure that the `/etc/rabbitmq` directory is readable.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#72](https://github.com/rabbitmq/rabbitmq-server-release/pull/72)
|
||||
|
||||
* If `rabbitmq-plugins` is invoked before first server start, Erlang cookie permissions will
|
||||
be correctly set to those of the RabbitMQ user and group (currently `rabbitmq`).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#85](https://github.com/rabbitmq/rabbitmq-server-release/issues/85)
|
||||
|
||||
|
||||
### Event Exchange Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `amq.rabbitmq.event` exchange is now deleted when plugin is disabled.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-event-exchange#33](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/33)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* The plugin now can be configured using new style config file:
|
||||
|
||||
``` ini
|
||||
rabbitmq_event_exchange.vhost = audit
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-event-exchange#31](https://github.com/rabbitmq/rabbitmq-event-exchange/issues/31)
|
||||
|
||||
|
||||
### Tracing Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to set up a tracer on any cluster node via management UI and HTTP API.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-tracing#24](https://github.com/rabbitmq/rabbitmq-tracing/pull/24)
|
||||
|
||||
* Tracer connection credentials now can be specified via the management UI and HTTP API.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-tracing#25](https://github.com/rabbitmq/rabbitmq-tracing/pull/25)
|
||||
|
||||
|
||||
### AMQP 1.0 Erlang Client
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `sasl=plain` is now added to connection URIs if no other mechanism is specified explicitly
|
||||
by the user.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#10](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/10)
|
||||
|
||||
* `hostname` connection parameter will now be set to the value of the `address` parameter for improved
|
||||
compatibility with AMQP 1.0 implementations (e.g. Azure ServiceBus) that expect it to be set.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#1](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/1)
|
||||
|
||||
* TLS version now can be configured via a connection URI query parameter.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#19](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/issues/19)
|
||||
|
||||
### AMQP 0-9-1 Erlang Client
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Specifying a port without a hostname in connection URI is now considered
|
||||
to be an unsupported combination and will throw an error.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-erlang-client#107](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/107)
|
||||
|
||||
|
||||
## 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.8.tar.gz`.
|
|
@ -0,0 +1,251 @@
|
|||
## RabbitMQ 3.7.9
|
||||
|
||||
RabbitMQ `3.7.9` is a maintenance release. It focuses on bug fixes and minor usability improvements.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
CLI tools in this release will often produce an extra line of output, as they did in `3.6.x` releases,
|
||||
when `-q` is not provided. Tools that parse CLI command output should use `-q --no-table-headers` to suppress all additional output meant for interactive use or
|
||||
avoid parsing output entirely (e.g. use the HTTP API).
|
||||
|
||||
#### Upgrading to Erlang 21.0
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.0** 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**.
|
||||
|
||||
#### Documentation 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.
|
||||
|
||||
|
||||
## Changes
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Queue deletion loaded bindings in an inefficient way.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1690](https://github.com/rabbitmq/rabbitmq-server/issues/1690)
|
||||
|
||||
* Heartbeat monitor now correctly sends heartbeats at half the negotiated timeout interval.
|
||||
It previously could fail to do so because it considered its own traffic to be on-the-wire
|
||||
activity from the peer.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#278](https://github.com/rabbitmq/rabbitmq-common/pull/278)
|
||||
|
||||
* Nodes were using a [client] Syslog UDP socket even when [logging to Syslog](https://www.rabbitmq.com/logging.html#logging-to-syslog) was not enabled.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1718](https://github.com/rabbitmq/rabbitmq-server/issues/1718)
|
||||
|
||||
* `ERL_EPMD_PORT` was ignored when configured in `rabbitmq-env.conf`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1709](https://github.com/rabbitmq/rabbitmq-server/issues/1709)
|
||||
|
||||
* Proxy Protocol dependency is now compatible with Erlang/OTP 21.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#269](https://github.com/rabbitmq/rabbitmq-common/issues/269)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to configure [cipher suites](https://www.rabbitmq.com/ssl.html#configuring-ciphers) using new style config format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1712](https://github.com/rabbitmq/rabbitmq-server/issues/1712)
|
||||
|
||||
* When a listener fails to start (bind to a server socket), error messages involve less context and are
|
||||
easier to read.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1711](https://github.com/rabbitmq/rabbitmq-server/issues/1711)
|
||||
|
||||
* Improved error reporting for when `erl` or `erl.exe` are no in node's `PATH`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#275](https://github.com/rabbitmq/rabbitmq-common/pull/275)
|
||||
|
||||
* 10 TLS connection acceptors are now used by default.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1729](https://github.com/rabbitmq/rabbitmq-server/issues/1729)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl list_*` commands did not include table column headers.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#264](https://github.com/rabbitmq/rabbitmq-cli/issues/264)
|
||||
|
||||
* If `RABBITMQ_NODENAME` is configured, CLI tools will use its hostname part when generating its own
|
||||
Erlang node name.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#270](https://github.com/rabbitmq/rabbitmq-cli/issues/270)
|
||||
|
||||
* On Windows CLI tool batch scripts exited with a 0 exit code when it failed to connect to the node.
|
||||
|
||||
Contributed by Artem Zinenko.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1735](https://github.com/rabbitmq/rabbitmq-server/issues/1735).
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `rabbitmqctl stop` now supports `--idempotent` that makes the command exit with a success when
|
||||
target node is not running.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#272](https://github.com/rabbitmq/rabbitmq-cli/pull/272)
|
||||
|
||||
* `rabbitmqctl add_vhost` is now idempotent (no longer returns an error when vhost already exists)
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#260](https://github.com/rabbitmq/rabbitmq-cli/issues/260)
|
||||
|
||||
|
||||
### Management and Management Agent Plugins
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Logo link now works better with a non-blank API endpoint prefix.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#604](https://github.com/rabbitmq/rabbitmq-management/issues/604)
|
||||
|
||||
* Decimal headers and argument values are now serialised to JSON correctly.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management-agent#71](https://github.com/rabbitmq/rabbitmq-management-agent/pull/71)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to configure both HTTPS and HTTP listeners using new syntax that's consistent with
|
||||
Web STOMP and Web MQTT plugins:
|
||||
|
||||
``` ini
|
||||
management.tcp.port = 15672
|
||||
|
||||
management.ssl.port = 15671
|
||||
management.ssl.cacertfile = /path/to/ca_certificate.pem
|
||||
management.ssl.certfile = /path/to/server_certificate.pem
|
||||
management.ssl.keyfile = /path/to/server_key.pem
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#563](https://github.com/rabbitmq/rabbitmq-management/issues/563)
|
||||
|
||||
* It is now possible to configure `Content-Security-Policy` (CSP) header set by the API.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#623](https://github.com/rabbitmq/rabbitmq-management/issues/623)
|
||||
|
||||
* It is now possible to configure `Strict-Transport-Policy` (HSTS) header set by the API.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#624](https://github.com/rabbitmq/rabbitmq-management/issues/624)
|
||||
|
||||
* `GET /api/nodes/{node}` endpoint aggregated data for other cluster nodes only to discard it later.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#615](https://github.com/rabbitmq/rabbitmq-management/issues/615)
|
||||
|
||||
* When `Handle.exe` is used and returns no file handle information in its output, a warning will be logged.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management-agent#67](https://github.com/rabbitmq/rabbitmq-management-agent/issues/67)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* String matching queries now support multi-value results.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#100](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/100)
|
||||
|
||||
* `ad_domain` and `ad_user` are new variables available in LDAP plugin queries. They are extracted from the username
|
||||
when it's in `Domain\User` format, which is typically specific to ActiveDirectory.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#98](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/98)
|
||||
|
||||
* Search queries that return referrals will result in an error instead of an exception.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#97](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/97)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Advanced WebSocket options now can be configured. Compression is enabled by default.
|
||||
Compression won't be used with clients that do not support it.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-web-stomp#89](https://github.com/rabbitmq/rabbitmq-web-stomp/pull/89), [rabbitmq/rabbitmq-web-stomp#90](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/90)
|
||||
|
||||
|
||||
### Web MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* WebSocket `PING` frames are now ignored instead of being propagated to MQTT frame handler.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#32](https://github.com/rabbitmq/rabbitmq-web-mqtt/pull/32)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Advanced WebSocket options now can be configured. Compression is enabled by default.
|
||||
Compression won't be used with clients that do not support it.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-web-mqtt#34](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/34)
|
||||
|
||||
|
||||
### AWS Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* EC2 API endpoint requests used an unreasonably low timeout (100 ms). The new value
|
||||
is 10 seconds.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-aws#24](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/24)
|
||||
|
||||
|
||||
### Consul Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* It wasn't possible to specify Consul service tags via new style config format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#18](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/18)
|
||||
|
||||
* It wasn't possible to configure lock key prefix via new style config format.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-peer-discovery-consul#16](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/16)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Lock acquisition timeout now can be configured using `cluster_formation.consul.lock_timeout` as well as `cluster_formation.consul.lock_wait_time` (an alias),
|
||||
to be consistent with the Etcd implementation.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#20](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/pull/20)
|
||||
|
||||
|
||||
### Etcd Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Lock acquisition timeout now can be configured using `cluster_formation.etcd.lock_timeout` as well as `cluster_formation.etcd.lock_wait_time` (an alias),
|
||||
to be consistent with the Consul implementation.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#16](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/pull/16)
|
||||
|
||||
|
||||
### Event Exchange Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Throughput optimizations reduce probability of high memory consumption by `rabbit_event` processes due to
|
||||
event backlog accumulation.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1722](https://github.com/rabbitmq/rabbitmq-server/issues/1722)
|
||||
|
||||
|
||||
### RPM Package
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Post-installation script renamed `rabbitmq.conf` to `rabbitmq-env.conf`. A long time ago `rabbitmq.conf` was used to configure
|
||||
environment variables (like `rabbitmq-env.conf` today) and old post-installation steps were not removed when `rabbitmq.conf`
|
||||
was re-adopted for new style config files.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#87](https://github.com/rabbitmq/rabbitmq-server-release/issues/87)
|
|
@ -0,0 +1,288 @@
|
|||
## RabbitMQ 3.8.0
|
||||
|
||||
RabbitMQ `3.8.0` is a feature release. It contains several major improvements in areas of
|
||||
data safety, replication, observability, and ease of upgrades. Some highlight features are
|
||||
|
||||
* [Quorum Queues](http://next.rabbitmq.com/quorum-queues.html)
|
||||
* Built-in [Prometheus support](http://next.rabbitmq.com/prometheus.html) with a set of Grafana dashboards to complement it
|
||||
* [Feature Flags](http://next.rabbitmq.com/feature-flags.html)
|
||||
* [Single Active Consumer](http://next.rabbitmq.com/consumers.html#single-active-consumer)
|
||||
* New authentication and authorisation [backend that uses OAuth 2.0 (JWT)](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2) tokens and scopes
|
||||
|
||||
A recorded webinar, [What's New in RabbitMQ 3.8](https://content.pivotal.io/webinars/may-23-what-s-new-in-rabbitmq-3-8-webinar), covers some of the highlights in this release.
|
||||
|
||||
Several features in this release are backed by a new Raft implementation for Erlang and Elixir,
|
||||
[Ra](https://github.com/rabbitmq/ra/).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
|
||||
`22.x` series is 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 `21.3.x` and `22.x`.
|
||||
|
||||
|
||||
### Rolling Upgrades to 3.8
|
||||
|
||||
RabbitMQ 3.8.0 nodes can run alongside `3.7.18` or later `3.7.x` nodes.
|
||||
No 3.8.0-specific features would be available in a mixed version cluster. Mixed versions are meant
|
||||
to simplify rolling upgrades and not meant to be running for long periods of time.
|
||||
|
||||
See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for documentation on upgrades.
|
||||
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### Upgrading to Erlang 21.x or Later Versions
|
||||
|
||||
When upgrading to this release **and upgrading Erlang to 21.x or later** 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 or later,
|
||||
RabbitMQ **must be upgraded before Erlang**.
|
||||
|
||||
#### Upgrade Doc Guides and Change Log
|
||||
|
||||
See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for documentation on upgrades
|
||||
and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
|
||||
|
||||
#### Client Library Compatibility
|
||||
|
||||
Client libraries that were compatible with RabbitMQ `3.7.x` will be compatible with `3.8.0`.
|
||||
|
||||
|
||||
### 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
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [Quorum Queues](http://next.rabbitmq.com/quorum-queues.html) built on top of the [Raft consensus algorithm](https://raft.github.io/) for data safety,
|
||||
more predictable failure recovery, more efficient synchronisation of new and recovered followers, and parallel replication.
|
||||
|
||||
* [Feature Flags](http://next.rabbitmq.com/feature-flags.html) allow for mixed-version clusters and safer rolling upgrades.
|
||||
|
||||
* [Single Active Consumer](http://next.rabbitmq.com/consumers.html#single-active-consumer) makes it possible
|
||||
to run a set of consumers for redundancy while ensuring that only one consumer is getting deliveries.
|
||||
|
||||
* New metric: dropped unroutable messages. Spotting faulty publishers and routing topology issues is now easier.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1904](https://github.com/rabbitmq/rabbitmq-server/issues/1904)
|
||||
|
||||
* New metrics: [connection](https://www.rabbitmq.com/connections.html#monitoring) and [channel churn](https://www.rabbitmq.com/channels.html#monitoring).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1723](https://github.com/rabbitmq/rabbitmq-server/issues/1723)
|
||||
|
||||
* Quorum queues support redelivery tracking, which can be used by consumers to protect themselves from
|
||||
poison message redeliveries.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#502](https://github.com/rabbitmq/rabbitmq-server/issues/502)
|
||||
|
||||
* New queue overflow behaviour: `reject-publish-dlx`. It is identical to `reject-publish`
|
||||
but also dead letters rejected messages.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1443](https://github.com/rabbitmq/rabbitmq-server/issues/1443)
|
||||
|
||||
* Default bindings are now explicit instead of being rows in the internal data store. That means
|
||||
that high queue churn results in significantly less binding churn, reducing lock contention on
|
||||
schema database tables, and peak schema operation latencies with it.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1721](https://github.com/rabbitmq/rabbitmq-server/pull/1721)
|
||||
|
||||
#### Internal API Changes
|
||||
|
||||
* [`amqqueue`](https://github.com/rabbitmq/rabbitmq-server/blob/master/src/amqqueue.erl) is a new public API module
|
||||
that should be used to access queue state instead of using queue state records directly. This allows the record
|
||||
to evolve a lot more rapidly with fewer or no code changes in the plugins that access queue state.
|
||||
|
||||
* `authn` and `authz` functions now have access to additional (e.g. protocol-specific) context information.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1767](https://github.com/rabbitmq/rabbitmq-server/issues/1767)
|
||||
|
||||
* Backing queue interface now exposes a function for message deduplication. Plugins now can track duplicate messages
|
||||
in a way that makes it possible to negatively confirm duplicates back to the publisher.
|
||||
|
||||
Contributed by Matteo Cafasso.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1774](https://github.com/rabbitmq/rabbitmq-server/pull/1774).
|
||||
|
||||
#### Usability
|
||||
|
||||
* New style configuration format is now more forgiving: it will ignore lines that only contain
|
||||
whitespace and tab characters, as well as leading and trailing whitespace.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2072](https://github.com/rabbitmq/rabbitmq-server/pull/2072)
|
||||
|
||||
* Maximum message size is now configurable. The default was reduced to 128 MiB.e
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1812](https://github.com/rabbitmq/rabbitmq-server/pull/1812)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
|
||||
The list below contains community contributions and most important issues that were not backported to `3.7.x` releases.
|
||||
|
||||
* Queue index consistency and safety improvements.
|
||||
|
||||
Contributed by @tomyouyou.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-server#2092](https://github.com/rabbitmq/rabbitmq-server/pull/2092), [rabbitmq/rabbitmq-server#2096](https://github.com/rabbitmq/rabbitmq-server/pull/2096), [rabbitmq/rabbitmq-server#2100](https://github.com/rabbitmq/rabbitmq-server/pull/2100).
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* More user-friendly `rabbitmq-diagnostics status` output.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#340](https://github.com/rabbitmq/rabbitmq-cli/issues/340)
|
||||
|
||||
* New `help` command.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#316](https://github.com/rabbitmq/rabbitmq-cli/pull/316)
|
||||
|
||||
* A new set of fine-grained [health check](https://www.rabbitmq.com/monitoring.html#health-checks) commands.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#292](https://github.com/rabbitmq/rabbitmq-cli/issues/292)
|
||||
|
||||
* New tool, `rabbitmq-queues`, with commands that display Raft state metrics and manage nodes that
|
||||
host quorum queue replicas.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-cli#287](https://github.com/rabbitmq/rabbitmq-cli/issues/287), [rabbitmq/rabbitmq-cli#286](https://github.com/rabbitmq/rabbitmq-cli/issues/286)
|
||||
|
||||
* Feature flag status reporting.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#346](https://github.com/rabbitmq/rabbitmq-cli/issues/346)
|
||||
|
||||
#### Usability
|
||||
|
||||
* `rabbitmq-diagnostics cipher_suites` now uses OpenSSL cipher suite format by default.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#267](https://github.com/rabbitmq/rabbitmq-cli/issues/267)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Metric collection and visualisation in management UI now can be disabled in favor of built-in
|
||||
Prometheus support and Grafana dashboard from Team RabbitMQ.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#707](https://github.com/rabbitmq/rabbitmq-management/pull/707)
|
||||
|
||||
* Feature flag management interface.
|
||||
|
||||
[rabbitmq/rabbitmq-management#648](https://github.com/rabbitmq/rabbitmq-management/pull/648)
|
||||
|
||||
* Quorum Queue support.
|
||||
|
||||
* Single Active Consumer support.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#650](https://github.com/rabbitmq/rabbitmq-management/pull/650)
|
||||
|
||||
* Support for more TLS options.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#644](https://github.com/rabbitmq/rabbitmq-management/pull/644)
|
||||
|
||||
* OAuth 2.0 Single Sign On support for [UAA](https://docs.cloudfoundry.org/concepts/architecture/uaa.html)
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#722](https://github.com/rabbitmq/rabbitmq-management/pull/722)
|
||||
|
||||
* Username and password-based Basic HTTP Auth authentication for API operations now can be disabled
|
||||
in favor of OAuth 2.0 Single Sign On via [UAA](https://docs.cloudfoundry.org/concepts/architecture/uaa.html).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#724](https://github.com/rabbitmq/rabbitmq-management/pull/724)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
|
||||
The list below contains most prominent fixes.
|
||||
|
||||
* Sensitive values in Shovel connection state (namely, the connection credentials) are now stored in
|
||||
encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
|
||||
at the cost of making troubleshooting authentication failures harder.
|
||||
|
||||
GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
|
||||
The list below contains most prominent fixes.
|
||||
|
||||
* Sensitive values in federation link state (namely, the connection credentials) are now stored in
|
||||
encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
|
||||
at the cost of making troubleshooting authentication failures harder.
|
||||
|
||||
GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
|
||||
|
||||
|
||||
### JWT and OAuth 2.0 Plugin
|
||||
|
||||
Initial release.
|
||||
|
||||
GitHub repository: [rabbitmq/rabbitmq-auth-backend-oauth2](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Client ID tracking is now cluster-wide (state is replicated across all nodes). A majority of nodes is required
|
||||
for client connections to be accepted. This is a consequence of the neew consistency-oriented design.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-mqtt#91](https://github.com/rabbitmq/rabbitmq-mqtt/issues/91)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
|
||||
The list below contains most prominent fixes.
|
||||
|
||||
* Maximum concurrent client connection limit now defaults to "infinity" (so, there is no limit).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#113](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/113)
|
||||
|
||||
|
||||
### Web MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
|
||||
The list below contains most prominent fixes.
|
||||
|
||||
* Maximum concurrent client connection limit now defaults to "infinity" (so, there is no limit).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#28](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/28)
|
||||
|
||||
|
||||
### RabbitMQ Erlang Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
Most bug fixes in this release previously shipped in [`3.7.x` release series](https://rabbitmq.com/changelog.html).
|
||||
The list below contains most prominent fixes.
|
||||
|
||||
* Sensitive values in connection state (namely, the connection credentials) are now stored in
|
||||
encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
|
||||
at the cost of making troubleshooting authentication failures harder.
|
||||
|
||||
GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-client/issues/123)
|
||||
|
||||
|
||||
## 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.0.tar.xz`.
|
|
@ -0,0 +1,219 @@
|
|||
## RabbitMQ 3.8.1
|
||||
|
||||
RabbitMQ `3.8.1` is a maintenance release that focuses on bug fixes.
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
|
||||
`22.x` series is 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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### 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 21.x or 22.x, then to RabbitMQ 3.8.x.
|
||||
|
||||
#### 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.
|
||||
|
||||
### 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
|
||||
|
||||
* Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
|
||||
of a rolling upgrade-then-restart for each node individually.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2132](https://github.com/rabbitmq/rabbitmq-server/issues/2132)
|
||||
|
||||
* Avoid pattern expansion when logging connection closure reason.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2155](https://github.com/rabbitmq/rabbitmq-server/pull/2155)
|
||||
|
||||
* Improved error handling in a module that continuously registers the node with [epmd](https://www.rabbitmq.com/clustering.html) avoids
|
||||
log noise.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2130](https://github.com/rabbitmq/rabbitmq-server/issues/2130)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Peak [quorum queue](https://www.rabbitmq.com/quorum-queues.html) memory usage was reduced by up to 25% on some workloads.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2138](https://github.com/rabbitmq/rabbitmq-server/pull/2138)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl await_startup` failed with an exception when effective timeout was set to `infinity`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2144](https://github.com/rabbitmq/rabbitmq-server/pull/2144)
|
||||
|
||||
* `rabbitmq-diagnostics check_port_connectivity` produced a false positive in an IPv6-only environment.
|
||||
|
||||
Contributed by Gabriele Santomaggio.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#385](https://github.com/rabbitmq/rabbitmq-cli/pull/385)
|
||||
|
||||
* `rabbitmq-diagnostics list_unresponsive_queues` failed in environments that had quorum queues.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#386](https://github.com/rabbitmq/rabbitmq-cli/issues/386)
|
||||
|
||||
* `rabbitmq-diagnostics status`, `rabbitmq-diagnostics cluster_status`, `rabbitmq-diagnostics listeners` now support
|
||||
`--formatter=erlang` (raw Erlang data structure output)
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#383](https://github.com/rabbitmq/rabbitmq-cli/issues/383)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `rabbitmq-diagnostics consume_event_stream` is a new command that makes it easier to consume a stream
|
||||
of internal commands. This can be useful for troubleshooting and auditing. Previously this was only
|
||||
possible via the [rabbitmq-event-exchange](https://github.com/rabbitmq/rabbitmq-event-exchange) plugin.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#299](https://github.com/rabbitmq/rabbitmq-cli/issues/299)
|
||||
|
||||
* `rabbitmq-diagnostics check_certificate_expiration` is a new [health check](https://www.rabbitmq.com/monitoring.html#health-checks) command
|
||||
that fails when any of the certificates used by target node expire within a specified time window.
|
||||
|
||||
`rabbitmq-diagnostics certificates` is its diagnostics (informative) counterpart that displays all CA and leaf certificates
|
||||
used by target node.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#305](https://github.com/rabbitmq/rabbitmq-cli/issues/305)
|
||||
|
||||
|
||||
### Prometheus Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Prometheus scraping API endpoint was unreasonably strict about the set of content types it accepts from clients,
|
||||
which caused Telegraf Prometheus input requests to fail with an`406 Not Acceptable` response.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-prometheus#12](https://github.com/rabbitmq/rabbitmq-prometheus/issues/12)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Some metrics were omitted in the UI for queues that did not have `x-queue-type` set.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#741](https://github.com/rabbitmq/rabbitmq-management/issues/741)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Errors were not propagated back to the client correctly in case of an LDAP server authentication failure.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#116](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/issues/116)
|
||||
|
||||
|
||||
### Kubernetes Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Requests to Kubernetes API endpoints failed with an `nxdomain` (domain name resolution failure)
|
||||
in an IPv6-only environment.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-k8s#55](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/issues/55)
|
||||
|
||||
|
||||
### Consul Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to specify service metadata values:
|
||||
|
||||
``` ini
|
||||
cluster_formation.consul.svc_meta.key1 = value1
|
||||
cluster_formation.consul.svc_meta.key2 = value2
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#34](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/34)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
* Client ID tracking is now more resilient to node failures and decomissioning.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-mqtt#213](https://github.com/rabbitmq/rabbitmq-mqtt/issues/213)
|
||||
|
||||
|
||||
### STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* The [`x-queue-type` header](https://www.rabbitmq.com/quorum-queues.html) is now accepted from STOMP clients.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-stomp#138](https://github.com/rabbitmq/rabbitmq-stomp/issues/138)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `stomp.hide_server` is now available in the new style configuration format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-stomp#140](https://github.com/rabbitmq/rabbitmq-stomp/issues/140)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin emitted a warning on start.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#115](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/115)
|
||||
|
||||
|
||||
### Web MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin emitted a warning on start.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-mqtt#59](https://github.com/rabbitmq/rabbitmq-web-mqtt/issues/59)
|
||||
|
||||
|
||||
### Erlang Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Connection could not be restarted after a heartbeat timeout due to strict pattern matching.
|
||||
|
||||
Contributed by Giuseppe D'Anna (@larrywax).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-erlang-client#126](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/126)
|
||||
|
||||
|
||||
### Tracing Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* On Windows, deleting the file used by an active (running) trace resulted in an `EACCES` exception.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-tracing#31](https://github.com/rabbitmq/rabbitmq-tracing/issues/31)
|
||||
|
||||
|
||||
## 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.1.tar.xz`.
|
|
@ -0,0 +1,351 @@
|
|||
## RabbitMQ 3.8.10
|
||||
|
||||
**Important**: this release has been [superseded by `3.8.11`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.11)
|
||||
which addresses a couple of bugs specific to this release (`3.8.10`)
|
||||
|
||||
All users are advised to consult the set of changes in this release but then **upgrade straight
|
||||
to `3.8.11` or a newer version if available** and skip this release.
|
||||
|
||||
|
||||
RabbitMQ `3.8.10` is a maintenance release.
|
||||
Besides containing several bug fixes, it introduces a couple new features for quorum queues.
|
||||
|
||||
This release [**no longer supports** Erlang 21.3](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [requires Erlang 22](https://www.rabbitmq.com/which-erlang.html) or
|
||||
[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
|
||||
|
||||
Erlang 21.3 [**is no longer supported**](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
|
||||
`22.3` or `23.1` 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 deprecates [boot time definition import](https://www.rabbitmq.com/definitions.html#import-on-boot) build into the management plugin.
|
||||
The feature still exists but is no longer documented or tested. Please switch to
|
||||
the built-in definition import mechanism:
|
||||
|
||||
``` ini
|
||||
# DEPRECATED, requires management plugin to be enabled,
|
||||
# does not support import of definitions that depend on plugins
|
||||
# (e.g. Shovels or custom exchanges)
|
||||
management.load_definitions = /path/to/definitions/file.json
|
||||
```
|
||||
|
||||
to
|
||||
|
||||
``` ini
|
||||
# built-in feature, supports import of definitions
|
||||
# that depend on plugins (e.g. Shovels or custom exchanges)
|
||||
load_definitions = /path/to/definitions/file.json
|
||||
```
|
||||
|
||||
Definition import in the management plugin (`management.load_definitions`) will be **removed** in
|
||||
a future RabbitMQ release.
|
||||
|
||||
### 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 series (e.g. `3.7.x`).
|
||||
|
||||
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 22.x or Later Versions
|
||||
|
||||
When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
|
||||
|
||||
Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
|
||||
RabbitMQ **must be upgraded at the same time as Erlang**.
|
||||
|
||||
Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
|
||||
then Erlang 22.x or 23.x, then RabbitMQ to the 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)
|
||||
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Starting with `3.8.0`, an unintentionally introduced assertion could prevent classic mirrored queue
|
||||
mirrors from starting successfully in case the primary replica changed concurrently with their startup.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2449](https://github.com/rabbitmq/rabbitmq-server/pull/2449)
|
||||
|
||||
* Repeated polling of a quorum queue with `basic.get` that yielded an empty response could
|
||||
result in an unbounded growth of log segment files on on disk.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2651](https://github.com/rabbitmq/rabbitmq-server/pull/2651)
|
||||
|
||||
* RabbitMQ core plugin activation was revisited to be closer to that of `3.7.x`. This does not any
|
||||
related improvements w.r.t. definition import, e.g. those introudced in [RabbitMQ `3.8.6`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.6).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2656](https://github.com/rabbitmq/rabbitmq-server/pull/2656)
|
||||
|
||||
* Syslog dependency was not started correctly. This meant no log messages were sent to Syslog.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2456](https://github.com/rabbitmq/rabbitmq-server/pull/2456)
|
||||
|
||||
* `rabbitmq-diagnostics check_if_node_is_quorum_critical` returned a false positive for a node [marked for maintenance](https://www.rabbitmq.com/upgrade.html#maintenance-mode).
|
||||
Given the refinement to the `rabbitmq-upgrade drain` command in [rabbitmq/rabbitmq-server#2474](https://github.com/rabbitmq/rabbitmq-server/issues/2474),
|
||||
`rabbitmq-diagnostics check_if_node_is_quorum_critical` now will unconditionally return a success
|
||||
if target node is under maintanence.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2469](https://github.com/rabbitmq/rabbitmq-server/issues/2469)
|
||||
|
||||
* Queues could update their internal bookkeeping state incorrectly in some cases, leading to a `file_handle_cache`
|
||||
operation exception.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2488](https://github.com/rabbitmq/rabbitmq-server/issues/2488)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [Quorum queues](https://www.rabbitmq.com/quorum-queues.html) now can use the [`reject-publish`](https://www.rabbitmq.com/maxlength.html#overflow-behaviour)
|
||||
max length overflow strategy.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2407](https://github.com/rabbitmq/rabbitmq-server/pull/2407)
|
||||
|
||||
* [Quorum queues](https://www.rabbitmq.com/quorum-queues.html) now support [consumer priority](https://www.rabbitmq.com/consumers.html#priority).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2451](https://github.com/rabbitmq/rabbitmq-server/pull/2451)
|
||||
|
||||
* Per-user connection and queue limits. This is similar to [per-vhost limits](https://www.rabbitmq.com/vhosts.html#limits) but,
|
||||
as the name suggests, these limits are associated for a given user.
|
||||
|
||||
The limits are controlled using CLI tools or the HTTP API:
|
||||
|
||||
``` sh
|
||||
# limits user "user-e8d3f85c" to up to five connections and ten channels
|
||||
rabbitmqctl set_user_limits "user-e8d3f85c" '{"max-connections": 5, "max-channels": 10}'
|
||||
|
||||
# clears the maximum number of connections limit for the user
|
||||
rabbitmqctl clear_user_limits "user-e8d3f85c" "max-connections"
|
||||
|
||||
# clears all limits for the user
|
||||
rabbitmqctl clear_user_limits "user-e8d3f85c" "all"
|
||||
```
|
||||
|
||||
Contributed by Erlang Solutions, sponsored by [CloudAMQP](https://cloudamqp.com).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#607](https://github.com/rabbitmq/rabbitmq-server/issues/607), [rabbitmq/rabbitmq-server#2380](https://github.com/rabbitmq/rabbitmq-server/pull/2380)
|
||||
|
||||
* TLSv1.3 is no longer considered experimental (on Erlang 23) and excluded from TLS listener configuration.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#415](https://github.com/rabbitmq/rabbitmq-common/issues/415)
|
||||
|
||||
* When a node is put under maintenance, it will now stop all local quorum queue replicas after completing
|
||||
leadership transfer. This means that no quorum queue replicas on the node will be considered for
|
||||
leader elections.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2474](https://github.com/rabbitmq/rabbitmq-server/issues/2474)
|
||||
|
||||
* Nodes now keep track of failed client authentication attempts and expose it as a metric via both the [Prometheus endpoint](https://www.rabbitmq.com/prometheus.html)
|
||||
and the HTTP API at `GET /api/auth/attempts/{node}`.
|
||||
|
||||
The tracking is done for every cluster node individually. The protocols that support authentication attempt tracking
|
||||
right now are AMQP 0-9-1, AMQP 1.0 and MQTT.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2436](https://github.com/rabbitmq/rabbitmq-server/pull/2436)
|
||||
|
||||
* `bypass_pem_cache` is a new configuration key that makes it possible to disable the cache of PEM files
|
||||
[used by the Erlang TLS implementation](https://blog.heroku.com/how-we-sped-up-sni-tls-handshakes-by-5x).
|
||||
This rotated certificates quicker to detect for nodes but can also increase latency for inbound
|
||||
TLS connections, e.g. under [high connection churn scenarios](https://www.rabbitmq.com/connections.html#high-connection-churn).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2686](https://github.com/rabbitmq/rabbitmq-server/pull/2686)
|
||||
|
||||
* Definition import now safely handles some missing queue object arguments.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2668](https://github.com/rabbitmq/rabbitmq-server/issues/2668)
|
||||
|
||||
* `rabbitmq.conf` schema now allows for [peer certificate chain verification depth](https://www.rabbitmq.com/ssl.html#peer-verification) to be set to zero.
|
||||
When this value is used, peer certificate must be [signed by a trusted CA certificate directly](https://erlang.org/doc/man/ssl.html#type-allowed_cert_chain_length) in order
|
||||
for the verification to pass.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2493](https://github.com/rabbitmq/rabbitmq-server/issues/2493)
|
||||
|
||||
* `RABBITMQ_IO_THREAD_POOL_SIZE` will no longer be respected by RabbitMQ nodes. It [is no longer relevant](http://blog.erlang.org/IO-Polling/)
|
||||
with supported Erlang versions and will simplify [`rabbitmq-diagnostics runtime_thread_stats`](https://www.rabbitmq.com/runtime.html#thread-stats) output.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2473](https://github.com/rabbitmq/rabbitmq-server/issues/2473)
|
||||
|
||||
* The `+K` [runtime parameter](https://www.rabbitmq.com/runtime.html) is no longer used by RabbitMQ nodes as it has [no effect](http://blog.erlang.org/IO-Polling/)
|
||||
with supported Erlang versions.
|
||||
|
||||
Contributed by Ayanda Dube (Erlang Solutions).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2470](https://github.com/rabbitmq/rabbitmq-server/pull/2470)
|
||||
|
||||
|
||||
### CLI
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to enable all feature flags in a single command:
|
||||
|
||||
``` sh
|
||||
rabbitmqctl enable_feature_flag all
|
||||
```
|
||||
|
||||
Note that this will only enable the flags supported by all cluster members.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#455](https://github.com/rabbitmq/rabbitmq-cli/issues/455)
|
||||
|
||||
* `rabbitmq-queues peek` is a new command that allows for peeking at a queue position. It is only
|
||||
supported by quorum queues (and not classic queues):
|
||||
|
||||
``` sh
|
||||
# peeks at the head of queue "qq.1" in virtual host "staging"
|
||||
rabbitmq-queues peek --vhost "staging" "qq.1 1"
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#452](https://github.com/rabbitmq/rabbitmq-cli/pull/452/)
|
||||
|
||||
* `rabbitmq-queues reclaim_quorum_memory` is a new command that forces Raft WAL compaction which in most cases should reduce memory footprint of a quorum queue:
|
||||
|
||||
``` sh
|
||||
rabbitmq-queues reclaim_quorum_memory --vhost "staging" "qq.1"
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#453](https://github.com/rabbitmq/rabbitmq-cli/pull/453)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl rename_cluster_node` failed with an error about a missing directory.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#457](https://github.com/rabbitmq/rabbitmq-cli/issues/457)
|
||||
|
||||
* `rabbitmqctl export_definitions` exported optional binding arguments as blank.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2500](https://github.com/rabbitmq/rabbitmq-server/issues/2500)
|
||||
|
||||
* Force removal of a node did not remove it from quorum queue member lists.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2414](https://github.com/rabbitmq/rabbitmq-server/issues/2414)
|
||||
|
||||
* CLI tools now pick a unique identifier from a pool. Previously the pool of possible values was theoretically
|
||||
unbounded, which could result in an atom table exhaustion condition on long running nodes that
|
||||
had a lot of CLI tool invocations (e.g. CLI tools were used to collect monitoring data frequently).
|
||||
|
||||
Such use of CLI tools for [monitoring](https://www.rabbitmq.com/monitoring.html) is not recommended:
|
||||
there are better options such as [Prometheus and Grafana](https://www.rabbitmq.com/prometheus.html).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#461](https://github.com/rabbitmq/rabbitmq-cli/pull/461)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Raft-based client ID tracker is now significantly more efficient in handling failing
|
||||
or closed connections. This prevents potential [high memory usage of tracking tables](https://github.com/rabbitmq/rabbitmq-server/discussions/2688)
|
||||
on the node.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2692](https://github.com/rabbitmq/rabbitmq-server/pull/2692)
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Federation links that failed to connect due to a TCP connection timeout [leaked resources](https://www.rabbitmq.com/connections.html#monitoring).
|
||||
Other connection failure scenarios did not result in a leak.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#119](https://github.com/rabbitmq/rabbitmq-federation/pull/119)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* An autodeleted Shovel would re-appear on other cluster nodes after the node that hosted it originally was restarted.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2655](https://github.com/rabbitmq/rabbitmq-server/issues/2655)
|
||||
|
||||
### Prometheus Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `GET /metrics/per-object` is a new endpoint that always returns [individual entity metrics](https://www.rabbitmq.com/prometheus.html#metric-aggregation), even if
|
||||
`GET /metrics` is configured to return aggregated results.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2659](https://github.com/rabbitmq/rabbitmq-server/pull/2659)
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [Individual health checks](https://www.rabbitmq.com/monitoring.html#health-checks) are now available through the HTTP API.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#844](https://github.com/rabbitmq/rabbitmq-management/issues/844)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Quorum queue consumer counter on on the queue list page was not updated when consumers were cancelled or failed.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2421](https://github.com/rabbitmq/rabbitmq-server/issues/2421)
|
||||
|
||||
* The aliveness check endpoint now responds with a `503 Service Unavailable` instead of a 500 when
|
||||
it cannot publish a test message, e.g. because a policy with zero message TTL was applied to all queues.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#855](https://github.com/rabbitmq/rabbitmq-management/issues/855)
|
||||
|
||||
|
||||
### AWS Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* AWS API request errors are now propagated. This means that should an AWS API request fail,
|
||||
the peer discovery subsystem will retry it a limited number of times.
|
||||
|
||||
Contributed by Stefan @stefanmoser Moser.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-aws#40](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/pull/40)
|
||||
|
||||
|
||||
### RabbitMQ Erlang Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `amqp_channel:call/4` timeouts are now safly reconciled with connection-level timeouts.
|
||||
|
||||
Contributed by Ayanda Dube.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2660](https://github.com/rabbitmq/rabbitmq-server/pull/2660)
|
||||
|
||||
### Windows Installer
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Windows installer is now signed by a new (rolled) key.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2666](https://github.com/rabbitmq/rabbitmq-server/issues/2666)
|
||||
|
||||
* The installer now correctly creates directories when RabbitMQ is installed to
|
||||
a different drive from the shell (`cmd.exe`).
|
||||
|
||||
Contributed by Jiahao @Y2Nk4 Guo.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2682](https://github.com/rabbitmq/rabbitmq-server/pull/2682)
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
* `credentials_obfuscation` was upgraded [from 2.2.3 to 2.3.0](https://github.com/rabbitmq/credentials-obfuscation/blob/master/ChangeLog.md)
|
||||
* `ranch` is [no longer a dependency](https://github.com/rabbitmq/rabbitmq-server/pull/2707) of `rabbit_common`
|
||||
|
||||
## 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.10.tar.xz`.
|
|
@ -0,0 +1,72 @@
|
|||
## RabbitMQ 3.8.11
|
||||
|
||||
RabbitMQ `3.8.11` is a maintenance release that contains bug fixes.
|
||||
|
||||
This release [**no longer supports** Erlang 21.3](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [requires Erlang 22](https://www.rabbitmq.com/which-erlang.html) or
|
||||
[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
|
||||
|
||||
Erlang 21.3 [**is no longer supported**](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
|
||||
`22.3` or `23.2` 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
|
||||
|
||||
### 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 series (e.g. `3.7.x`).
|
||||
|
||||
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 22.x or Later Versions
|
||||
|
||||
When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
|
||||
|
||||
Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
|
||||
RabbitMQ **must be upgraded at the same time as Erlang**.
|
||||
|
||||
Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
|
||||
then Erlang 22.x or 23.x, then RabbitMQ to the 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)
|
||||
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Quorum queues that had active consumers during a rolling cluster upgrade could run into an exception and restart loop.
|
||||
|
||||
This issue is specific to [RabbitMQ `3.8.10`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.10).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2728](https://github.com/rabbitmq/rabbitmq-server/pull/2728)
|
||||
|
||||
* Nodes that had `reverse_dns_lookup` set to `true` could not accept client connections.
|
||||
|
||||
This issue is specific to [RabbitMQ `3.8.10`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.10).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2730](https://github.com/rabbitmq/rabbitmq-server/issues/2730)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
No dependency changes.
|
||||
|
||||
|
||||
## 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.11.tar.xz`.
|
|
@ -0,0 +1,214 @@
|
|||
## RabbitMQ 3.8.12
|
||||
|
||||
RabbitMQ `3.8.12` is a maintenance release that contains bug fixes.
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [requires Erlang 22](https://www.rabbitmq.com/which-erlang.html) or
|
||||
[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/).
|
||||
|
||||
[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
|
||||
|
||||
### 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 series (e.g. `3.7.x`).
|
||||
|
||||
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 22.x or Later Versions
|
||||
|
||||
When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
|
||||
|
||||
Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
|
||||
RabbitMQ **must be upgraded at the same time as Erlang**.
|
||||
|
||||
Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
|
||||
then Erlang 22.x or 23.x, then RabbitMQ to the 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)
|
||||
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* [Maintenance mode](https://www.rabbitmq.com/upgrade.html#maintenance-mode) no longer transfers leaders of classic mirrored queue.
|
||||
|
||||
The original transfer implementation was not guaranteed to be safe when only a
|
||||
subset of cluster nodes hosted replicas. In addition, the process could take
|
||||
a lot of time in environments with a lot of classic mirrored queues, more
|
||||
than in case of node shutdown.
|
||||
|
||||
Quorum queue leadership transfer is still performed as it is dramatically more
|
||||
efficient and never suffered from any downsides of leadership transfer of CMQs.
|
||||
|
||||
GitHub issue: [#2749](https://github.com/rabbitmq/rabbitmq-server/issues/2749)
|
||||
|
||||
* Exclusive queues that happen to be matched by classic queue mirroring policies
|
||||
will no longer be considered for rebalancing operations since they are not
|
||||
actually mirrored (the lifecycle is by design tied to a single client connection).
|
||||
|
||||
GitHub issue: [#2795](https://github.com/rabbitmq/rabbitmq-server/issues/2795)
|
||||
|
||||
* Default replica count for quorum queues was using an incorrect configuration key name.
|
||||
The default value is now `3`, so in a cluster of five or seven nodes, only three
|
||||
will host replicas for newly declared quorum queues. One replica is the node to which
|
||||
the declaring client is connected to, two others are selected randomly.
|
||||
|
||||
Declaring connections can control the number of replicas using the `x-quorum-initial-group-size`
|
||||
optional queue argument at declaration time.
|
||||
|
||||
GitHub issue: [#2759](https://github.com/rabbitmq/rabbitmq-server/pull/2759)
|
||||
|
||||
* Default [runtime busy waiting](https://www.rabbitmq.com/runtime.html#cpu-reduce-idle-usage) settings were
|
||||
changed to `none` by default, which reduces CPU footprint on nodes that are mostly idle. The values
|
||||
can be overridden for workloads that benefit from different values.
|
||||
|
||||
Contributed by @carlhoerberg (CloudAMQP)
|
||||
|
||||
GitHub issue: [#2803](https://github.com/rabbitmq/rabbitmq-server/pull/2803)
|
||||
|
||||
* Definition import now imports runtime parameters after exchanges, queues, and bindings
|
||||
to reduce the likelihood of starting dynamic Shovels from racing with topology
|
||||
imports.
|
||||
|
||||
GitHub issue: [#2798](https://github.com/rabbitmq/rabbitmq-server/issues/2798)
|
||||
|
||||
* Memory monitor could run into an exception if queried very early on node boot
|
||||
before it was fully initialized.
|
||||
|
||||
Contributed by @tomyouyou.
|
||||
|
||||
GitHub issue: [#2733](https://github.com/rabbitmq/rabbitmq-server/pull/2733)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `rabbitmq.conf` validation of TLS certificate and private key paths is now more thorough:
|
||||
it checks if the files have read or read/write permissions instead of checking if it can read
|
||||
the file's metadata.
|
||||
|
||||
GitHub issue: [#2685](https://github.com/rabbitmq/rabbitmq-server/issues/2685)
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `rabbitmqctl close_all_user_connections` is a new command that closes all connections that
|
||||
authenticated using a specific username:
|
||||
|
||||
```
|
||||
rabbitmqctl close_all_user_connections "user-99fc15d3f" "closed to force reconnection"
|
||||
```
|
||||
|
||||
GitHub issue: [#2715](https://github.com/rabbitmq/rabbitmq-server/issues/2715)
|
||||
|
||||
|
||||
### Prometheus Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* AuthN authentication attempts metrics produced duplicate `TYPE` and `HELP` strings in
|
||||
the scraping API endpoint output.
|
||||
|
||||
Some metrics were renamed to avoid duplication. The new names are `auth_attempts_detailed_total`,
|
||||
`auth_attempts_detailed_succeeded_total`, and `auth_attempts_detailed_failed_total`.
|
||||
|
||||
This issue is specific to RabbitMQ `3.8.10` and `3.8.11`.
|
||||
|
||||
GitHub issue: [#2740](https://github.com/rabbitmq/rabbitmq-server/issues/2740)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* The plugin now supports two new configuration settings that control SNI and hostname verification
|
||||
behavior for TLS-enabled LDAP client connections:
|
||||
|
||||
``` ini
|
||||
# leave out to keep the default behavior (exact hostname matching)
|
||||
auth_ldap.ssl_options.hostname_verification = wildcard
|
||||
|
||||
# set to none to disable SNI
|
||||
auth_ldap.ssl_options.sni = a.rabbitmq.hostname.dev
|
||||
```
|
||||
|
||||
These changes are based on the [research and suggestions](https://pcable.net/posts/2021-02-10-rmq-ldap/) from Patrick @patcable Cable.
|
||||
|
||||
GitHub issue: [#2805](https://github.com/rabbitmq/rabbitmq-server/issues/2805)
|
||||
|
||||
|
||||
## Shovel Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Dynamic Shovels now can specify [optional queue arguments](https://www.rabbitmq.com/queues.html#optional-arguments) for
|
||||
the queues they declare. Note that these settings will not have any effects for cases where the plugin
|
||||
uses already existing queues.
|
||||
|
||||
This allows for the Shovel-managed queues to be [quorum](https://www.rabbitmq.com/quorum-queues.html). For the arguments
|
||||
that must not be provided at queue declaration time, [policies](https://www.rabbitmq.com/parameters.html#policies)
|
||||
is the right approach.
|
||||
|
||||
The arguments are specified using the `""` and `""` arguments for source and destination queues, respectively:
|
||||
|
||||
``` json
|
||||
{
|
||||
"src-protocol": "amqp091",
|
||||
"src-uri": ["amqp://localhost"],
|
||||
"src-queue": "src-queue",
|
||||
"dest-protocol": "amqp091",
|
||||
"dest-uri": ["amqp://localhost"],
|
||||
"dest-queue": "dest-queue",
|
||||
"src-queue-args": {
|
||||
"x-queue-type": "quorum"
|
||||
},
|
||||
"dest-queue-args": {
|
||||
"x-queue-type": "quorum"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
GitHub issue: [#2799](https://github.com/rabbitmq/rabbitmq-server/issues/2799)
|
||||
|
||||
|
||||
## AuthN/AuthZ Cache Plugin
|
||||
|
||||
### Enhancement
|
||||
|
||||
* Cache operation timeout has been increased to 15s (same as the channel operation timeout in the core).
|
||||
This prevents sporadic timeouts in heavily loaded systems.
|
||||
|
||||
GitHub issue: [#2792](https://github.com/rabbitmq/rabbitmq-server/pull/2792)
|
||||
|
||||
|
||||
## RabbitMQ Erlang Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The client performed hostname resolution twice even if IP version preference was specified by the user.
|
||||
|
||||
Contributed by Pawel @haljin Antemijczuk.
|
||||
|
||||
GitHub issue: [#2748](https://github.com/rabbitmq/rabbitmq-server/issues/2748)
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
No dependency changes.
|
||||
|
||||
|
||||
## Source Code Archives
|
||||
|
||||
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.12.tar.xz`
|
||||
instead of the source tarball produced by GitHub.
|
|
@ -0,0 +1,155 @@
|
|||
## RabbitMQ 3.8.13
|
||||
|
||||
RabbitMQ `3.8.13` is a maintenance release.
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [requires Erlang 22.3](https://www.rabbitmq.com/which-erlang.html).
|
||||
[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/) is highly recommended
|
||||
for best forward compatibility with future RabbitMQ versions.
|
||||
|
||||
[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
|
||||
|
||||
### 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 series (e.g. `3.7.x`).
|
||||
|
||||
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 22.x or Later Versions
|
||||
|
||||
When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
|
||||
|
||||
Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
|
||||
RabbitMQ **must be upgraded at the same time as Erlang**.
|
||||
|
||||
Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
|
||||
then Erlang 22.3 or 23.x, then RabbitMQ to the 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)
|
||||
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Nodes that had an unusually long name (e.g. 150 or more characters) could overflow
|
||||
message property lengths with the [direct reply-to](https://www.rabbitmq.com/direct-reply-to.html) identifier they generated.
|
||||
Now the generated values are almost entirely decoupled from node name length.
|
||||
|
||||
GitHub issue: [#2842](https://github.com/rabbitmq/rabbitmq-server/pull/2842)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Consumer utilisation metric has been renamed to consumer capacity which more accurately represents
|
||||
what it measures. The metric indicates the percentage of time that RabbitMQ has attempted a delivery
|
||||
to a consumer of a queue, and was allowed to do so by the [channel prefetch value](https://www.rabbitmq.com/confirms.html#channel-qos-prefetch) and
|
||||
the number of currently unacknowledged deliveries.
|
||||
|
||||
For queues that have no consumers, the metric now returns 0%. For consumers that accept all deliveries
|
||||
attempted, the metric will be around 100% (optimal).
|
||||
|
||||
For queues that do have consumers but no traffic the metric will be at 100%. The assumption here is that consumers
|
||||
can absorb all the load. This case is intentionally treated differently from the one above with no online consumers.
|
||||
|
||||
GitHub issue: [#2843](https://github.com/rabbitmq/rabbitmq-server/pull/2843)
|
||||
|
||||
|
||||
### Prometheus Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Consumer utilisation metric has been renamed to consumer capacity which more accurately represents
|
||||
what it measures. See a more detailed note above in the Management plugin section.
|
||||
|
||||
GitHub issue: [#2843](https://github.com/rabbitmq/rabbitmq-server/pull/2843)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Quorum queues now can be federated.
|
||||
|
||||
GitHub issue: [#2756](https://github.com/rabbitmq/rabbitmq-server/issues/2756)
|
||||
|
||||
* Exchange federation now supports a new option, `channel_use_mode`, which allows a single
|
||||
channel to be used for all federation link activity if set to `single`:
|
||||
|
||||
``` shell
|
||||
rabbitmqctl set_parameter federation-upstream dc-2 '{"uri":"amqp://dc2.messaging.coolcorp.local:5672", "channel-use-mode": "single"}'
|
||||
```
|
||||
|
||||
This helps avoid a race condition between topology changes and message flow
|
||||
and the cost of topology operations reducing message transfer rates and increasing
|
||||
rate variability.
|
||||
|
||||
The default value is `multiple`. It means that every link will use multiple channels (one for message transfer,
|
||||
one for topology changes, etc), which has been the case since rabbitmq/rabbitmq-federation#97.
|
||||
This is the recommended mode for most environments, and all environments with a mostly static topology.
|
||||
|
||||
See [rabbitmq/rabbitmq-federation#97](https://github.com/rabbitmq/rabbitmq-federation/pull/97) for the background.
|
||||
|
||||
GitHub issue: [#2829](https://github.com/rabbitmq/rabbitmq-server/pull/2829)
|
||||
|
||||
|
||||
### AMQP 1.0 Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The plugin could run into unhandled exceptions.
|
||||
|
||||
GitHub issue: [#2830](https://github.com/rabbitmq/rabbitmq-server/pull/2830)
|
||||
|
||||
|
||||
### OAuth 2 AuthN/AuthZ Backend
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Several settings of the plugin are now exposed to `rabbitmq.conf` and provide validations:
|
||||
|
||||
``` ini
|
||||
auth_backends.1 = oauth2
|
||||
auth_oauth2.resource_server_id = a_resource_server_id
|
||||
auth_oauth2.additional_scopes_key = a_custom_scope_key
|
||||
auth_oauth2.default_key = id1
|
||||
auth_oauth2.signing_keys.id1 = /path/to/signing.key1.pem
|
||||
auth_oauth2.signing_keys.id2 = /path/to/signing.key2.pem
|
||||
```
|
||||
|
||||
GitHub issue: [#2550](https://github.com/rabbitmq/rabbitmq-server/issues/2550)
|
||||
|
||||
* JWT tokens now can be fetched from a JWKS endpoint provided using the `rabbitmq_auth_backend_oauth2.key_config.jwks_url`
|
||||
key in `advanced.config`.
|
||||
|
||||
Contributed by Teo @teozkr Klestrup Röijezon.
|
||||
|
||||
GitHub issue: [#2791](https://github.com/rabbitmq/rabbitmq-server/pull/2791)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
* `lager` was [upgraded to 3.8.2](https://github.com/erlang-lager/lager/compare/3.8.0..3.8.2)
|
||||
* `cuttlefish` was [upgraded to 2.6.0](https://github.com/kyorai/cuttlefish/compare/v2.4.0..v2.6.0)
|
||||
* `credentials_obfuscation` was [upgraded to 2.4.0](https://github.com/rabbitmq/credentials-obfuscation/blob/master/ChangeLog.md#changes-between-230-and-240-february-18-2021)
|
||||
* `observer_cli` was [upgraded to 1.6.0](https://github.com/zhongwencool/observer_cli/compare/1.5.4..v1.6.0)
|
||||
|
||||
|
||||
## Source Code Archives
|
||||
|
||||
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.13.tar.xz`
|
||||
instead of the source tarball produced by GitHub.
|
|
@ -0,0 +1,77 @@
|
|||
## RabbitMQ 3.8.14
|
||||
|
||||
RabbitMQ `3.8.14` is a maintenance release that restores
|
||||
Erlang 22.3 compatibility for environments that use [direct reply-to](/direct-reply-to.html).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [requires Erlang 22.3](https://www.rabbitmq.com/which-erlang.html).
|
||||
[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/) is highly recommended
|
||||
for best forward compatibility with future RabbitMQ versions.
|
||||
|
||||
[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
|
||||
what package repositories and tools can be used to provision a recent version of Erlang `23.x`.
|
||||
|
||||
|
||||
## Upgrade and Compatibility Notes
|
||||
|
||||
### 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 series (e.g. `3.7.x`).
|
||||
|
||||
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 23.x or Later Versions
|
||||
|
||||
When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
|
||||
|
||||
Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
|
||||
RabbitMQ **must be upgraded at the same time as Erlang**.
|
||||
|
||||
Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 first,
|
||||
then Erlang 23.x, then RabbitMQ to the 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)
|
||||
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* [Direct reply-to](https://www.rabbitmq.com/direct-reply-to.html) failed witn an exception on Erlang 22.3.
|
||||
Nodes running on Erlang 23 are not affected.
|
||||
|
||||
GitHub issue: [#2857](https://github.com/rabbitmq/rabbitmq-server/pull/2857)
|
||||
|
||||
* A warnings about async I/O threads was replaced with a similar one about dirty I/O
|
||||
schedulers. This keeps the message up with the settings used in modern Erlang releases.
|
||||
|
||||
GitHub issue: [#2854](https://github.com/rabbitmq/rabbitmq-server/pull/2854)
|
||||
|
||||
### Other
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Community-maintained [RabbitMQ OCF scripts](https://github.com/rabbitmq/rabbitmq-server/blob/master/scripts/rabbitmq-server-ha.ocf) were revisited.
|
||||
|
||||
Contributed by Michele @mbaldessari Baldessari.
|
||||
|
||||
GitHub issue: [#2853](https://github.com/rabbitmq/rabbitmq-server/pull/2853)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
There were no dependency changes.
|
||||
|
||||
|
||||
## Source Code Archives
|
||||
|
||||
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.14.tar.xz`
|
||||
instead of the source tarball produced by GitHub.
|
|
@ -0,0 +1,175 @@
|
|||
## RabbitMQ 3.8.15
|
||||
|
||||
RabbitMQ `3.8.15` is a maintenance release that includes two security patches.
|
||||
|
||||
All users are advised to consult the set of changes in this release but then
|
||||
**upgrade straight to `3.8.16` or a newer version if available** and skip this release.
|
||||
|
||||
### Security Patches
|
||||
|
||||
This release addresses two CVEs:
|
||||
|
||||
* [CVE-2021-22117](https://tanzu.vmware.com/security/cve-2021-22117)
|
||||
* [CVE-2021-22116](https://tanzu.vmware.com/security/cve-2021-22116)
|
||||
|
||||
Our team would like to thank
|
||||
|
||||
* Jonathan Knudsen from the Synopsys Cybersecurity Research Center (CyRC)
|
||||
* Robert Chen from DeepSurface Security
|
||||
|
||||
for responsibly disclosing the vulnerabilities and helping assess and test
|
||||
the patches.
|
||||
|
||||
### Obtaining Packages
|
||||
|
||||
This is the first release in the [post-Bintray era](https://blog.rabbitmq.com/posts/2021/03/migrate-off-of-bintray/).
|
||||
Because Bintray shut down on May 1st, 2021, this version is not distributed via Bintray.
|
||||
From now on, releases are distributed via GitHub, [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/),
|
||||
and [PackageCloud](https://packagecloud.io/rabbitmq).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release is the [last release to support Erlang 22.3](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/).
|
||||
[Erlang 23](http://blog.erlang.org/OTP-23-Highlights/) is highly recommended
|
||||
for best forward compatibility with future RabbitMQ versions.
|
||||
|
||||
[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
|
||||
what package repositories and tools can be used to provision a recent version of Erlang `23.x`.
|
||||
|
||||
|
||||
## Upgrade and Compatibility Notes
|
||||
|
||||
### 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 series (e.g. `3.7.x`).
|
||||
|
||||
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)
|
||||
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Quorum queues did not take snapshots as frequently as they are expected to with some configurations.
|
||||
This resulted in much higher peak disk space usage for queues that did not have a meaningful backlog.
|
||||
|
||||
GitHub issue: [#2974](https://github.com/rabbitmq/rabbitmq-server/issues/2974)
|
||||
|
||||
* Quorum queue name was unintentionally limited: the length of virtual host and actual queue name
|
||||
was limited to 254 characters. Quorum queues that had longer names failed to be declared.
|
||||
|
||||
* Deleting a quorum queue would leave some of its internal metrics data around.
|
||||
|
||||
GitHub issue: [#2846](https://github.com/rabbitmq/rabbitmq-server/pull/2846)
|
||||
|
||||
* Client destination address is now obtained w.r.t. the [Proxy protocol](https://www.rabbitmq.com/networking.html#proxy-protocol) settings.
|
||||
|
||||
Contributed by @carlhoerberg (CloudAMQP).
|
||||
|
||||
GitHub issue: [#2942](https://github.com/rabbitmq/rabbitmq-server/pull/2942)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Quorum queue consumers that consume messages and do not acknowledge them will now have a 15 minute
|
||||
acknowledgement timeout applied to them by default. Operators can increase the timeout if necessary.
|
||||
|
||||
Such consumers delay or even prevent on disk data compaction, which can run a node out of disk
|
||||
space much earlier than anticipated.
|
||||
|
||||
GitHub issue: [#2990](https://github.com/rabbitmq/rabbitmq-server/pull/2990)
|
||||
|
||||
* Channel interceptors now can return channel-level exceptions.
|
||||
|
||||
Contributed by Ayanda @Ayanda-D Dube.
|
||||
|
||||
GitHub issue: [#2989](https://github.com/rabbitmq/rabbitmq-server/pull/2989)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmq-diagnostics status` could run into an exception when formatting responses
|
||||
from nodes where high VM memory watermark was configured using `advanced.config`.
|
||||
|
||||
GitHub issue: [#2964](https://github.com/rabbitmq/rabbitmq-server/issues/2964)
|
||||
|
||||
* `rabbitmq-queues rebalance` will no longer pick nodes [under maintenance](https://www.rabbitmq.com/upgrade.html#maintenance-mode)
|
||||
as new queue leader placement candidates.
|
||||
|
||||
GitHub issue: [#2993](https://github.com/rabbitmq/rabbitmq-server/pull/2993)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `rabbitmq-diagnostics remote_shell` is a new command that opens a remote Erlang shell
|
||||
to the target node. This simplifies troubleshooting of a running node.
|
||||
|
||||
GitHub issue: [#2860](https://github.com/rabbitmq/rabbitmq-server/pull/2860)
|
||||
|
||||
* `rabbitmq-queues await_online_quorum_plus_one` is now a no-op in a single node cluster
|
||||
since the command does not make sense when there is only one node.
|
||||
|
||||
GitHub issue: [#2890](https://github.com/rabbitmq/rabbitmq-server/pull/2890)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* When a virtual host was created with tags via the HTTP API, the tags were unintentionally
|
||||
concatenated together.
|
||||
|
||||
GitHub issue: [#2982](https://github.com/rabbitmq/rabbitmq-server/pull/2982)
|
||||
|
||||
* More precise UI description for message consumption mode that is destructive (consumes in automatic acknowledgement mode).
|
||||
|
||||
GitHub issue: [#3011](https://github.com/rabbitmq/rabbitmq-server/pull/3011)
|
||||
|
||||
|
||||
### AWS Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [AWS peer discovery mechanism](https://www.rabbitmq.com/cluster-formation.html#peer-discovery-aws) now supports
|
||||
[Instance Metadata Service v2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html).
|
||||
In case it is not available, requests will fall back to the original metadata service endpoint.
|
||||
|
||||
The v2 endpoint offers substantial security improvements and is one of
|
||||
the [AWS best practices](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#ec2-8-remediation).
|
||||
|
||||
Contributed by @thuandb (AWS).
|
||||
|
||||
GitHub issue: [#2952](https://github.com/rabbitmq/rabbitmq-server/pull/2952)
|
||||
|
||||
|
||||
### Auth Mechanism TLS Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* The plugin now has limited support for username extraction from SAN of type "other name".
|
||||
Note that the type by definition supports arbitrary values, so supporting all possible
|
||||
inputs is not realistic.
|
||||
|
||||
Contributed by @Thibi2000.
|
||||
|
||||
GitHub issue: [#2983](https://github.com/rabbitmq/rabbitmq-server/issues/2983), [#2985](https://github.com/rabbitmq/rabbitmq-server/issues/2985)
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
There were no dependency changes.
|
||||
|
||||
|
||||
## Source Code Archives
|
||||
|
||||
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.15.tar.xz`
|
||||
instead of the source tarball produced by GitHub.
|
|
@ -0,0 +1,87 @@
|
|||
## RabbitMQ 3.8.16
|
||||
|
||||
RabbitMQ `3.8.16` is a maintenance release.
|
||||
|
||||
It reintroduces `rabbitmq_peer_discovery_aws` plugin that was unintentionally removed
|
||||
from `3.8.15` due to release pipeline changes.
|
||||
|
||||
This is the first release to drop support for Erlang 22.3 and introduce support for the [upcoming Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/) release.
|
||||
|
||||
### Obtaining Packages
|
||||
|
||||
This release is distributed via GitHub, [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/),
|
||||
and [PackageCloud](https://packagecloud.io/rabbitmq).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This is the [first release to require Erlang 23.2 or later and support upcoming Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/).
|
||||
|
||||
[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
|
||||
what package repositories and tools can be used to provision a recent version of Erlang `23.3`.
|
||||
|
||||
|
||||
## Upgrade and Compatibility Notes
|
||||
|
||||
### 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 series (e.g. `3.7.x`).
|
||||
|
||||
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)
|
||||
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Erlang Release Series Support
|
||||
|
||||
* This release [introduces Erlang 24 support and drops support for Erlang 22](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/). Erlang 24 offers non-trivial real world throughput improvements for many
|
||||
RabbitMQ installations and workloads. It is expected to ship in May 2021.
|
||||
|
||||
In the meantime, see [Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) to
|
||||
learn how to provision a recent version of Erlang `23.3`.
|
||||
|
||||
GitHub issue: [#2900](https://github.com/rabbitmq/rabbitmq-server/pull/2900)
|
||||
|
||||
|
||||
### AWS Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* This plugin was unintentionally excluded from the distribution in `3.8.15` and has now been
|
||||
added back.
|
||||
|
||||
GitHub issue: [#3023](https://github.com/rabbitmq/rabbitmq-server/issues/3023)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Messaging polling HTTP API endpoint leaked temporary connections it used in case of a polling timeout.
|
||||
Note that **this endpoint is not recommended to be used** outside of QA environments.
|
||||
Use a [long-lived consumer](https://www.rabbitmq.com/consumers.html) via one of the supported messaging protocols.
|
||||
|
||||
Contributed by @luos.
|
||||
|
||||
GitHub issue: [#3024](https://github.com/rabbitmq/rabbitmq-server/pull/3024)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
* Cuttlefish has been upgraded from [`2.6.0` to `3.0.0`](https://github.com/kyorai/cuttlefish/compare/v2.6.0..v3.0.0)
|
||||
* Lager has been upgraded from [`3.8.2` to `3.9.1`](https://github.com/erlang-lager/lager/compare/3.8.2..3.9.1)
|
||||
|
||||
|
||||
## Source Code Archives
|
||||
|
||||
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.16.tar.xz`
|
||||
instead of the source tarball produced by GitHub.
|
|
@ -0,0 +1,145 @@
|
|||
## RabbitMQ 3.8.17
|
||||
|
||||
RabbitMQ `3.8.17` is a maintenance release that includes a security patch.
|
||||
|
||||
### Security Patches
|
||||
|
||||
This release addresses an undisclosed vulnerability with CVSS 3.1 [score of 3.1](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:L/I:L/A:N/E:P/RL:O/RC:C) (low): [CVE-2021-32718](https://github.com/rabbitmq/rabbitmq-server/security/advisories/GHSA-c3hj-rg5h-2772).
|
||||
|
||||
Our team would like to thank Christian Rellmann from [usd AG](https://www.usd.de/) for [responsibly disclosing](https://www.rabbitmq.com/contact.html#security)
|
||||
the vulnerability and helping us verify a fix.
|
||||
|
||||
### Obtaining Packages
|
||||
|
||||
RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases), [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/),
|
||||
and [PackageCloud](https://packagecloud.io/rabbitmq).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [requires Erlang 23.2](https://www.rabbitmq.com/which-erlang.html) and [supports Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/).
|
||||
|
||||
[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
|
||||
what package repositories and tools can be used to provision modern Erlang versions.
|
||||
|
||||
|
||||
## Upgrade and Compatibility Notes
|
||||
|
||||
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.
|
||||
|
||||
If upgrading from a`3.7.x` release, 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 a `3.6.x` or older [release series](https://www.rabbitmq.com/versions.html), first upgrade
|
||||
to [`3.7.27`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.27) and then to this version.
|
||||
|
||||
|
||||
## 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)
|
||||
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Queue index efficiency improvements, mostly around peak memory consumption with large backlogs of small messages.
|
||||
|
||||
Note that some of the improvements come from more optimal defaults: those will only be
|
||||
applicable to newly created virtual hosts (or new clusters).
|
||||
|
||||
GitHub issues: [#2954](https://github.com/rabbitmq/rabbitmq-server/pull/2954), [#3041](https://github.com/rabbitmq/rabbitmq-server/pull/3041)
|
||||
|
||||
* [Consumer delivery acknowledgement timeout](https://www.rabbitmq.com/consumers.html#acknowledgement-timeout) default has been bumped to 30 minutes (previously 15 minutes). The value
|
||||
can be overridden.
|
||||
|
||||
GitHub issue: [#3033](https://github.com/rabbitmq/rabbitmq-server/pull/3033)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* A classic queue with [single active consumer](https://www.rabbitmq.com/consumers.html#single-active-consumer) option enabled could run into
|
||||
an exception after a restart or initial enablement of the management plugin.
|
||||
|
||||
GitHub issue: [#3072](https://github.com/rabbitmq/rabbitmq-server/issues/3072)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* A combination of HTTPS (TLS) settings and advanced HTTP server settings
|
||||
resulted in an exception.
|
||||
|
||||
GitHub issue: [#3039](https://github.com/rabbitmq/rabbitmq-server/pull/3039)
|
||||
|
||||
* External stats collector is now restarted again if it fails for any reason.
|
||||
|
||||
Contributed by @luos.
|
||||
|
||||
GitHub issue: [#3040](https://github.com/rabbitmq/rabbitmq-server/pull/3040)
|
||||
|
||||
|
||||
### Consistent History Exchange Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* When nodes are restarted, schema database tables used by this plugin are now reconciled
|
||||
with cluster peers the [same way RabbitMQ core does it](https://www.rabbitmq.com/clustering.html#restarting).
|
||||
|
||||
GitHub issue: [#3067](https://github.com/rabbitmq/rabbitmq-server/pull/3067)
|
||||
|
||||
|
||||
### Recent History Exchange Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* When nodes are restarted, schema database tables used by this plugin are now reconciled
|
||||
with cluster peers the [same way RabbitMQ core does it](https://www.rabbitmq.com/clustering.html#restarting).
|
||||
|
||||
GitHub issue: [#3067](https://github.com/rabbitmq/rabbitmq-server/pull/3067)
|
||||
|
||||
|
||||
### Delayed Message Exchange Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* When nodes are restarted, schema database tables used by this plugin are now reconciled
|
||||
with cluster peers the [same way RabbitMQ core does it](https://www.rabbitmq.com/clustering.html#restarting).
|
||||
|
||||
Contributed by @mwfriedm.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-delayed-message-exchange#163](https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/pull/163)
|
||||
|
||||
|
||||
### Last Value Cache Exchange Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* When nodes are restarted, schema database tables used by this plugin are now reconciled
|
||||
with cluster peers the [same way RabbitMQ core does it](https://www.rabbitmq.com/clustering.html#restarting).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-lvc-exchange#28](https://github.com/rabbitmq/rabbitmq-lvc-exchange/issues/28)
|
||||
|
||||
|
||||
|
||||
### Web MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* MQTT-over-WebSockets client connections were not accounted for by the file handle tracking mechanism (metric and resource alarm).
|
||||
|
||||
GitHub issue: [#3076](https://github.com/rabbitmq/rabbitmq-server/pull/3076)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
None in this release.
|
||||
|
||||
|
||||
## Source Code Archives
|
||||
|
||||
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.17.tar.xz`
|
||||
instead of the source tarball produced by GitHub.
|
|
@ -0,0 +1,179 @@
|
|||
## RabbitMQ 3.8.18
|
||||
|
||||
RabbitMQ `3.8.18` is a maintenance release that includes a security patch.
|
||||
|
||||
This release addresses an undisclosed vulnerability with CVSS 3.1 [score of 3.1](https://www.first.org/cvss/calculator/3.1#CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:L/I:L/A:N/E:P/RL:O/RC:C) (low): [CVE-2021-32719](https://github.com/rabbitmq/rabbitmq-server/security/advisories/GHSA-5452-hxj4-773x)
|
||||
|
||||
Our team would like to thank Fahimhusain Raydurg for [responsibly disclosing](https://www.rabbitmq.com/contact.html#security)
|
||||
the vulnerability and Patrik Ragnarsson from CloudAMQP for contributing a fix.
|
||||
|
||||
### Obtaining Packages
|
||||
|
||||
RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases), [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/),
|
||||
and [PackageCloud](https://packagecloud.io/rabbitmq).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [requires Erlang 23.2](https://www.rabbitmq.com/which-erlang.html) and [supports Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/).
|
||||
|
||||
[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
|
||||
what package repositories and tools can be used to provision modern Erlang versions.
|
||||
|
||||
|
||||
## Upgrade and Compatibility Notes
|
||||
|
||||
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.
|
||||
|
||||
If upgrading from a`3.7.x` release, 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 a `3.6.x` or older [release series](https://www.rabbitmq.com/versions.html), first upgrade
|
||||
to [`3.7.27`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.27) and then to this version.
|
||||
|
||||
|
||||
## 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)
|
||||
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [Peer discovery](https://www.rabbitmq.com/cluster-formation.html) no longer uses randomized delays to avoid the inherent race condition
|
||||
during [initial cluster formation](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition). Instead it relies on an internal
|
||||
distributed locking mechanism available in modern Erlang releases.
|
||||
|
||||
While randomized startup delay was reasonably effective at ensuring only one cluster was formed even during parallel node
|
||||
startup, it by definition assumes that with some low probability more than one node can still start as seed nodes,
|
||||
and be joined by different groups of cluster peers. The locking mechanism does not have this downside.
|
||||
Now that RabbitMQ requires Erlang 23.2, the internal locking library becomes an option for peer discovery.
|
||||
Note that etcd and Consul-based peer discovery still use those service's support for distributed locks.
|
||||
|
||||
`cluster_formation.randomized_startup_delay_range.min` and `cluster_formation.randomized_startup_delay_range.max` configuration keys
|
||||
will no longer have any effect.
|
||||
|
||||
GitHub issue: [#3075](https://github.com/rabbitmq/rabbitmq-server/pull/3075)
|
||||
|
||||
* Node startup banner now includes Erlang version, runtime operation mode (JIT vs. emulator),
|
||||
and underlying crypto library version (e.g. OpenSSL 1.1.1k) it was built against.
|
||||
|
||||
GitHub issue: [#2777](https://github.com/rabbitmq/rabbitmq-server/pull/2777)
|
||||
|
||||
* Build system targets now use `hostname(1)` in a way that is compatible with Solaris.
|
||||
|
||||
Contributed by Pavel @tropikhajma Heimlich.
|
||||
|
||||
GitHub issue: [#3117](https://github.com/rabbitmq/rabbitmq-server/pull/3117)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Queue deletion could run into an exception in some rare cases.
|
||||
|
||||
Contributed by @tomyouyou.
|
||||
|
||||
GitHub issue: [#3086](https://github.com/rabbitmq/rabbitmq-server/issues/3086)
|
||||
|
||||
|
||||
### Prometheus Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* In certain double stack (IPv4 and IPv6) environments, the plugin would start a single listener
|
||||
but register two internally. That extra non-existent listener would make `rabbitmq-diagnostics drain`
|
||||
fail as it disables all registered listeners.
|
||||
|
||||
GitHub issue: [#3021](https://github.com/rabbitmq/rabbitmq-server/pull/3021)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* In certain double stack (IPv4 and IPv6) environments, the plugin would start a single listener
|
||||
but register two internally. That extra non-existent listener would make `rabbitmq-diagnostics drain`
|
||||
fail as it disables all registered listeners.
|
||||
|
||||
GitHub issue: [#3021](https://github.com/rabbitmq/rabbitmq-server/pull/3021)
|
||||
|
||||
### Kubernetes Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Kubernetes [peer discovery](https://www.rabbitmq.com/cluster-formation.html) mechanism no longer uses randomized delays to avoid the inherent race condition
|
||||
during [initial cluster formation](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition). Instead it relies on an internal
|
||||
distributed locking mechanism available in modern Erlang releases.
|
||||
|
||||
While randomized startup delay was reasonably effective at ensuring only one cluster was formed even during parallel node
|
||||
startup, it by definitely assumes that with some low probability more than one node can still start as seed nodes,
|
||||
and be joined by different groups of cluster peers. The locking mechanism does not have this downside.
|
||||
Now that RabbitMQ requires Erlang 23.2, the internal locking library becomes an option for peer discovery.
|
||||
|
||||
`cluster_formation.randomized_startup_delay_range.min` and `cluster_formation.randomized_startup_delay_range.max` configuration keys
|
||||
will no longer have any effect.
|
||||
|
||||
GitHub issue: [#3075](https://github.com/rabbitmq/rabbitmq-server/pull/3075)
|
||||
|
||||
|
||||
### AWS Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* AWS [peer discovery](https://www.rabbitmq.com/cluster-formation.html) mechanism no longer uses randomized delays to avoid the inherent race condition
|
||||
during [initial cluster formation](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition). Instead it relies on an internal
|
||||
distributed locking mechanism available in modern Erlang releases.
|
||||
|
||||
While randomized startup delay was reasonably effective at ensuring only one cluster was formed even during parallel node
|
||||
startup, it by definitely assumes that with some low probability more than one node can still start as seed nodes,
|
||||
and be joined by different groups of cluster peers. The locking mechanism does not have this downside.
|
||||
Now that RabbitMQ requires Erlang 23.2, the internal locking library becomes an option for peer discovery.
|
||||
|
||||
`cluster_formation.randomized_startup_delay_range.min` and `cluster_formation.randomized_startup_delay_range.max` configuration keys
|
||||
will no longer have any effect.
|
||||
|
||||
GitHub issue: [#3075](https://github.com/rabbitmq/rabbitmq-server/pull/3075)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Queue federation will now declare queues on the upstream side only if it does not already
|
||||
exist. This makes it possible to federate pre-declared queues of different types.
|
||||
|
||||
Note that such setups should be considered edge cases. Queue federation was never meant
|
||||
to federated queues of different types under the same name in different clusters.
|
||||
Such setups could be useful in [Blue/Green deployment upgrade](https://www.rabbitmq.com/blue-green-upgrade.html) scenarios but
|
||||
otherwise should be avoided.
|
||||
|
||||
GitHub issue: [#3107](https://github.com/rabbitmq/rabbitmq-server/pull/3107)
|
||||
|
||||
|
||||
### AuthN/AuthZ Backend HTTP Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `auth_http.connection_timeout` and `auth_http.request_timeout` are two new configuration parameters that control HTTP client connection
|
||||
and overall request timeouts. They both default to 15 seconds. The value can be increased for services that can occasionally slow down
|
||||
significantly.
|
||||
|
||||
Contributed by Miłosz @SzumiecM Szumiec.
|
||||
|
||||
GitHub issue: [#3140](https://github.com/rabbitmq/rabbitmq-server/pull/3140)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
* `jose` was updated [from `1.11.1` to `2b1d66b5f4`](https://github.com/potatosalad/erlang-jose/commit/2b1d66b5f4fbe33cb198149a8cb23895a2c877ea)
|
||||
* `jsx` was updated [from `2.11.0` to `3.1.0`](https://github.com/talentdeficit/jsx/blob/main/CHANGES.md)
|
||||
* `observer_cli` was updated [from `1.6.1` to `1.6.2`](https://github.com/zhongwencool/observer_cli/compare/1.6.1..1.6.2)
|
||||
|
||||
|
||||
## Source Code Archives
|
||||
|
||||
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.18.tar.xz`
|
||||
instead of the source tarball produced by GitHub.
|
|
@ -0,0 +1,79 @@
|
|||
## RabbitMQ 3.8.19
|
||||
|
||||
RabbitMQ `3.8.19` is a maintenance release.
|
||||
|
||||
### Obtaining Packages
|
||||
|
||||
RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases), [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/),
|
||||
and [PackageCloud](https://packagecloud.io/rabbitmq).
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [requires Erlang 23.2](https://www.rabbitmq.com/which-erlang.html) and [supports Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/).
|
||||
|
||||
[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
|
||||
what package repositories and tools can be used to provision modern Erlang versions.
|
||||
|
||||
|
||||
## Upgrade and Compatibility Notes
|
||||
|
||||
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.
|
||||
|
||||
If upgrading from a`3.7.x` release, 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 a `3.6.x` or older [release series](https://www.rabbitmq.com/versions.html), first upgrade
|
||||
to [`3.7.27`](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.27) and then to this version.
|
||||
|
||||
|
||||
## 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)
|
||||
and [RabbitMQ community Slack](https://rabbitmq-slack.herokuapp.com/).
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Binding recovery on node startup is now more efficient. This means in clusters with a lot of
|
||||
queues and/or bindings, nodes start quicker.
|
||||
|
||||
GitHub issue: [#3137](https://github.com/rabbitmq/rabbitmq-server/pull/3137)
|
||||
|
||||
* Plugin directory paths are now deduplicated, so if a single directory is specified
|
||||
more than ones, the node won't complain about duplicate plugins.
|
||||
|
||||
GitHub issue: [#3155](https://github.com/rabbitmq/rabbitmq-server/issues/3155)
|
||||
|
||||
* Startup banner and log entries now use path separators more consistently on Windows.
|
||||
|
||||
Thanks to Linda @LindaLawton Lawton for pointing out the inconsistency.
|
||||
|
||||
GitHub issue: [#3149](https://github.com/rabbitmq/rabbitmq-server/issues/3149)
|
||||
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* When dynamic Shovels are started the plugin now acquires a distributed lock.
|
||||
This is generally not necessary but helps avoid duplicate Shovels being started
|
||||
via import of a definition file on every cluster node during cluster formation.
|
||||
|
||||
GitHub issue: [#3167](https://github.com/rabbitmq/rabbitmq-server/pull/3167)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
No dependency changes in this release.
|
||||
|
||||
|
||||
## Source Code Archives
|
||||
|
||||
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.8.19.tar.xz`
|
||||
instead of the source tarball produced by GitHub.
|
|
@ -0,0 +1,204 @@
|
|||
## RabbitMQ 3.8.2
|
||||
|
||||
RabbitMQ `3.8.2` is a maintenance release.
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
|
||||
`22.x` series is 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 `21.3.x` and `22.x`.
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### 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 21.x or 22.x, then to RabbitMQ 3.8.x.
|
||||
|
||||
#### 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.
|
||||
|
||||
### 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
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Raft implementation optimizations.
|
||||
|
||||
GitHub issues: [rabbitmq/ra#137](https://github.com/rabbitmq/ra/pull/137), [rabbitmq/ra#148](https://github.com/rabbitmq/ra/pull/148)
|
||||
|
||||
* Quorum queue optimization: enables local (not going through the leader) delivery from Raft followers
|
||||
when appropriate and safe.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-server#2146](https://github.com/rabbitmq/rabbitmq-server/pull/2146), [rabbitmq/ra#132](https://github.com/rabbitmq/ra/pull/132)
|
||||
|
||||
* If `x-queue-type` argument is not provided at queue declaration time, the type is assumed to be `classic`
|
||||
instead of missing.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#341](https://github.com/rabbitmq/rabbitmq-common/issues/341)
|
||||
|
||||
* Quorum queue consumer timeout now can be configured using new style configuration file:
|
||||
|
||||
``` ini
|
||||
# Hard timeout for quorum queue consumer acknowledgemnts of two minutes
|
||||
consumer_timeout = 120000
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2163](https://github.com/rabbitmq/rabbitmq-server/pull/2163)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* A quorum queue could produce an empty Raft log segment if node is killed at a particular moment in time,
|
||||
which would prevent the node from successfully recovering the log after restart.
|
||||
|
||||
GitHub issues: [rabbitmq/ra#138](https://github.com/rabbitmq/ra/pull/138)
|
||||
|
||||
* Quorum queue consumer count metric could be duplicated when reported via HTTP API or to a Prometheus scraper.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2176](https://github.com/rabbitmq/rabbitmq-server/pull/2176)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to [export and import definitions]() without the use of plugins with
|
||||
`rabbitmqctl export_definitions` and `rabbitmqctl import_definitions`:
|
||||
|
||||
``` sh
|
||||
# export as a JSON file
|
||||
rabbitmqctl export_definitions /path/to/target.file.json
|
||||
|
||||
# export as JSON to standard output and pipe to jq
|
||||
rabbitmqctl export_definitions "-" | jq
|
||||
|
||||
# export as a compressed Erlang term file
|
||||
rabbitmqctl export_definitions /path/to/target.file --format=erlang
|
||||
|
||||
# learn more
|
||||
rabbitmqctl help export_definitions
|
||||
```
|
||||
|
||||
``` sh
|
||||
# import from a JSON file
|
||||
rabbitmqctl import_definitions /path/to/target.file.json
|
||||
|
||||
# import JSON from standard input
|
||||
cat /path/to/definitions.json | rabbitmqctl import_definitions "-"
|
||||
|
||||
# import from a compressed Erlang term file
|
||||
rabbitmqctl import_definitions /path/to/target.file --format=erlang
|
||||
|
||||
# learn more
|
||||
rabbitmqctl help import_definitions
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#749](https://github.com/rabbitmq/rabbitmq-management/issues/749)
|
||||
|
||||
* Entities with `amq.*` prefixes are now skipped during import instead of producing an error.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2170](https://github.com/rabbitmq/rabbitmq-server/issues/2170)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmqctl await_startup` failed with an exception when RabbitMQ application was stopped but the
|
||||
runtime (Erlang VM) was running.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2158](https://github.com/rabbitmq/rabbitmq-server/issues/2158)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Definition import via HTTP API could fail in if performed via HTTP API (but not management UI)
|
||||
and contained operator policies.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#751](https://github.com/rabbitmq/rabbitmq-management/issues/751)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Metric aggregation optimizations.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management-agent#84](https://github.com/rabbitmq/rabbitmq-management-agent/pull/84)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Throughput improvements ranging from 14 to 60 percent depending on workload.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
|
||||
|
||||
* Throughput improvements and reduced CPU usage but slightly higher per connection RAM footprint.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-mqtt#216](https://github.com/rabbitmq/rabbitmq-mqtt/pull/216), [rabbitmq/rabbitmq-mqtt#217](https://github.com/rabbitmq/rabbitmq-mqtt/pull/217)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Client ID tracker could produce an empty Raft log segment if node is killed at a particular moment in time,
|
||||
which would prevent the node from successfully recovering the log after restart.
|
||||
|
||||
GitHub issues: [rabbitmq/discussions#4](https://github.com/rabbitmq/discussions/issues/4), [rabbitmq/ra#138](https://github.com/rabbitmq/ra/pull/138)
|
||||
|
||||
* Last Will messages that use QoS 2 will now be downgraded to QoS 1 just like with "regular" published messages.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-mqtt#214](https://github.com/rabbitmq/rabbitmq-mqtt/issues/214)
|
||||
|
||||
|
||||
### AMQP 1.0 Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Throughput improvements.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
|
||||
|
||||
|
||||
### STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Throughput improvements.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2168](https://github.com/rabbitmq/rabbitmq-server/issues/2168)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Clients now can authenticate using an x.509 (TLS) certificate.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#116](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/116)
|
||||
|
||||
|
||||
### Prometheus Plugin
|
||||
|
||||
* A small number of queue metrics were not read from the metric store correctly.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-prometheus#19](https://github.com/rabbitmq/rabbitmq-prometheus/issues/19)
|
||||
|
||||
|
||||
## 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.2.tar.xz`.
|
|
@ -0,0 +1,305 @@
|
|||
## RabbitMQ 3.8.3
|
||||
|
||||
RabbitMQ `3.8.3` is a maintenance release.
|
||||
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [**requires Erlang/OTP 21.3**](https://www.rabbitmq.com/which-erlang.html) or later.
|
||||
`22.x` series is 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 `21.3.x` and `22.x`.
|
||||
|
||||
|
||||
### Compatibility Notes
|
||||
|
||||
#### 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 21.x or 22.x, then to RabbitMQ 3.8.x.
|
||||
|
||||
#### 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.
|
||||
|
||||
### 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
|
||||
|
||||
* Reduced scheduled GC activity in connection socket writer to one run per 1 GiB of data transferred, with an option to change the value or disable scheduled run entirely.
|
||||
More frequent binary heap GC runs seem unneccesary on Erlang 22.
|
||||
|
||||
Contributed by Aleksander Nycz.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#343](https://github.com/rabbitmq/rabbitmq-common/pull/343)
|
||||
|
||||
* Eliminated an inefficiency in recovery of quorum queues with a backlog of messages.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2260](https://github.com/rabbitmq/rabbitmq-server/pull/2260)
|
||||
|
||||
* In a case where a node hosting a quorum queue replica went offline and was removed from the cluster,
|
||||
and later came back, quorum queues could enter a loop of Raft leader elections.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2255](https://github.com/rabbitmq/rabbitmq-server/pull/2255)
|
||||
|
||||
* Quorum queues with a dead lettering could fail to recover.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2256](https://github.com/rabbitmq/rabbitmq-server/pull/2256)
|
||||
|
||||
* The node now can recover even if virtual host recovery terms file was corrupted.
|
||||
|
||||
Contributed by @tomyouyou.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2195](https://github.com/rabbitmq/rabbitmq-server/pull/2195)
|
||||
|
||||
* Autoheal could fail to finish if one of its state transitions initiated by a remote node timed out.
|
||||
|
||||
Contributed by @tomyouyou.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2209](https://github.com/rabbitmq/rabbitmq-server/pull/2209)
|
||||
|
||||
* Syslog client is now started even when Syslog logging is configured only for some log sinks.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2044](https://github.com/rabbitmq/rabbitmq-server/issues/2044)
|
||||
|
||||
* Policies that quorum queues ignored were still listed as applied to them.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2210](https://github.com/rabbitmq/rabbitmq-server/pull/2210)
|
||||
|
||||
* If a quorum queue leader rebalancing operation timed out, CLI tools failed with an exception instead of a sensible internal API response.
|
||||
|
||||
Contributed by Gabriele Santomaggio.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2214](https://github.com/rabbitmq/rabbitmq-server/issues/2214)
|
||||
|
||||
* Handle timeout error on the rebalance function.
|
||||
|
||||
Contributed by Gabriele Santomaggio.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2218](https://github.com/rabbitmq/rabbitmq-server/pull/2218)
|
||||
|
||||
* Handle and raise protocol error for absent queues assumed to be alive.
|
||||
|
||||
Contributed by Ayanda Dube.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2233](https://github.com/rabbitmq/rabbitmq-server/pull/2233)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Some Proxy protocol errors are now logged at debug level.
|
||||
This reduces log noise in environments where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending any data.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2204](https://github.com/rabbitmq/rabbitmq-server/pull/2204)
|
||||
|
||||
* Quorum queue deletion operation no longer supports the "if unused" and "if empty" options.
|
||||
They are typically used for transient queues don't make much sense for quorum ones.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2211](https://github.com/rabbitmq/rabbitmq-server/pull/2211)
|
||||
|
||||
* Do not treat applications that do not depend on rabbit as plugins.
|
||||
This is especially important for applications that should not be stopped before rabbit is stopped.
|
||||
|
||||
GitHub Issue: [rabbitmq/rabbitmq-server#2212](https://github.com/rabbitmq/rabbitmq-server/pull/2212)
|
||||
|
||||
* RabbitMQ nodes will now gracefully shutdown when receiving a `SIGTERM` signal.
|
||||
Previously the runtime would invoke a default handler that terminates the VM giving RabbitMQ no chance to execute its shutdown steps.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2222](https://github.com/rabbitmq/rabbitmq-server/issues/2222)
|
||||
|
||||
* Every cluster now features a persistent internal cluster ID that can be used by core features or plugins.
|
||||
Unlike the human-readable cluster name, the value cannot be overriden by the user.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2226](https://github.com/rabbitmq/rabbitmq-server/pull/2226)
|
||||
|
||||
* Speedup execution of boot steps by a factor of 2N, where N is the number of attributes per step.
|
||||
|
||||
Contributed by Ayanda Dube.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2246](https://github.com/rabbitmq/rabbitmq-server/pull/2246)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmq-diagnostics status` failed to display the results when executed against a node that had high VM watermark set as an absolute value (using `vm_memory_high_watermark.absolute`).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#395](https://github.com/rabbitmq/rabbitmq-cli/issues/395)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* New health checks that can be used to determine if it's a good moment to shut down a node for an upgrade.
|
||||
|
||||
``` sh
|
||||
# Exits with a non-zero code if target node hosts leader replica of at least one queue
|
||||
# that has out-of-sync mirror.
|
||||
rabbitmq-diagnostics check_if_node_is_mirror_sync_critical
|
||||
|
||||
# Exits with a non-zero code if one or more quorum queues will lose online quorum
|
||||
# should target node be shut down
|
||||
rabbitmq-diagnostics check_if_node_is_quorum_critical
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#389](https://github.com/rabbitmq/rabbitmq-cli/issues/389)
|
||||
|
||||
* Some proxy protocol errors are now logged at debug level.
|
||||
* This reduces log noise in environments where TCP load balancers and proxies perform health checks by opening a TCP connection but never sending any data.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2204](https://github.com/rabbitmq/rabbitmq-server/pull/2204)
|
||||
|
||||
|
||||
### Management and Management Agent Plugins
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Consumer section on individual page was unintentionally hidden.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#758](https://github.com/rabbitmq/rabbitmq-management/issues/758)
|
||||
|
||||
* Fix queue-type select by adding unsafe-inline CSP policy.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#769](https://github.com/rabbitmq/rabbitmq-management/pull/769)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* An undocumented "automagic login" feature on the login form was removed.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#748](https://github.com/rabbitmq/rabbitmq-management/pull/748)
|
||||
|
||||
* A new `POST /login` endpoint can be used by custom management UI login forms to authenticate the user and set the cookie.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#764](https://github.com/rabbitmq/rabbitmq-management/issues/764)
|
||||
|
||||
* A new `POST /rebalance/queues` endpoint that is the HTTP API equivalent of `rabbitmq-queues rebalance`
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#782](https://github.com/rabbitmq/rabbitmq-management/issues/782)
|
||||
|
||||
* Warning about a missing `handle.exe` in `PATH` on Windows is now only logged every 10 minutes.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management-agent#90](https://github.com/rabbitmq/rabbitmq-management-agent/issues/90)
|
||||
|
||||
* `rabbitmqadmin declare queue` now supports a new `queue_type` parameter to simplify declaration of quorum queues.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#761](https://github.com/rabbitmq/rabbitmq-management/issues/761)
|
||||
|
||||
* HTTP API request log entries now includes acting user.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#760](https://github.com/rabbitmq/rabbitmq-management/issues/760)
|
||||
|
||||
* [Content Security Policy headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) are now also set for static assets such as JavaScript files.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#767](https://github.com/rabbitmq/rabbitmq-management/issues/767)
|
||||
|
||||
|
||||
### Prometheus Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Add option to aggregate metrics for channels, queues & connections. Metrics are now aggregated by default (safe by default).
|
||||
This new behaviour can be disabled via `prometheus.return_per_object_metrics = true` config.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-prometheus#28](https://github.com/rabbitmq/rabbitmq-prometheus/issues/28)
|
||||
|
||||
|
||||
### Kubernetes Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* The plugin will now notify [Kubernetes API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.16/#event-v1-core) of node startup and peer stop/unavailability events.
|
||||
|
||||
Contributed by Gabriele Santomaggio.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-k8s#61](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/pull/61)
|
||||
|
||||
|
||||
### Etcd Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Only run healthcheck when backend is configured.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#21](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/pull/21)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Use vhost to delete federated exchange.
|
||||
|
||||
[Reported by Brett Janer](https://groups.google.com/forum/#!topic/rabbitmq-users/nfulekZc_OQ/discussion).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#99](https://github.com/rabbitmq/rabbitmq-federation/pull/99)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* "Command" operations such as binding propagation now use a separate channel for all links, preventing latency spikes for asynchronous operations (such as message publishing) (a head-of-line blocking problem).
|
||||
|
||||
Contributed by Grigory Starinkin.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#97](https://github.com/rabbitmq/rabbitmq-federation/pull/97)
|
||||
|
||||
|
||||
### Auth Backend OAuth 2 Plugin
|
||||
|
||||
* Additional scopes can be fetched from a predefined JWT token field.
|
||||
Those scopes will be combined with the standard scopes field.
|
||||
|
||||
Contributed by @papugamichal.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-oauth2#41](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2/pull/41)
|
||||
|
||||
|
||||
### Trust Store Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* HTTPS certificate provider will not longer terminate if upstream service response contains invalid JSON.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-trust-store#73](https://github.com/rabbitmq/rabbitmq-trust-store/issues/73)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Avoid blocking when registering or unregistering a client ID.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-mqtt#226](https://github.com/rabbitmq/rabbitmq-mqtt/pull/226)
|
||||
|
||||
|
||||
### AMQP 1.0 Client Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Handle heartbeat in `close_sent/2`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#44](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/pull/44)
|
||||
|
||||
|
||||
|
||||
## 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.3.tar.xz`.
|
||||
|
||||
|
||||
|
||||
## Dependency upgrades
|
||||
|
||||
* observer-cli was upgraded [from v1.5.2 to v1.5.3](https://github.com/zhongwencool/observer_cli/compare/1.5.2...1.5.3)
|
||||
* prometheus.erl was upgraded [from v4.4.0 to v4.5.0](https://github.com/deadtrickster/prometheus.erl/compare/v4.4.0...v4.5.0)
|
||||
* ra was upgraded [from v1.0.5 to v1.0.8](https://github.com/rabbitmq/ra/compare/v1.0.5...v1.0.8)
|
|
@ -0,0 +1,413 @@
|
|||
## RabbitMQ 3.8.4
|
||||
|
||||
RabbitMQ `3.8.4` is a maintenance release. It focuses on bug fixes and usability
|
||||
improvements. etcd [peer discovery](https://www.rabbitmq.com/cluster-formation.html) plugin includes potentially breaking changes which are covered in detail below.
|
||||
|
||||
This is the first release to be [fully 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.
|
||||
|
||||
This is the first release to officially support Erlang 23. Compared to `3.8.3`, which
|
||||
generally works as expected on Erlang 23, [Prometheus monitoring](https://www.rabbitmq.com/prometheus.html) plugin had to
|
||||
be adapted to support a memory allocator metric format that has changed compared to
|
||||
earlier Erlang releases.
|
||||
|
||||
There is one **remaining known Erlang 23 incompatibility**: `rabbitmq-diagnostics observer` **will fail** on Erlang 23.
|
||||
This will be addressed in a future release.
|
||||
The root cause is the same memory allocator metric change.
|
||||
|
||||
[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
|
||||
|
||||
### Raft Segment File Format Change
|
||||
|
||||
In earlier `3.8.x` versions, Raft log segment files were unintentionally limited to 4 GiB,
|
||||
which can be problematic for environments that use quorum queues and medimum to large message
|
||||
payloads.
|
||||
|
||||
This releases removes the limitation by changing the segment file on-disk format.
|
||||
While **no action is required** for upgrading to `3.8.4`, operators should keep in mind
|
||||
that segment files produced by `3.8.4` nodes won't be readable by earlier versions.
|
||||
In other words, this release **does not support downgrading** to earlier `3.8.x` versions.
|
||||
|
||||
### Custom Prefixless Node Name
|
||||
|
||||
Environments that override node name using `NODENAME` in `rabbitmq-env.conf` may have to
|
||||
also define `RABBITMQ_NODENAME` in the same file for CLI tools to pick the value up:
|
||||
|
||||
``` ini
|
||||
# how node name is typically overridden in rabbitmq-env.conf[.bat] files
|
||||
NODENAME=rabbit@custom.hostname
|
||||
# for CLI tools in 3.8.4, otherwise not necessary
|
||||
RABBITMQ_NODENAME=rabbit@custom.hostname
|
||||
```
|
||||
|
||||
This behaviour change compared to earlier `3.8.x` version was not intentional and was
|
||||
[corrected for `3.8.5`](https://github.com/rabbitmq/rabbitmq-cli/pull/422).
|
||||
|
||||
Alternatively, it is possible to provide target node name using a command line flag:
|
||||
|
||||
``` shell
|
||||
rabbitmq-diagnostics -n rabbit@custom.hostname status
|
||||
```
|
||||
|
||||
### 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
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* A node recovering a large disk backlog did not throttle its recovery activity, potentially
|
||||
using large amounts of memory at peak during recovery.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2254](https://github.com/rabbitmq/rabbitmq-server/issues/2254)
|
||||
|
||||
* Raft log segment files were unintentionally limited to 4 GiB in size, which could result
|
||||
in failing log flush operations in environments where medium and large messages were published to
|
||||
quorum queues.
|
||||
|
||||
This problem is addressed by a change to the on disk format of Raft log segment files.
|
||||
The change is irreversible, meaning that **there is no downgrade path** from `3.8.4` to earlier releases.
|
||||
|
||||
GitHub issue: [rabbitmq/ra#176](https://github.com/rabbitmq/ra/pull/176)
|
||||
|
||||
* A reached delivery limit on a quorum queue could result in an exception for polling (`basic.get`) consumers.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2330](https://github.com/rabbitmq/rabbitmq-server/pull/2330)
|
||||
|
||||
* A publish to a quorum queue that happened to not have an elected leader failed with an exception.
|
||||
Such operations are generally expected to be retried by channels.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2295](https://github.com/rabbitmq/rabbitmq-server/pull/2295)
|
||||
|
||||
* Separate authN and authZ backends did not behave as expected when `rabbitmq_auth_backend_cache` was enabled.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2322](https://github.com/rabbitmq/rabbitmq-server/issues/2322)
|
||||
|
||||
* Handle a condition where epmd connection was closed during node registration.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2332](https://github.com/rabbitmq/rabbitmq-server/pull/2332)
|
||||
|
||||
* Registering a quorum queue consumer did not result in a `consumer.created` event like it would
|
||||
for classic queues.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2341](https://github.com/rabbitmq/rabbitmq-server/issues/2341)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Reduced peak memory use of quorum queues that go idle (not under constant load).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2272](https://github.com/rabbitmq/rabbitmq-server/pull/2272)
|
||||
|
||||
* Change default configuration values for quorum queues to improve publisher back pressure when under heavy load.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2334](https://github.com/rabbitmq/rabbitmq-server/pull/2334)
|
||||
|
||||
* Definition import is now partially concurrent, improving CPU utilisation and reducing the amount of time
|
||||
taken to import a large definition file.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2224](https://github.com/rabbitmq/rabbitmq-server/issues/2224)
|
||||
|
||||
* Improved configuration merging for cases when multiple files are used, e.g. `rabbitmq.conf` plus
|
||||
`advanced.config` or even multiple `.conf` files (the latter is an experimental feature).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2277](https://github.com/rabbitmq/rabbitmq-server/pull/2277)
|
||||
|
||||
* More peer discovery errors are retried.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#1627](https://github.com/rabbitmq/rabbitmq-server/issues/1627)
|
||||
|
||||
* Allow product name, version and MOTD to be overwritten via environment variables.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2247](https://github.com/rabbitmq/rabbitmq-server/pull/2247)
|
||||
|
||||
* Improve display of product name and version.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2326](https://github.com/rabbitmq/rabbitmq-server/pull/2326)
|
||||
|
||||
* Make RabbitMQ a regular Erlang/OTP application.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2180](https://github.com/rabbitmq/rabbitmq-server/issues/2180)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* New `rabbitmq-upgrade` commands: `await_online_quorum_plus_one` and `await_online_synchronized_mirror`.
|
||||
The commands will wait for a safe quorum of nodes (quorum queues) or a synchronised leader replica (classic mirrored queues)
|
||||
to be or come online within a period of time.
|
||||
|
||||
``` sh
|
||||
# Exits with a non-zero exit code if there is not a quorum + 1 of nodes online for all
|
||||
# quorum queues within 120 seconds (default timeout)
|
||||
rabbitmq-upgrade await_online_quorum_plus_one
|
||||
# Will wait for a quorum + 1 of nodes to be online for all quorum queues for 0 seconds...
|
||||
|
||||
# The timeout can be adjusted via the -t flag:
|
||||
rabbitmq-upgrade await_online_quorum_plus_one -t 60
|
||||
# Will wait for a quorum + 1 of nodes to be online for all quorum queues for 60 seconds...
|
||||
|
||||
# There is an equivalent command for classic mirrored queues
|
||||
rabbitmq-upgrade await_online_synchronized_mirror
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#409](https://github.com/rabbitmq/rabbitmq-cli/issues/409)
|
||||
|
||||
* New `rabbitmq-diagnostics` command: `os_env`
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#412](https://github.com/rabbitmq/rabbitmq-cli/pull/412)
|
||||
|
||||
|
||||
### Prometheus Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Compatibility with Erlang 23 memory allocator metric format.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-prometheus#42](https://github.com/rabbitmq/rabbitmq-prometheus/issues/42)
|
||||
|
||||
* Node color labeling in Grafana dashboards now works out of the box with one more common naming scheme.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-prometheus#33](https://github.com/rabbitmq/rabbitmq-prometheus/issues/33)
|
||||
|
||||
Contributed by @Aakcht.
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Credential obfuscation now uses the same [shared secret](https://www.rabbitmq.com/clustering.html#erlang-cookie)
|
||||
on all nodes to make sure that a link running on node A can be restarted by a command against node B.
|
||||
Previously each node used its own generated secret for obfuscation, which means certain operations
|
||||
on links originated on other nodes were not possible.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2351](https://github.com/rabbitmq/rabbitmq-server/pull/2351)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Internal resources cleanup is now more selective on abnormal link termination. A new upstream parameter, `resource-cleanup-mode`,
|
||||
can be set to `"never"` used to prevent internal queues from being deleted by exchange federation links on termination.
|
||||
Use this when data safety is more important than protection from resource leaks. It then will be up to the operator to make
|
||||
sure such resources are periodically deleted or use a suitable [TTL](https://www.rabbitmq.com/ttl.html).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#105](https://github.com/rabbitmq/rabbitmq-federation/issues/105)
|
||||
|
||||
* SNI is now enabled by default for TLS-enabled connections.
|
||||
|
||||
Contributed by Carl Hörberg (CloudAMQP).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-erlang-client#132](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/132)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Credential obfuscation now uses the same [shared secret](https://www.rabbitmq.com/clustering.html#erlang-cookie)
|
||||
on all nodes to make sure that a shovel running on node A can be restarted by a command against node B.
|
||||
Previously each node used its own generated secret for obfuscation, which means certain operations
|
||||
on shovels originated on other nodes were not possible.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2351](https://github.com/rabbitmq/rabbitmq-server/pull/2351)
|
||||
|
||||
* Shovels are now correctly removed even when deletion commands are executed against a different node
|
||||
(not the one on which the target Shovel has been created).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel#68](https://github.com/rabbitmq/rabbitmq-shovel/issues/68)
|
||||
|
||||
* More negative AMQP 1.0 endpoint connection responses are handled.
|
||||
|
||||
Contributed by Renaud @bougueil Mariana.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#48](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/pull/48)
|
||||
|
||||
* Messages forwarded from an AMQP 0-9-1 source to an AMQP 1.0 destination now propagates more
|
||||
message properties.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel#70](https://github.com/rabbitmq/rabbitmq-shovel/issues/70)
|
||||
|
||||
* Pre-3.7 `delete-after` Shovel property is now considered as well as the new `src-delete-after` property.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-shovel#72](https://github.com/rabbitmq/rabbitmq-shovel/issues/72)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Revisited [Shovel documentation guides](https://www.rabbitmq.com/shovel.html).
|
||||
|
||||
* SNI is now enabled by default for TLS-enabled connections.
|
||||
|
||||
Contributed by Carl Hörberg (CloudAMQP).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-erlang-client#132](https://github.com/rabbitmq/rabbitmq-erlang-client/pull/132)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* More frequent garbage collection by stats DB cache processes in environments where HTTP API queries produced
|
||||
large data sets.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#788](https://github.com/rabbitmq/rabbitmq-management/pull/788)
|
||||
|
||||
* `rabbitmqadmin` CLI switches now take precedence over config file values. This is more typical
|
||||
for command line tools.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#804](https://github.com/rabbitmq/rabbitmq-management/issues/804)
|
||||
|
||||
* `rabbitmqadmin` binding deletion now defaults to the same property key value as binding creation.
|
||||
|
||||
Contributed by Ivan Kaloyanov.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#779](https://github.com/rabbitmq/rabbitmq-management/pull/779)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* TLS settings of this plugin now supersede those of RabbitMQ core listeners. In more practical terms,
|
||||
it is now possible to use a separate set of certificate/private key pairs for management UI and
|
||||
the HTTP API.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#800](https://github.com/rabbitmq/rabbitmq-management/issues/800)
|
||||
|
||||
* Queue page failed to render with a `TypeError` when stats were disabled.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#787](https://github.com/rabbitmq/rabbitmq-management/issues/787)
|
||||
|
||||
* `rabbitmqadmin import` mangled non-ASCII characters.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#785](https://github.com/rabbitmq/rabbitmq-management/issues/785)
|
||||
|
||||
* `rabbitmqadmin`'s pretty JSON format was not compatible with Python 3.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#797](https://github.com/rabbitmq/rabbitmq-management/pull/797)
|
||||
|
||||
|
||||
### etcd Peer Discovery Plugin
|
||||
|
||||
This release effectively replaces the etcd-based peer discovery plugin with a new one which
|
||||
[uses etcd v3 API](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/22) and a different API client.
|
||||
etcd v2 API has been effectively deprecated and requires extra effort to enable with the latest etcd release,
|
||||
so this was **treated as a medium severity bug** and ships in a patch release.
|
||||
|
||||
There are several new features that come with this new client. Existing already formed clusters won't have to
|
||||
change anything in the short term as [peer discovery only runs during cluster formation](https://www.rabbitmq.com/cluster-formation.html#peer-discovery-how-does-it-work).
|
||||
All configuration keys of the original plugin are still accepted by the plugin, and most will have
|
||||
the expected or semantically similar effect.
|
||||
|
||||
When provisioning new clusters, etcd 3.4+ will now be required.
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* The plugin now uses an etcd v3 API client and v3 gRPC-based API. This includes using a forward-compatible API version,
|
||||
natively-provided endpoint for locking instead of reinventing one, and other improvements listed below.
|
||||
It also means that **etcd 3.4+** is now required by the plugin.
|
||||
|
||||
Unless specified otherwise, all other configuration settings of the original plugin are still supported.
|
||||
|
||||
`rabbitmq-autocluster`-era environment variable-based configuration of the plugin has been removed. Use the config
|
||||
file-based one instead.
|
||||
|
||||
`cluster_formation.etcd.scheme` configuration key won't fail validation but will no longer have any effect.
|
||||
`cluster_formation.etcd.key_prefix` will be used but only after the hardcoded `/rabbitmq/discovery`
|
||||
and `/rabbitmq/locks` prefixes. Having a predictable key prefix is more important in this version of the etcd API.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#22](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/22)
|
||||
|
||||
* Multiple etcd endpoings now can be specified as connection candidates. Previously used endpoint configuration keys,
|
||||
`cluster_formation.etcd.host` and `cluster_formation.etcd.port`, are still supported and added to the final list of
|
||||
endpoints.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#7](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/7)
|
||||
|
||||
* Support for TLS-enabled connections to etcd.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#24](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/24)
|
||||
|
||||
* Support for [etcd authentication](https://etcd.io/docs/v3.4.0/op-guide/authentication/).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#6](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/6)
|
||||
|
||||
|
||||
### Consul Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* In case `CONSUL_PORT` is set to a blank string, the plugin will fall back to the default port value
|
||||
instead of failing with an exception. Note that the use of environment variables over config file
|
||||
keys is **highly discouraged** and will be removed in a future version.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#41](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/41)
|
||||
|
||||
|
||||
### LDAP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Setting `` to `0` will force a new connection to be opened for every operation. This helps work around
|
||||
obscure issues likely caused by per-connection caching in some LDAP implementations.
|
||||
Users of this setting are expected to also use the [rabbitmq-auth-backend-cache](https://github.com/rabbitmq/rabbitmq-auth-backend-cache) plugin.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-ldap#120](https://github.com/rabbitmq/rabbitmq-auth-backend-ldap/pull/120)
|
||||
|
||||
|
||||
### OAuth 2.0 Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* When token key ID is missing in configuration, a warning will be logged to
|
||||
make troubleshooting easier.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-oauth2#44](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2/issues/44)
|
||||
|
||||
|
||||
### Trust Store Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Some debug messages were unintentionally logged as errors.
|
||||
|
||||
Contributed by @mgrafl.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-trust-store#75](https://github.com/rabbitmq/rabbitmq-trust-store/issues/75)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
* New dependency: [eetcd](https://github.com/zhongwencool/eetcd/)
|
||||
* ra was upgraded [from v1.0.8 to v1.1.2](https://github.com/rabbitmq/ra/compare/v1.0.8...v1.1.2)
|
||||
* `credentials_obfuscation` was upgraded [from v1.0.0 to v2.0.0](https://github.com/rabbitmq/credentials-obfuscation/compare/v1.0.0...v2.0.0)
|
||||
* Prometheus client was upgraded [from 4.5.0 to 4.6.0](https://github.com/deadtrickster/prometheus.erl/compare/v4.5.0...v4.6.0)
|
||||
|
||||
|
||||
## 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.4.tar.xz`.
|
|
@ -0,0 +1,315 @@
|
|||
## RabbitMQ 3.8.5
|
||||
|
||||
RabbitMQ `3.8.5` is a maintenance release.
|
||||
It focuses on bug fixes and usability improvements.
|
||||
|
||||
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 deprecates `rabbitmq-diagnostics node_health_check` (née `rabbitmqctl node_health_check`).
|
||||
See the section on CLI tools changes below to learn more.
|
||||
|
||||
|
||||
### 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
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* In `3.8.4`, [`RABBITMQ_CONF_ENV_FILE`](https://www.rabbitmq.com/configure.html#customise-environment) value was ignored on Windows.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-common#392](https://github.com/rabbitmq/rabbitmq-common/issues/392)
|
||||
|
||||
* Message store shutdown now uses a much higher timeout (up to 10 minutes instead of 30 seconds).
|
||||
|
||||
In environments with large message backlogs this means that the chances of queue indices rebuilding
|
||||
after node restart is now substantially lower.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2324](https://github.com/rabbitmq/rabbitmq-server/issues/2324)
|
||||
|
||||
* On Windows, `RABBITMQ_HOME` locations with brackets are supported again.
|
||||
|
||||
Contributed by @twjs76.
|
||||
|
||||
GitHub issues: [rabbitmq/rabbitmq-server#2371](https://github.com/rabbitmq/rabbitmq-server/pull/2371),
|
||||
[rabbitmq/rabbitmq-server#1756](https://github.com/rabbitmq/rabbitmq-server/issues/1756)
|
||||
|
||||
* `RABBITMQ_LOG_BASE` was not respected in some installations.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#131](https://github.com/rabbitmq/rabbitmq-server-release/issues/131)
|
||||
|
||||
* Setting `RABBITMQ_QUORUM_DIR` to a location outside of node's data directory for a new node resulted
|
||||
in feature flags not being implicitly enabled on boot.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2317](https://github.com/rabbitmq/rabbitmq-server/issues/2317)
|
||||
|
||||
* `net_ticktime` and other Erlang distribution settings set in `rabbitmq.conf` were ignored because
|
||||
distribution was started too early on node boot.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2377](https://github.com/rabbitmq/rabbitmq-server/issues/2377)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Raft data directory now can be configured using `ra.data_dir` configuration key:
|
||||
|
||||
``` ini
|
||||
ra.data_dir = /path/to/raft/data/directory
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2354](https://github.com/rabbitmq/rabbitmq-server/issues/2354)
|
||||
|
||||
* User and permission management operations now produce clear log entries when they succeed,
|
||||
not just when they fail. This helps auditing in environments that have stricter security and audit
|
||||
requirements.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2363](https://github.com/rabbitmq/rabbitmq-server/issues/2363)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* CLI tools now take `NODENAME` into account as well as `RABBITMQ_NODENAME`, just like the server does.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#421](https://github.com/rabbitmq/rabbitmq-cli/issues/421)
|
||||
|
||||
* `rabbitmq-diagnostics observer` is now compatible with Erlang 23.
|
||||
|
||||
GitHub issue: [zhongwencool/observer_cli#68](https://github.com/zhongwencool/observer_cli/issues/68)
|
||||
|
||||
#### Deprecations
|
||||
|
||||
* `rabbitmq-diagnostics node_health_check` (née `rabbitmqctl node_health_check`) is **deprecated** and will be
|
||||
removed in a future version.
|
||||
|
||||
`node_health_check` (as well as its HTTP API counterpart) is an opinionated, intrusive, aspirational attempt
|
||||
at producing One True Health Check™ for RabbitMQ that was envisioned and added to CLI tools around 2015-2016.
|
||||
|
||||
It has proven to be too prone to false positives, can consume a prohibitive
|
||||
amount of CPU and runtime scheduler resources, and tends to be too opinionated
|
||||
for many technical operations teams.
|
||||
|
||||
A much more modular, pick-and-choose approach [has been adopted since](https://www.rabbitmq.com/monitoring.html#health-checks)
|
||||
but this command has never been deprecated. Until now.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#426](https://github.com/rabbitmq/rabbitmq-cli/issues/426)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* [Definition import](https://www.rabbitmq.com/definitions.html) was not performed when `management.load_definitions = /path/to/definitions/file.json`
|
||||
was used, although it was for its newer counterpart, `load_definitions = /path/to/definitions/file.json`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#818](https://github.com/rabbitmq/rabbitmq-management/issues/818)
|
||||
|
||||
* jQuery was upgraded to `3.5.1`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#815](https://github.com/rabbitmq/rabbitmq-management/issues/815)
|
||||
|
||||
|
||||
### Consistent Hashing Exchange
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Due to [later plugin activation](https://github.com/rabbitmq/rabbitmq-server/issues/2381) in `3.8.4`, durable
|
||||
consistent hashing exchanges were skipped during topology recovery. In practice that meant these exchanges
|
||||
did not route messages published to it.
|
||||
|
||||
Now the plugin reconstructs consistent hashing ring manually for every durable exchange of this type and
|
||||
routing functions as expected.
|
||||
|
||||
Kudos to Rob Gerritsen and Raimond @rai69 Kuipers for helping with discovery of this issue.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-consistent-hash-exchange#45](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/issues/45)
|
||||
|
||||
### Enhancements
|
||||
|
||||
* `rabbitmq-diagnostics consistent_hash_exchange_ring_state <exchange>` is a new CLI command that makes it
|
||||
easy to inspect consistent hashing ring state for an exchange.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-consistent-hash-exchange#47](https://github.com/rabbitmq/rabbitmq-consistent-hash-exchange/pull/47)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Client ID tracker operation timeout has been increased from default 5 seconds.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-mqtt#231](https://github.com/rabbitmq/rabbitmq-mqtt/pull/231)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Enhacenements
|
||||
|
||||
* More graceful handling of incorrect or unparseable data.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#121](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/121)
|
||||
|
||||
|
||||
### AWS Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* AWS peer discovery backend can be specified as `aws`:
|
||||
|
||||
``` ini
|
||||
cluster_formation.peer_discovery_backend = aws
|
||||
```
|
||||
|
||||
as well as the module name, or plugin name (`rabbitmq_peer_discovery_aws`):
|
||||
|
||||
``` ini
|
||||
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_aws
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-aws#34](https://github.com/rabbitmq/rabbitmq-peer-discovery-aws/issues/34)
|
||||
|
||||
|
||||
### Consul Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Consul peer discovery backend can be specified as `consul`:
|
||||
|
||||
``` ini
|
||||
cluster_formation.peer_discovery_backend = consul
|
||||
```
|
||||
|
||||
as well as the module name, or plugin name (`rabbitmq_peer_discovery_consul`):
|
||||
|
||||
``` ini
|
||||
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_consul
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-consul#43](https://github.com/rabbitmq/rabbitmq-peer-discovery-consul/issues/43)
|
||||
|
||||
|
||||
### etcd Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Locking operation against `etcd` v3 API failed with a `case_clause`.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#30](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/30)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* etcd peer discovery backend can be specified as `etcd`:
|
||||
|
||||
``` ini
|
||||
cluster_formation.peer_discovery_backend = etcd
|
||||
```
|
||||
|
||||
as well as the module name, or plugin name (`rabbitmq_peer_discovery_etcd`):
|
||||
|
||||
``` ini
|
||||
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_etcd
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-etcd#26](https://github.com/rabbitmq/rabbitmq-peer-discovery-etcd/issues/26)
|
||||
|
||||
|
||||
### Kubernetes Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Kubernetes peer discovery backend can be specified as `k8s` or `kubernetes`:
|
||||
|
||||
``` ini
|
||||
cluster_formation.peer_discovery_backend = k8s
|
||||
```
|
||||
|
||||
as well as the module name, or plugin name (`rabbitmq_peer_discovery_k8s`):
|
||||
|
||||
``` ini
|
||||
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-k8s#65](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/issues/65)
|
||||
|
||||
|
||||
### Web STOMP Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [Basic HTTP auth setting](https://www.rabbitmq.com/web-stomp.html) is now exposed to new style configuration:
|
||||
|
||||
``` ini
|
||||
web_stomp.use_http_auth = true
|
||||
```
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-web-stomp#119](https://github.com/rabbitmq/rabbitmq-web-stomp/issues/119)
|
||||
|
||||
|
||||
## Debian Package
|
||||
|
||||
### Enhancements
|
||||
|
||||
* Invocations of `rabbitmqctl wait` in service management scripts now use a timeout.
|
||||
|
||||
Contributed by Nicolas @nicolasbock Bock.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#129](https://github.com/rabbitmq/rabbitmq-server-release/pull/129)
|
||||
|
||||
|
||||
## RPM Package
|
||||
|
||||
### Enhancements
|
||||
|
||||
* Invocations of `rabbitmqctl wait` in service management scripts now use a timeout.
|
||||
|
||||
Contributed by Nicolas @nicolasbock Bock.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server-release#129](https://github.com/rabbitmq/rabbitmq-server-release/pull/129)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
* `recon` was upgraded [from 2.5.0 to 2.5.1](https://github.com/ferd/recon/compare/2.5.0...2.5.1)
|
||||
* `observer_cli` was upgraded [from 1.5.3 to 1.5.4](https://github.com/zhongwencool/observer_cli/compare/1.5.3...1.5.4)
|
||||
|
||||
|
||||
## 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.5.tar.xz`.
|
|
@ -0,0 +1,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`.
|
|
@ -0,0 +1,113 @@
|
|||
## RabbitMQ 3.8.7
|
||||
|
||||
RabbitMQ `3.8.7` is a maintenance release that patches
|
||||
a security vulnerability.
|
||||
|
||||
RabbitMQ Core team would like to thank Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center
|
||||
for researching and responsibly disclosing the vulnerability addressed in this release.
|
||||
|
||||
### 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 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
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Addressed a Windows-specific binary planting security vulnerability [CVE-2020-5419](https://tanzu.vmware.com/security/cve-2020-5419) that allowed for arbitrary code execution.
|
||||
The vulnerability requires the attacker to have local access and elevated privileges,
|
||||
and cannot be executed remotely.
|
||||
|
||||
[CVSS score](https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H): `6.7` (medium severity).
|
||||
|
||||
This vulnerability was researched and [responsibly disclosed](https://www.rabbitmq.com/contact.html#security) by
|
||||
Ofir Hamam and Tomer Hadad at Ernst & Young's Hacktics Advanced Security Center.
|
||||
|
||||
* In a mixed version cluster, virtual host limits were incorrectly reported for yet-to-be-upgraded nodes.
|
||||
|
||||
Contributed by @mnxumalo.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2430](https://github.com/rabbitmq/rabbitmq-server/pull/2430)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Definition export using `rabbitmqctl export_definitions` exported [optional queue arguments](https://www.rabbitmq.com/queues.html#optional-arguments) as blank.
|
||||
Export performed via the HTTP API was not affected by this problem.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2427](https://github.com/rabbitmq/rabbitmq-server/issues/2427)
|
||||
|
||||
* Invoking `rabbitmqctl` (or other tools) without any arguments produced help output that was inconsistent
|
||||
from `rabbitmqctl help` in line spacing.
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Links in some environments upgraded from earlier `3.8.x` versions could run into a data coercion exception
|
||||
when connection credentials were unencrypted.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#112](https://github.com/rabbitmq/rabbitmq-federation/pull/112)
|
||||
|
||||
|
||||
### Shovel Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Shovels where the source is AMQP 1.0 endpoint now gracefully handle link detachment
|
||||
if the remote end set the `closed` attribute to `false`.
|
||||
|
||||
Contributed by @tstorck.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#56](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/pull/56)
|
||||
|
||||
* Removed some debug logging that was unintentionally polluting standard output even when
|
||||
debug logging was not enabled.
|
||||
|
||||
Contributed by @sircinek.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-amqp1.0-client#54](https://github.com/rabbitmq/rabbitmq-amqp1.0-client/pull/54)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
* `credentials_obfuscation` was upgraded [from 2.1.1 to 2.2.0](https://github.com/rabbitmq/credentials-obfuscation/compare/v2.1.1...v2.2.0)
|
||||
|
||||
|
||||
## 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.7.tar.xz`.
|
|
@ -0,0 +1,153 @@
|
|||
## RabbitMQ 3.8.8
|
||||
|
||||
RabbitMQ `3.8.8` is a maintenance release.
|
||||
It focuses on bug fixes and usability improvements.
|
||||
|
||||
This releases introduces a [new node operation mode](https://github.com/rabbitmq/rabbitmq-server/issues/2321), called the *maintenance mode*.
|
||||
This feature is useful when performing rolling upgrades and is covered
|
||||
in more detail below.
|
||||
|
||||
This is the [last RabbitMQ release to support Erlang 21.3](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
|
||||
|
||||
### 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
|
||||
|
||||
### 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 22.x or Later Versions
|
||||
|
||||
When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
|
||||
|
||||
Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
|
||||
RabbitMQ **must be upgraded at the same time as Erlang**.
|
||||
|
||||
Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 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
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Maintenance mode. This is a [new mode operation mode for RabbitMQ nodes](https://github.com/rabbitmq/rabbitmq-server/issues/2321). The mode is explicitly turned
|
||||
on and off by the operator using a bunch of new CLI commands (see below). For mixed-version cluster
|
||||
compatibility, this feature must be [enabled using a feature flag](https://www.rabbitmq.com/feature-flags.html).
|
||||
|
||||
When a node is being put down for maintenance and in maintenance mode, it will not be available for
|
||||
serving client traffic and will try to transfer as many of its responsibilities as practically possible
|
||||
and safe.
|
||||
|
||||
Currently this involves the following steps:
|
||||
|
||||
* Suspend all client connection listeners (no new client connections will be accepted)
|
||||
* Close all existing client connections: applications are expected to reconnect to other nodes and recover
|
||||
* Transfer primary replicas of all classic mirrored queues hosted on the target node
|
||||
* Transfer primary replicas of all quorum queues hosted on the target node, and prevent them from participating
|
||||
in the subsequently triggered Raft elections
|
||||
* Mark the node as down for maintenance
|
||||
* At this point, a node shutdown will be least disruptive as the node has already transferred most of its
|
||||
responsibilities
|
||||
|
||||
A node in maintenance mode will not be considered for new primary queue replica placement,
|
||||
regardless of queue type and the [queue leader locator policy](https://www.rabbitmq.com/ha.html#leader-migration-data-locality) used.
|
||||
|
||||
A node in maintenance mode is expected to be shut down, upgraded or reconfigured, and restarted in a short
|
||||
period of time. Nodes are not expected to be running in this mode for long periods of time.
|
||||
|
||||
A node in maintenance mode can be revived, that is, brough back into its regular operational state.
|
||||
When a node is revived restarted (e.g. after an upgrade), it will again accept client connections
|
||||
and be considered for primary queue replica placements. It will not recover previous client connections
|
||||
as RabbitMQ never initiates connections to clients, but clients will be able to reconnect to it.
|
||||
|
||||
This feature is expected to evolve based on the feedback from the community, the field and the
|
||||
RabbitMQ core team at VMware. For example, it can be adjusted based on the learnings when
|
||||
adding upgrades support to the [RabbitMQ Cluster Operator for Kubernetes](https://www.rabbitmq.com/kubernetes/operator/operator-overview.html).
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2321](https://github.com/rabbitmq/rabbitmq-server/issues/2321)
|
||||
|
||||
|
||||
### CLI
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* `rabbitmq-upgrade drain` is a new command that puts a node in maintenance mode (see above).
|
||||
`rabbitmq-upgrade revive` is its counterpart that "revives" a node by putting it into the regular
|
||||
operating mode.
|
||||
|
||||
`rabbitmqctl suspend_listeners` is a new command that suspends all [client connection listeners](https://www.rabbitmq.com/networking.html#ports)
|
||||
(ports) on the node. This means that existing connections won't be affected but no new connections
|
||||
will be accepted. This can be useful during upgrades, in particular using the
|
||||
[Blue/Green deployment strategy](https://www.rabbitmq.com/blue-green-upgrade.html).
|
||||
|
||||
`rabbitmqctl resume_listeners` resumes all client listeners so that they accept new client connections
|
||||
again.
|
||||
|
||||
All these commands will have an effect only if the `maintenance_mode_status` flag is enabled.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-cli#419](https://github.com/rabbitmq/rabbitmq-cli/pull/419)
|
||||
|
||||
|
||||
### MQTT Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Abrupt client connection termination could result in an Erlang process leak. This resource leak
|
||||
affects RabbitMQ versions between `3.8.5` and `3.8.7`, inclusive.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-mqtt#239](https://github.com/rabbitmq/rabbitmq-mqtt/pull/239)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* A node that had a lot of on disk data and constrainted resources could spend a very long time
|
||||
activating the plugin while queue primary replicas were busy recovering the data.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2437](https://github.com/rabbitmq/rabbitmq-server/issues/2437)
|
||||
|
||||
|
||||
### OAuth 2 AuthN/AuthZ Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Simplified scope merging code specific to Keycloak.
|
||||
|
||||
Contributed by Simon @SimonAlling Alling.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-oauth2#52](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2/pull/52)
|
||||
|
||||
|
||||
## Dependency Upgrades
|
||||
|
||||
* `cuttlefish` was upgraded [from 2.3.0 to 2.4.1](https://github.com/Kyorai/cuttlefish/compare/v2.3.0...v2.4.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.8.tar.xz`.
|
|
@ -0,0 +1,135 @@
|
|||
## RabbitMQ 3.8.9
|
||||
|
||||
RabbitMQ `3.8.9` is a maintenance release.
|
||||
It focuses on bug fixes and usability improvements.
|
||||
|
||||
This release [**no longer supports** Erlang 21.3](https://groups.google.com/forum/#!topic/rabbitmq-users/v3K5nZNsfwM).
|
||||
|
||||
### 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 22.0**](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
|
||||
|
||||
### 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 series (e.g. `3.7.x`).
|
||||
|
||||
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 22.x or Later Versions
|
||||
|
||||
When upgrading to this release from `3.7.15` or an older version, extra care has to be taken.
|
||||
|
||||
Because older RabbitMQ CLI tools can be incompatible with Erlang 22+ releases,
|
||||
RabbitMQ **must be upgraded at the same time as Erlang**.
|
||||
|
||||
Alternatively the node can be upgraded to `3.7.18` on Erlang 21.3 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
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Starting with `3.8.0`, an unintentionally introduced assertion could prevent classic mirrored queue
|
||||
mirrors from starting successfully in case the primary replica changed concurrently with their startup.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2449](https://github.com/rabbitmq/rabbitmq-server/pull/2449)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Raft implementation's [failure detector](https://github.com/rabbitmq/aten) default polling interval has been increased from 1s to 5s.
|
||||
The previously used default results in too frequent leader elections in networks with high packet loss
|
||||
(say, double digit percent).
|
||||
|
||||
This has no correctness or safety ramifications, however, automated tests that assert on Raft properties
|
||||
or expect a very fast leader re-election may have to set it back so that peer failures are detected quicker.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-server#2450](https://github.com/rabbitmq/rabbitmq-server/pull/2450)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* The now deprecated intrusive health check endpoint, `GET /api/healthchecks/node`, reported failures in the response
|
||||
but always set the status to `200 OK`. It now uses the status of `500` in case of a failure.
|
||||
|
||||
[RabbitMQ Monitoring guide](https://www.rabbitmq.com/monitoring.html#health-checks) explains why
|
||||
this health check is no longer recommended and what the alternatives are.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#840](https://github.com/rabbitmq/rabbitmq-management/issues/840)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* When a client doubly encodes a request into JSON, the plugin tries to detect that and will produce a more
|
||||
helpful 400 response instead of a 500.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-management#839](https://github.com/rabbitmq/rabbitmq-management/issues/839)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* When a classic mirrored queue with a replica on every cluster node (this is [highly discouraged](https://www.rabbitmq.com/ha.html#replication-factor)) was federated,
|
||||
multiple links could be started by the plugin, potentially making message transfers concurrent
|
||||
and affecting ordering.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#114](https://github.com/rabbitmq/rabbitmq-federation/issues/114)
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* It is now possible to federate exchanges in different virtual hosts in the same cluster for more than one hop.
|
||||
For example, federate messages from an exchange in virtual host B to C, while B itself is federated from
|
||||
virtual host A. Previously such messages would have been filtered by the message cycle detection algorithm
|
||||
which assumed that exchanges are only federated across clusters.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-federation#116](https://github.com/rabbitmq/rabbitmq-federation/issues/116)
|
||||
|
||||
|
||||
### Kubernetes Peer Discovery Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Kubernetes API events registered by this plugin mixed up reason and message fields.
|
||||
|
||||
Contributed by Gabriele Santomaggio.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-peer-discovery-k8s#70](https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/pull/70)
|
||||
|
||||
|
||||
### OAuth 2 AuthN/AuthZ Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Improved compatibility with Azure AD. This plugin can now be configured to fetch scopes from a non-standard
|
||||
field in the decoded token value (other than the standard `scopes` field).
|
||||
|
||||
Contributed by @Robert-Gustafsson.
|
||||
|
||||
GitHub issue: [rabbitmq/rabbitmq-auth-backend-oauth2#53](https://github.com/rabbitmq/rabbitmq-auth-backend-oauth2/pull/53)
|
||||
|
||||
|
||||
## 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.9.tar.xz`.
|
|
@ -0,0 +1,240 @@
|
|||
# RabbitMQ 3.9.0
|
||||
|
||||
The most important changes are [Streams](https://blog.rabbitmq.com/posts/2021/07/rabbitmq-streams-overview/), support for [Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/), and improved integration with our [RabbitMQ Kubernetes Operator](https://blog.rabbitmq.com/posts/2020/11/rabbitmq-kubernetes-operator-reaches-1-0/). Other changes worth mentioning are JSON logging, per-protocol and queue type message rates as Prometheus metrics and faster initial cluster formation on Kubernetes.
|
||||
|
||||
Find blog posts that expand on the previously mentioned topics: https://blog.rabbitmq.com/tags/v3.9.x/
|
||||
|
||||
|
||||
|
||||
## Highlights
|
||||
|
||||
|
||||
### Streams
|
||||
|
||||
[Streams](http://rabbitmq.com/streams.html) are a new persistent and replicated data structure ("queue type") in RabbitMQ which models an append-only log with non-destructive consumer semantics.
|
||||
|
||||
They can be used as a regular AMQP 0.9.1 queue or through a new [binary protocol plugin](http://rabbitmq.com/stream.html) and associated client(s).
|
||||
|
||||
Streams enable messaging patterns that were not possible or practical before, for example, repeatable non-destructive consumption and mass fanouts to a very large number of consumers.
|
||||
|
||||
|
||||
### Erlang 24 Support
|
||||
|
||||
[Erlang 24](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/) provides 20%-50% higher throughput for many workloads tested by the RabbitMQ core team and community members. Supporting the latest runtime version also allowed RabbitMQ to replace a few external dependencies with libraries now provided by the runtime.
|
||||
|
||||
Erlang 24 is now used by default in the [community RabbitMQ Docker image](https://github.com/docker-library/rabbitmq).
|
||||
|
||||
|
||||
### Kubernetes
|
||||
|
||||
[RabbitMQ Cluster Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview.html) automates provisioning, management, and operations of RabbitMQ clusters running on Kubernetes. It is [open source](https://github.com/rabbitmq/cluster-operator) and is developed by the RabbitMQ Core team at VMware, Inc. This Operator is not specific to 3.9 and can be used with latest 3.8.x release series.
|
||||
|
||||
[Messaging Topology Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview.html#topology-operator) makes it possible to define RabbitMQ resources (virtual hosts, users, permissions, topologies, policies, etc) as Kubernetes objects. This Operator is also [open source](https://github.com/rabbitmq/messaging-topology-operator) and can be used with latest 3.8.x release series.
|
||||
|
||||
|
||||
### Logging in JSON
|
||||
|
||||
[Switch from Lager to the new Erlang Logger API for logging](https://github.com/rabbitmq/rabbitmq-server/pull/2861) introduces an option for structured logging in JSON. This is relevant for the Prometheus-based alerting feature that we have been investing in this year: [Notify me when RabbitMQ has a problem](https://blog.rabbitmq.com/posts/2021/05/alerting/).
|
||||
|
||||
|
||||
|
||||
## Obtaining Packages
|
||||
|
||||
RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases), [Cloudsmith](https://cloudsmith.io/~rabbitmq/repos/), and [PackageCloud](https://packagecloud.io/rabbitmq).
|
||||
|
||||
|
||||
### Erlang/OTP Compatibility Notes
|
||||
|
||||
This release [requires Erlang 23.2](https://www.rabbitmq.com/which-erlang.html) or later. Erlang 24 is recommended as it [offers 20%-50% throughput improvements](https://blog.rabbitmq.com/posts/2021/03/erlang-24-support-roadmap/) for many workloads.
|
||||
|
||||
[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 23.3.x and 24.x.
|
||||
|
||||
|
||||
|
||||
## Upgrading to 3.9
|
||||
|
||||
See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for documentation on upgrades and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html) for release notes of other releases.
|
||||
|
||||
RabbitMQ 3.9.0 nodes can run alongside `3.8.x` nodes. However, `3.8.16+` as well as `3.9.x` both require Erlang 23.2 or later (and support 24). `3.9.x`-specific features can only be made available when all nodes in the cluster upgrade to 3.9.0 or any other patch release in the series.
|
||||
|
||||
While operating in mixed version mode, some aspects of the system may not behave as expected. The list of known behavior changes is covered below. Once all nodes are upgraded to 3.9.0, these irregularities will go away.
|
||||
|
||||
Mixed version clusters are a mechanism that allows rolling upgrade and are not meant to be run for extended periods of time (no more than a few hours).
|
||||
|
||||
|
||||
### Quorum Queue Declaration
|
||||
|
||||
In a mixed version cluster, declaration of new quorum queues will fail if executed on a node in the version minority. For example, in a five node cluster with two nodes running 3.8, the three 3.9 nodes are in the version majority and the remaining are in the version minority.
|
||||
|
||||
Existing quorum queues will operate just like before.
|
||||
|
||||
|
||||
### Classic Queue Metrics
|
||||
|
||||
HTTP API responses will provide a [limited number of metrics](https://github.com/rabbitmq/rabbitmq-server/issues/3080) or metrics for a limited number of queues (for operations such as `GET /api/queues/{vhost}`) when operating in mixed version mode.
|
||||
|
||||
|
||||
|
||||
## Compatibility Notes
|
||||
|
||||
|
||||
### Client Library Compatibility
|
||||
|
||||
Client libraries that were compatible with RabbitMQ `3.8.x` will be compatible with `3.9.0`.
|
||||
|
||||
|
||||
### Upgrading to Erlang 24.x
|
||||
|
||||
RabbitMQ `3.8.16` and later require Erlang `23.2` and support Erlang `24` (recommended). Users of RabbitMQ versions that [do not support Erlang 23.2](https://www.rabbitmq.com/which-erlang.html) should first upgrade to the latest `3.8.x` patch release on Erlang 23.2, then upgrade to `3.9.0`, and ideally Erlang 24.
|
||||
|
||||
|
||||
### 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
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [Streams](http://rabbitmq.com/streams.html), a new durable replicated data structure that allows for repeatable (non-destructive) consumption. RabbitMQ 3.9 introduces a new binary protocol for working with streams. While streams can be used by AMQP 0-9-1 clients, in most cases it will be used via a [RabbitMQ stream binary protocol](http://rabbitmq.com/stream.html) client. The new protocol exposes all the operations specific to this queue type and is heavily optimized for them, resulting in much higher read and write throughput.
|
||||
|
||||
[Java](https://github.com/rabbitmq/rabbitmq-stream-java-client) and [Go](https://github.com/rabbitmq/rabbitmq-stream-go-client) clients
|
||||
|
||||
* Structural logging in JSON. Nodes can now log in JSON format.
|
||||
|
||||
GitHub issue: [#2861](https://github.com/rabbitmq/rabbitmq-server/pull/2861)
|
||||
|
||||
* [Peer discovery](https://www.rabbitmq.com/cluster-formation.html) no longer uses randomized startup delay to ensure only one node starts as a seed one during initial (parallel) cluster formation. Instead it relies on an internal runtime locking library.
|
||||
|
||||
GitHub issue: [#3075](https://github.com/rabbitmq/rabbitmq-server/pull/3075)
|
||||
|
||||
* Binding recovery on node startup is now more efficient. This means in clusters with a lot of queues and/or bindings, nodes start quicker.
|
||||
|
||||
GitHub issue: [#3137](https://github.com/rabbitmq/rabbitmq-server/pull/3137)
|
||||
|
||||
* Classic mirrored queue replcas are now started synchronously.
|
||||
|
||||
GitHub issue: [#2751](https://github.com/rabbitmq/rabbitmq-server/pull/2751)
|
||||
|
||||
* `journald` notifications are now performed using a library and not an external tool (`socat`)
|
||||
|
||||
GitHub issue: [#2940](https://github.com/rabbitmq/rabbitmq-server/pull/2940)
|
||||
|
||||
* Startup banner now provides more information some of which can be customised.
|
||||
|
||||
GitHub issues: [#2247](https://github.com/rabbitmq/rabbitmq-server/pull/2247), [#2777](https://github.com/rabbitmq/rabbitmq-server/pull/2777)
|
||||
|
||||
* Per-protocol and queue type message rates are now available as Prometheus metrics, as well as Streams-specific errors. This also addresses a long-standing 3.8.x counters issue for most metrics of this type, as captured in [#2783](https://github.com/rabbitmq/rabbitmq-server/issues/2783).
|
||||
|
||||
GitHub issues: [#3127](https://github.com/rabbitmq/rabbitmq-server/pull/3127), [#3136](https://github.com/rabbitmq/rabbitmq-server/pull/3136), [#3157](https://github.com/rabbitmq/rabbitmq-server/pull/3157)
|
||||
|
||||
#### Internal API and Other Changes
|
||||
|
||||
* Standard runtime logger is now used for logging instead of Lager, a 3rd party dependency. In modern Erlang versions, the module offers at least a comparable feature set and efficiency of Lager.
|
||||
|
||||
Users who relied on Lager-specific configuration, e.g. custom extensions or sinks, would have to rebuild them on top of the standard Erlang `logger` module.
|
||||
|
||||
GitHub issue: [#2861](https://github.com/rabbitmq/rabbitmq-server/pull/2861)
|
||||
|
||||
* Different Raft-based features now can have different defaults and settings, with more configurability coming at a later point. For example, client ID tracking in the MQTT plugin can use settings for lower memory footprint and more frequent compaction while stream and quorum queues use settings more optimal for higher throughput on the same node.
|
||||
|
||||
GitHub issue: [#2909](https://github.com/rabbitmq/rabbitmq-server/pull/2909)
|
||||
|
||||
* Continuous integration of open source RabbitMQ has switched to Bazel, GitHub Actions and [BuildBuddy](https://buildbuddy.io), resulting in much faster and incremental test runs.
|
||||
|
||||
[Bazel support for Erlang](https://github.com/rabbitmq/bazel-erlang) is a new project open sourced by the RabbitMQ Core team as a result.
|
||||
|
||||
* Process group membership now uses `pg`.
|
||||
|
||||
GitHub issue: [#2850](https://github.com/rabbitmq/rabbitmq-server/pull/2850)
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `powershell.exe` now can run without profile
|
||||
|
||||
GitHub issue: [#2201](https://github.com/rabbitmq/rabbitmq-server/pull/2201)
|
||||
|
||||
* Queue index recovery now can continue after a forced node shutdown during recovery (e.g. killed)
|
||||
|
||||
GitHub issue: [#3099](https://github.com/rabbitmq/rabbitmq-server/pull/3099)
|
||||
|
||||
* Correct an issue where the `num_acceptors.ssl` configuration value was applied incorrectly
|
||||
|
||||
GitHub issue: [#3180](https://github.com/rabbitmq/rabbitmq-server/pull/3180)
|
||||
|
||||
* Correct an issue where the `--tags` flag was ignored if `--description` was not specified in the `rabbitmqctl add_vhost` command
|
||||
|
||||
|
||||
### Kubernetes
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [RabbitMQ Cluster Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview.html) automates provisioning, management, and operations of RabbitMQ clusters running on Kubernetes.
|
||||
|
||||
* [Messaging Topology Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview.html#topology-operator) makes it possible to define RabbitMQ resources (virtual hosts, users, permissions, topologies, policies, etc) as Kubernetes objects.
|
||||
|
||||
* Kubernetes [peer discovery](https://www.rabbitmq.com/cluster-formation.html) mechanism no longer uses randomized delays to avoid the inherent race condition during [initial cluster formation](https://www.rabbitmq.com/cluster-formation.html#initial-formation-race-condition). Instead it relies on an internal distributed locking mechanism available in modern Erlang releases.
|
||||
|
||||
While randomized startup delay was reasonably effective at ensuring only one cluster was formed even during parallel node startup, it by definitely assumes that with some low probability more than one node can still start as seed nodes, and be joined by different groups of cluster peers. The locking mechanism does not have this downside. Now that RabbitMQ requires Erlang 23.2, the internal locking library becomes an option for peer discovery.
|
||||
|
||||
`cluster_formation.randomized_startup_delay_range.min` and `cluster_formation.randomized_startup_delay_range.max` configuration keys will no longer have any effect.
|
||||
|
||||
GitHub issue: [#3075](https://github.com/rabbitmq/rabbitmq-server/pull/3075)
|
||||
|
||||
|
||||
### AWS Peer Discovery Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* [AWS peer discovery mechanism](https://www.rabbitmq.com/cluster-formation.html#peer-discovery-aws) now supports [Instance Metadata Service v2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html). In case it is not available, requests will fall back to the original metadata service endpoint.
|
||||
|
||||
The v2 endpoint offers substantial security improvements and is one of the [AWS best practices](https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards-fsbp-controls.html#ec2-8-remediation).
|
||||
|
||||
Contributed by @thuandb (AWS).
|
||||
|
||||
GitHub issue: [#2952](https://github.com/rabbitmq/rabbitmq-server/pull/2952)
|
||||
|
||||
|
||||
### Federation Plugin
|
||||
|
||||
#### Enhancements
|
||||
|
||||
* Quorum queues now can be federated.
|
||||
|
||||
GitHub issue: [#2804](https://github.com/rabbitmq/rabbitmq-server/pull/2804)
|
||||
|
||||
|
||||
### Management Plugin
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Management UI now honors queue name length limits
|
||||
|
||||
GitHub issue: [#3202](https://github.com/rabbitmq/rabbitmq-server/pull/3202)
|
||||
|
||||
* Management UI now sets a correct www-authenticate response header on authentication failures
|
||||
|
||||
GitHub issue: [#3205](https://github.com/rabbitmq/rabbitmq-server/pull/3205)
|
||||
|
||||
|
||||
### Dependency Changes
|
||||
|
||||
* cowboy has been upgraded from `2.6.1` to `2.8.0`
|
||||
* cowlib has been upgraded from `2.7.0` to `2.9.1`
|
||||
* lager has been removed
|
||||
* jsx has been upgraded from `2.9.0` to `3.1.0`
|
||||
* observer_cli has been upgraded from `1.5.2` to `1.6.2`
|
||||
* osiris had been introduced at `0.1.0`
|
||||
* prometheus has been upgraded from `4.6.0` to `4.8.1`
|
||||
* ra has been upgraded from `1.1.9` to `2.0.0`
|
||||
* ranch has been upgraded from `1.7.1` to `2.0.0`
|
||||
* recon has been upgraded from `2.5.0` to `2.5.1`
|
||||
* seshat had been introduced at `0.1.0`
|
||||
* socat has been removed
|
||||
* syslog has been upgraded from `3.4.5` to `4.0.0`
|
||||
* systemd had been introduced at `0.6.1`
|
|
@ -0,0 +1,58 @@
|
|||
# RabbitMQ 3.9.1
|
||||
|
||||
RabbitMQ `3.9.1` is a maintenance release in the `3.9.x` release series. [This is what changed since v3.9.0](https://github.com/rabbitmq/rabbitmq-server/compare/v3.9.0...v3.9.1).
|
||||
|
||||
Please refer to the **Upgrading to 3.9** section from [v3.9.0 release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.9.0) if you are upgrading from a version prior to 3.9.0.
|
||||
|
||||
This release requires at least Erlang 23.2, and supports the latest Erlang 24 version, 24.0.5 at the time of release. [RabbitMQ and Erlang/OTP Compatibility Matrix](https://www.rabbitmq.com/which-erlang.html) has more details on Erlang version requirements for RabbitMQ.
|
||||
|
||||
|
||||
|
||||
## Changes Worth Mentioning
|
||||
|
||||
|
||||
### Core Server
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* Clients that used global QoS prefetch (deprecated as of 3.9.0) ran into an exception when acknowledging deliveries.
|
||||
|
||||
GitHub issue: [#3230](https://github.com/rabbitmq/rabbitmq-server/pull/3230)
|
||||
|
||||
* Improved resiliency of stream coordinator in certain conditions.
|
||||
|
||||
GitHub issues: [#3176](https://github.com/rabbitmq/rabbitmq-server/pull/3176), [#3170](https://github.com/rabbitmq/rabbitmq-server/pull/3170)
|
||||
|
||||
* Nodes failed to start when hostname contained non-ASCII (broader Unicode) characters.
|
||||
|
||||
GitHub issue: [#3239](https://github.com/rabbitmq/rabbitmq-server/pull/3239)
|
||||
|
||||
|
||||
### CLI Tools
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* `rabbitmq-diagnostics stream_status` fails with an exception when the `--tracking` option was used.
|
||||
|
||||
GitHub issue: [#3229](https://github.com/rabbitmq/rabbitmq-server/pull/3229)
|
||||
|
||||
* `rabbitmq-diagnostics stream_status` used an outdated documentation guide link.
|
||||
|
||||
GitHub issue: [#3231](https://github.com/rabbitmq/rabbitmq-server/pull/3231)
|
||||
|
||||
|
||||
### RabbitMQ Erlang Client
|
||||
|
||||
#### Bug Fixes
|
||||
|
||||
* New releases of the client are again published to Hex.pm.
|
||||
|
||||
GitHub issue: [#3247](https://github.com/rabbitmq/rabbitmq-server/pull/3247)
|
||||
|
||||
* `connection_timeout` was adjusted to avoid a confusing warning.
|
||||
|
||||
GitHub issue: [#3232](https://github.com/rabbitmq/rabbitmq-server/pull/3232) contributed by @britto
|
||||
|
||||
* Corrected a typo in direct connection net tick time adjustment.
|
||||
|
||||
GitHub issue: [#3233](https://github.com/rabbitmq/rabbitmq-server/pull/3233) contributed by @britto
|
|
@ -0,0 +1,84 @@
|
|||
Release : RabbitMQ 1.1.0-alpha
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
RabbitMQ server
|
||||
---------------
|
||||
- support for clustering and load balancing
|
||||
- near-linear scaling across multiple nodes on fanout
|
||||
- various performance improvements
|
||||
- more resilient startup sequence
|
||||
- improved error reporting and logging, particularly during startup
|
||||
- improved test coverage
|
||||
- improved protocol conformance, particluarly in the area of
|
||||
connection and channel management
|
||||
- fixed a number of race conditions in corner cases of the protocol
|
||||
- made several parameters, such as tcp buffer size, more easily
|
||||
adjustable
|
||||
- supervision tree for most of the processes, for improved resilience
|
||||
- better support for building under Windows
|
||||
- new rabbmitqctl commands, for clustering, broker status, and more
|
||||
- improved rabbitmqctl success and failure reporting
|
||||
- improved documentation for build, install, administration
|
||||
- tested against latest Erlang/OTP release - R11B-5
|
||||
|
||||
Java client
|
||||
-----------
|
||||
- support for clustering and load balancing
|
||||
- improved and better documented API
|
||||
- improved error handling and reporting
|
||||
- new QueuingConsumer class for easy asynchronous message processing
|
||||
- restructured internals
|
||||
- fixed several race conditions and deadlocks, and some other bugs
|
||||
- support for build under Java 6 and under Windows
|
||||
|
||||
Packaging
|
||||
---------
|
||||
- more resilient and easier configurable startup scripts
|
||||
- fixed several bugs in Debian packaging
|
||||
- RabbitMQ now runs as a separate user
|
||||
- new Fedora and Suse RPM packages
|
||||
- new Debian and RPM packages for Java client
|
||||
- "binary" Java client packages for Java >=1.5 and <1.5
|
||||
- streamlined packaging process
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
If you are upgrading from an earlier release of RabbitMQ, note that
|
||||
RabbitMQ's internal database schema has changed, and hence the
|
||||
MNESIA_BASE directory should be cleared before starting the new
|
||||
server. This wipes out any configuration information and persisted
|
||||
messages.
|
||||
|
||||
The upgrade process will be much improved in future releases, to the
|
||||
point where a running RabbitMQ cluster can be upgraded without service
|
||||
interruption. Meanwhile, if you need assistance in migration please
|
||||
contact the RabbitMQ team at rabbitmq-sales@pivotal.io.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Antonio Cordova
|
||||
Carl Bourne
|
||||
David Pollack
|
||||
David MacIver
|
||||
Francesco Cesarini
|
||||
Gerald Loeffler
|
||||
Hunter Morris
|
||||
Jason Pellerin
|
||||
Jeff Rogers
|
||||
Martin Logan
|
||||
Matt Darling
|
||||
Michael Newton
|
||||
Neil Bartlett
|
||||
Norbert Klamann
|
||||
Robert Greig
|
||||
Wannes Sels
|
||||
Warren Pfeffer
|
|
@ -0,0 +1,61 @@
|
|||
Release: RabbitMQ 1.1.1
|
||||
Status : beta
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
RabbitMQ server
|
||||
---------------
|
||||
- improved interoperability with Qpid M1 clients
|
||||
- fixed a bug in persistent message re-delivery that caused RabbitMQ
|
||||
to fail when attempting to re-deliver messages after a restart
|
||||
- fixed a performance problem that caused throughput to drop
|
||||
significantly for larger message sizes
|
||||
- fixed a bug in amqqueue:stat_all/0 that caused it to fail
|
||||
- refactored some internals in order to support additional transports
|
||||
more easily
|
||||
|
||||
Java client
|
||||
-----------
|
||||
- improved interoperability with Qpid M1 Java server
|
||||
- changed threading model to stop clients from exiting when there are
|
||||
open AMQP connections
|
||||
- extended API to allow setting of frameMax and channelMax
|
||||
|
||||
Packaging
|
||||
---------
|
||||
- included main test suite runner in source distribution
|
||||
- dropped version status (i.e. alpha, beta, etc) from file and dir
|
||||
names
|
||||
- renamed server erlang package dir to "rabbitmq_server-<version>", to
|
||||
comply with Erlang/OTP conventions
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
Upgrading to this release from RabbitMQ 1.1.0 requires no special
|
||||
steps at the server end. There have been some minor changes to the
|
||||
Java client API. Most client code is unlikely to be affected by these,
|
||||
and is easily changed if it is.
|
||||
|
||||
If you are upgrading from an earlier release of RabbitMQ, note that
|
||||
RabbitMQ's internal database schema has changed, and hence the
|
||||
MNESIA_BASE directory should be cleared before starting the new
|
||||
server. This wipes out any configuration information and persisted
|
||||
messages.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Ben Hood
|
||||
James Wolstenholme
|
||||
Jeff Rogers
|
||||
Maximillian Dornseif
|
||||
Michael Arnoldus
|
||||
Steve Jenson
|
||||
Tanmay Goel
|
|
@ -0,0 +1,63 @@
|
|||
Release: RabbitMQ 1.2.0
|
||||
Status : beta
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
RabbitMQ server
|
||||
---------------
|
||||
- introduced internal flow control to prevent performance drops when
|
||||
running a server near capacity
|
||||
- simplified cluster configuration and added "automatic" clustering
|
||||
- made rabbitmqctl command line syntax less confusing
|
||||
- fixed a couple of race conditions that could result in a client
|
||||
receiving unexpected sequences of command replies and messages
|
||||
- refactored internals to make it easier to construct handlers for
|
||||
transports other than raw TCP/IP
|
||||
|
||||
Java client
|
||||
-----------
|
||||
- fixed a race condition between invocation of a Consumer's
|
||||
handle{Consume,Cancel}Ok and handleDelivery methods; the former are
|
||||
now called inside the connection's thread, just like the latter
|
||||
|
||||
Packaging
|
||||
---------
|
||||
- simplified rabbitmqctl invocation under Debian
|
||||
- moved default location of the log and mnesia dirs under Windows to
|
||||
sub directories of the RABBITMQ_BASE directory
|
||||
- changed startup scripts to allow the rabbitmq_server package to
|
||||
reside outside the OTP library directory
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
Under Windows the default location of the mnesia directory has changed
|
||||
from %RABBITMQ_BASE% to %RABBITMQ_BASE%\db. If you have an existing
|
||||
installation that uses the old default location and you would like to
|
||||
retain the server state (including persisted messages) then just move
|
||||
the *.DAT, *.DCD, *.DCL and *.LOG files from that directory to the new
|
||||
location.
|
||||
|
||||
There have been some minor changes to the Java client API. Most client
|
||||
code is unlikely to be affected by these, and is easily changed if it
|
||||
is.
|
||||
|
||||
If you are upgrading from RabbitMQ-1.0.0 note that RabbitMQ's internal
|
||||
database schema has changed, and hence the MNESIA_BASE directory
|
||||
should be cleared before starting the new server. This wipes out any
|
||||
configuration information and persisted messages.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Ben Hood
|
||||
Emmanuel Okyere
|
||||
Holger Hoffstätte
|
||||
Jodi Moran
|
||||
Robert Greig
|
|
@ -0,0 +1,96 @@
|
|||
Release: RabbitMQ 1.3.0
|
||||
Status : beta
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- eliminate a number of race conditions that could result in message
|
||||
loss and other incorrect or unusual behaviour
|
||||
- eliminate duplication of messages when bindings overlap
|
||||
- prevent unbounded memory usage when topic exchanges encounter
|
||||
messages with highly variable routing keys
|
||||
- redesigned persister so it works properly in a clustered broker
|
||||
- fix a couple of bugs that could cause persisted messages to stick
|
||||
around forever, resulting in an unbounded memory usage
|
||||
- prevent performance drop under high load
|
||||
- do not requeue messages on tx.rollback
|
||||
- fix bug in heartbeat logic that could result in a connection
|
||||
remaining alive even though the client had stopped sending any data
|
||||
- correct handling of queue.bind with empty routing key and queue name
|
||||
- complain about acks with an unknown delivery tag
|
||||
- prevent sending of zero-length content body frames
|
||||
|
||||
enhancements
|
||||
- improve error reporting for various framing-related errors
|
||||
- improve rabbitmq-multi robustness and error reporting
|
||||
- identify log locations in startup message
|
||||
- keep log file contents on server restart
|
||||
- support QPid's extended field types
|
||||
- improve performance, particularly for persistent messaging
|
||||
- re-architect internals to eliminate some code duplication, reduce
|
||||
component dependencies, and construct cleaner internal APIs
|
||||
|
||||
Java client
|
||||
-----------
|
||||
bug fixes
|
||||
- eliminate edge case that could result in stuck AMQConnection.close
|
||||
- use linear timers to prevent heartbeat timeouts on system clock
|
||||
adjustment, which happens in some virtualisation platforms
|
||||
- eliminate a race condition that could result in an exception when
|
||||
establishing a connection
|
||||
|
||||
enhancements
|
||||
- add SSL support
|
||||
- improve error reporting for various framing-related errors
|
||||
- add new FileProducer/Consumer example
|
||||
- make MulticastMain example more versatile, with improved command
|
||||
line options
|
||||
- improve performance
|
||||
|
||||
packaging
|
||||
---------
|
||||
bug fixes
|
||||
- fix broken 'rabbitmqctl -n' on Debian
|
||||
- fix broken removal of the rabbitmq-server Debian package
|
||||
- fix broken Erlang library installation on 64bit RPM-based systems
|
||||
- fix failure of server shutdown when started at boot time on Debian
|
||||
- fix various problems with RPMs
|
||||
|
||||
improvements
|
||||
- better compliance with debian packaging policies
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
Care must be taken when upgrading a server that contains persisted
|
||||
messages. The persister log format has changed between RabbitMQ-1.2.0
|
||||
and this release. When RabbitMQ-1.3.0 first starts following an
|
||||
upgrade it will move the existing persister log to a backup file -
|
||||
check the log files for details. Thus the previously persisted
|
||||
messages are not lost, but neither are they replayed. Therefore it is
|
||||
recommended that the upgrade is performed only when there are no
|
||||
important persistent messages remaining.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Andrew Munn
|
||||
Barry Pederson
|
||||
Ben Hood
|
||||
David Pollak
|
||||
Emmanuel Okyere
|
||||
Joe Lee
|
||||
John Leuner
|
||||
Matt Darling
|
||||
Michael Arnoldus
|
||||
Nick Levine
|
||||
Tom Samplonius
|
||||
Willem van Heemstra
|
|
@ -0,0 +1,108 @@
|
|||
Release: RabbitMQ 1.4.0
|
||||
Status : beta
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- maintain message order on persister replay
|
||||
- do not throw away work on connection.close
|
||||
- eliminate possibility of generating duplicate message ids when
|
||||
broker is restarted
|
||||
- deal with race conditions during queue creation that could result in
|
||||
a queue being reported as 'not_found' when it did in fact exist, and
|
||||
the converse, or multiple queue processes being created per queue.
|
||||
- suppress a few errors that would be logged in various connection
|
||||
shutdown scenarios but turn out to be harmless
|
||||
- ensure preservation of content properties during persistence - this
|
||||
was working fine for the AMQP transport, but not the STOMP gateway
|
||||
- fix various other small bugs
|
||||
|
||||
enhancements
|
||||
- improve performance of queue creation
|
||||
- add explanatory text to errors returned to the client and reported
|
||||
in the logs
|
||||
- rationalise severities of logged errors, and log information
|
||||
allowing the correlation of log events with connections
|
||||
- return 'connection_forced' error to clients on broker shutdown
|
||||
- supervise queue processes
|
||||
- improve/refactor internal APIs to assist in creation of extensions
|
||||
- add type signature for all exported functions, and type check code
|
||||
with dialyzer
|
||||
- generate AMQP codec from JSON representation of protocol spec
|
||||
|
||||
Java client
|
||||
-----------
|
||||
bug fixes
|
||||
- completely revamp connection and channel closure handling, resolving
|
||||
a number race conditions and other bugs in the process and resulting
|
||||
in a cleaner, more comprehensive and consistent API
|
||||
- correct a few minor errors in the javadocs
|
||||
|
||||
enhancements
|
||||
- generate AMQP codec from JSON representation of protocol spec
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- only source /etc/default/rabbitmq in init.d scripts, thus stopping
|
||||
it from overriding env var settings
|
||||
- pay attention to NODE* env vars in rabbitmq-multi script, thus
|
||||
allowing users to easily start multiple nodes with non-default
|
||||
settings for the node name, ip and port.
|
||||
- make rpm update work
|
||||
|
||||
enhancements
|
||||
- on Windows, place the server logs and db in a dir under the per-user
|
||||
%APPDATA% directory
|
||||
- display names of nodes started by rabbitmq-multi
|
||||
- migrate from cvs to hg, and split into separate repositories for
|
||||
server, java client, etc.
|
||||
- clean up and refactor Makefiles
|
||||
- avoid hanging for 30s when an invalid database schema is detected
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
The database schema has changed in this version of RabbitMQ. If you
|
||||
attempt to start RabbitMQ-1.4.0 over top of a previous installation,
|
||||
it will fail, citing "schema_integrity_check_failed". To correct this,
|
||||
delete your mnesia directory (on most platforms,
|
||||
/var/lib/rabbitmq/mnesia) and restart the server. Note that this will
|
||||
destroy all your durable exchanges and queues, and all your persisted
|
||||
messages!
|
||||
|
||||
Care must be taken when upgrading a server that contains persisted
|
||||
messages. The persister log format has changed between RabbitMQ-1.3.0
|
||||
and this release. When RabbitMQ-1.4.0 first starts following an
|
||||
upgrade it will move the existing persister log to a backup file -
|
||||
check the log files for details. Thus the previously persisted
|
||||
messages are not lost, but neither are they replayed. Therefore it is
|
||||
recommended that the upgrade is performed only when there are no
|
||||
important persistent messages remaining.
|
||||
|
||||
Due to a bug in the rpm packaging, which has now been fixed, users
|
||||
with an existing rpm-based installation of the RabbitMQ server should
|
||||
first remove the rabbitmq-server package ('rpm -e rabbitmq-server')
|
||||
before proceeding with the normal upgrade.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Andrew Statsenko
|
||||
David Corcoran
|
||||
Dmitriy Samovskiy
|
||||
Holger Hoffstaette
|
||||
John Leuner
|
||||
Kyle Salasko
|
||||
Lars Bachmann
|
||||
Michael Arnoldus
|
||||
Petr Sturc
|
||||
Sean Treadway
|
|
@ -0,0 +1,143 @@
|
|||
Release: RabbitMQ 1.5.0
|
||||
Status : beta
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- support running on top of the latest Erlang/OTP release (R12B-5)
|
||||
- maintain effect visibility guarantees in cross-node routing
|
||||
- reduce likelihood of timeouts when channels interact with a large
|
||||
number of queues
|
||||
- graceful handling of some corner cases in abrupt client disconnect
|
||||
|
||||
enhancements
|
||||
- remove tickets and realms
|
||||
- improve scalability of queue and binding creation and deletion
|
||||
- add 'queue.unbind' command to protocol
|
||||
- disable Nagle for more consistent latency
|
||||
- throttle producers with 'channel.flow' when running low on memory
|
||||
Note that this feature is disabled by default; please see
|
||||
https://www.rabbitmq.com/admin-guide.html#memsup for details.
|
||||
- remove a few spurious errors in the logs
|
||||
- show the actual listening IP & port in logs
|
||||
- improve rabbitmqctl:
|
||||
- add a few useful info commands
|
||||
- add a 'reopen_logs' command to assist in log management
|
||||
- add a '-q' flag to suppress informational messages and thus
|
||||
facilitate post-processing of the output
|
||||
- write errors to stderr instead of stdout
|
||||
|
||||
Java client
|
||||
-----------
|
||||
bug fixes
|
||||
- eliminate several race condition in connection and channel closure
|
||||
that could result in deadlock
|
||||
- always respond to a server's 'connection.close' and 'channel.close'
|
||||
- prevent interference between interal locking on channels and
|
||||
application-level locking
|
||||
|
||||
enhancements
|
||||
- remove tickets and realms
|
||||
- support 'queue.unbind'
|
||||
- disable Nagle for more consistent latency
|
||||
- react to server-issued 'channel.flow' by (un)blocking producers
|
||||
- add channel.abort method to unconditionally and idempotently close a
|
||||
channel
|
||||
- complete the set of channel and connection close and abort methods
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- eliminate "Cannot access a disposed object" exception in connection
|
||||
closure and disposal
|
||||
- correct heartbeat logic to prevent spurious timeouts when not idling
|
||||
|
||||
enhancements
|
||||
- remove tickets and realms
|
||||
- support 'queue.unbind'
|
||||
- disable Nagle for more consistent latency
|
||||
- react to server-issued 'channel.flow' by (un)blocking producers
|
||||
- add IModel.abort method to unconditionally and idempotently close a
|
||||
channel
|
||||
- complete the set of channel and connection close and abort methods
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- correct locations of libraries et al on 64bit rpm systems
|
||||
|
||||
enhancements
|
||||
- detect upgrade from pre-1.5.0 and warn/ask user (under debian & rpm)
|
||||
- comply with debian and rpm packaging policies and guidelines
|
||||
- prevent accidental executing of scripts as non-root user under
|
||||
debian & rpm
|
||||
- read /etc/default/rabbitmq in scripts on Unix-y systems, with env
|
||||
vars taking precedence over vars set in that file and the defaults
|
||||
used by the scripts
|
||||
- prefix env vars with 'RABBITMQ_'
|
||||
- allow script execution from anywhere (not just the scripts' dir)
|
||||
- add script & instructions to start RabbitMQ as a Windows service
|
||||
- add 'status' command to init.d script under debian & rpm
|
||||
- automatic log rotation under debian & rpm
|
||||
- use simplejson.py instead of json.py in code generation, thus
|
||||
allowing use of Python 2.6
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
The database schema has changed between RabbitMQ-1.4.0 and this
|
||||
release. When the RabbitMQ server detects the presence of an old
|
||||
database, it moves it to a backup location, creates a fresh, empty
|
||||
database, and logs a warning.
|
||||
|
||||
If your RabbitMQ installation contains important data, such as user
|
||||
accounts, durable exchanges and queues, or persistent messages, then
|
||||
we recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Alister Morton
|
||||
Aman Gupta
|
||||
Andrius Norkaitis
|
||||
Barry Pedersen
|
||||
Benjamin Black
|
||||
Benjamin Polidore
|
||||
Brian Sullivan
|
||||
David Corcoran
|
||||
Dmitriy Samovskiy
|
||||
Edwin Fine
|
||||
Eran Sandler
|
||||
Esteve Fernandez
|
||||
Ezra Zygmuntowicz
|
||||
Ferret
|
||||
Gavin Bong
|
||||
Geoffrey Anderson
|
||||
Holger Hoffst<73>tte
|
||||
Jacek Korycki
|
||||
John Leuner
|
||||
Jonatan Kallus
|
||||
Jonathan McGee
|
||||
Kyle Sampson
|
||||
Leo Martins
|
||||
Maarten Engelen
|
||||
Nathan Woodhull
|
||||
Nigel Verdon
|
||||
Paul Jones
|
||||
Pete Kay
|
||||
Peter Kieltyka
|
||||
Sarah Jelinek
|
||||
Sean Treadway
|
||||
Steve Jenson
|
||||
Terry Jones
|
||||
Vadim Zaliva
|
||||
Valentino Volonghi
|
|
@ -0,0 +1,81 @@
|
|||
Release: RabbitMQ 1.5.1
|
||||
Status : final
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- handle race condition between routing and queue deletion that could
|
||||
cause errors on message publication
|
||||
- the default settings for RABBITMQ_SERVER_ERL_ARGS were not taken
|
||||
into account, resulting in decreased network performance
|
||||
- add workaround for the Erlang/OTP bug OTP-7025, which caused errors
|
||||
in topic routing in Erlang/OTP versions older than R12B-1
|
||||
- display the nodes of queue and connection processes in rabbitmqctl's
|
||||
list_{queues,connections} command. Previously we displayed pids,
|
||||
which was broken and not particularly useful.
|
||||
|
||||
enhancements
|
||||
- enable 'channel.flow'-based producer throttling by default on Linux
|
||||
- include stack traces in error reports in rabbit.log
|
||||
- speed up rabbitmqctl and rabbitmq-multi
|
||||
|
||||
Java client
|
||||
-----------
|
||||
no significant changes
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- handle race condition in client-initiated connection closure that
|
||||
could result in an OperationInterruptedException
|
||||
|
||||
enhancements
|
||||
- re-enable heartbeating by default
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- fix bug that caused removal of RPMs to be incomplete
|
||||
- produce separate RPMs for SuSE-like systems to resolve various
|
||||
incompatibilities
|
||||
- rename BUILD to README in order to prevent build failures on systems
|
||||
with case-insensitive file naming (such as OS X)
|
||||
|
||||
enhancements
|
||||
- minor tweaks in Debian and RPM packaging for better compliance with
|
||||
packaging guidelines
|
||||
- better handling of errors encountered during code generation
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
No special precautions are necessary when upgrading from
|
||||
RabbitMQ-1.5.0.
|
||||
|
||||
When upgrading from earlier releases, note that the database schema
|
||||
has changed in RabbitMQ-1.5.x. When the RabbitMQ server detects the
|
||||
presence of an old database, it moves it to a backup location, creates
|
||||
a fresh, empty database, and logs a warning.
|
||||
|
||||
If your RabbitMQ installation contains important data, such as user
|
||||
accounts, durable exchanges and queues, or persistent messages, then
|
||||
we recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Aymerick Jéhanne
|
||||
Chuck Remes
|
||||
Ezra Zygmuntowicz
|
||||
Glenn Robuck
|
||||
Mathias Gug
|
||||
Michael Barker
|
|
@ -0,0 +1,79 @@
|
|||
Release: RabbitMQ 1.5.2
|
||||
Status : final
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- prevent the shell from attempting to perform path expansion on vars
|
||||
in the startup scripts, which was resulting in errors when starting
|
||||
rabbit on some systems.
|
||||
- make guid generation independent of persister, thus preventing
|
||||
timeouts when the persister is busy
|
||||
- get scripts to source configuration from /etc/rabbitmq/rabbitmq.conf
|
||||
rather than /etc/default/rabbitmq, since the latter is reserved for
|
||||
init.d scripts.
|
||||
|
||||
Java client
|
||||
-----------
|
||||
bug fixes
|
||||
- eliminate race condition in server-initiated channel closure that
|
||||
could lead to deadlock
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- eliminate race condition in server-initiated channel closure that
|
||||
could lead to deadlock
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
enhancements
|
||||
- minor tweaks in Debian and RPM packaging for better compliance with
|
||||
packaging guidelines
|
||||
- place wrapper scripts for rabbitmq-server and rabbitmq-multi
|
||||
alongside the rabbitmqctl wrapper in /usr/sbin
|
||||
- do not start the server by default on RPM-based systems, in order to
|
||||
comply with common practice and guidelines
|
||||
- suppress stdout in logrotate scripts, to keep cron et al happy
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
The place from which the server startup and control scripts source
|
||||
configuration information on Unix systems has changed from
|
||||
/etc/default/rabbitmq to /etc/rabbitmq/rabbitmq.conf. If you have been
|
||||
using the former, just move the file to the latter location. The
|
||||
/etc/default/rabbitmq file (/etc/sysconfig/rabbitmq on RPM-based
|
||||
systems) is still being sourced by the init.d script, but it should
|
||||
only contain settings directly affecting the behaviour of the init.d
|
||||
script, such as NODE_COUNT.
|
||||
|
||||
When upgrading from releases earlier than RabbitMQ-1.5.x, note that
|
||||
the database schema has changed. When the RabbitMQ server detects the
|
||||
presence of an old database, it moves it to a backup location, creates
|
||||
a fresh, empty database, and logs a warning.
|
||||
|
||||
If your RabbitMQ installation contains important data, such as user
|
||||
accounts, durable exchanges and queues, or persistent messages, then
|
||||
we recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Billy Chasen
|
||||
Charl Matthee
|
||||
Christopher Hoover
|
||||
Darien Kindlund
|
||||
Dmitriy Samovskiy
|
||||
Jason Williams
|
||||
Mathias Gug
|
||||
Peter Lemenkov
|
||||
Phil Stubbings
|
|
@ -0,0 +1,79 @@
|
|||
Release: RabbitMQ 1.5.3
|
||||
Status : final
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- prevent the shell from attempting to perform path expansion on vars
|
||||
in the startup scripts, which was resulting in errors when starting
|
||||
rabbit on some systems.
|
||||
- make guid generation independent of persister, thus preventing
|
||||
timeouts when the persister is busy
|
||||
- get scripts to source configuration from /etc/rabbitmq/rabbitmq.conf
|
||||
rather than /etc/default/rabbitmq, since the latter is reserved for
|
||||
init.d scripts.
|
||||
|
||||
Java client
|
||||
-----------
|
||||
bug fixes
|
||||
- eliminate race condition in server-initiated channel closure that
|
||||
could lead to deadlock
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- eliminate race condition in server-initiated channel closure that
|
||||
could lead to deadlock
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
enhancements
|
||||
- minor tweaks in Debian and RPM packaging for better compliance with
|
||||
packaging guidelines
|
||||
- place wrapper scripts for rabbitmq-server and rabbitmq-multi
|
||||
alongside the rabbitmqctl wrapper in /usr/sbin
|
||||
- do not start the server by default on RPM-based systems, in order to
|
||||
comply with common practice and guidelines
|
||||
- suppress stdout in logrotate scripts, to keep cron et al happy
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
The place from which the server startup and control scripts source
|
||||
configuration information on Unix systems has changed from
|
||||
/etc/default/rabbitmq to /etc/rabbitmq/rabbitmq.conf. If you have been
|
||||
using the former, just move the file to the latter location. The
|
||||
/etc/default/rabbitmq file (/etc/sysconfig/rabbitmq on RPM-based
|
||||
systems) is still being sourced by the init.d script, but it should
|
||||
only contain settings directly affecting the behaviour of the init.d
|
||||
script, such as NODE_COUNT.
|
||||
|
||||
When upgrading from releases earlier than RabbitMQ-1.5.x, note that
|
||||
the database schema has changed. When the RabbitMQ server detects the
|
||||
presence of an old database, it moves it to a backup location, creates
|
||||
a fresh, empty database, and logs a warning.
|
||||
|
||||
If your RabbitMQ installation contains important data, such as user
|
||||
accounts, durable exchanges and queues, or persistent messages, then
|
||||
we recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Billy Chasen
|
||||
Charl Matthee
|
||||
Christopher Hoover
|
||||
Darien Kindlund
|
||||
Dmitriy Samovskiy
|
||||
Jason Williams
|
||||
Mathias Gug
|
||||
Peter Lemenkov
|
||||
Phil Stubbings
|
|
@ -0,0 +1,81 @@
|
|||
Release: RabbitMQ 1.5.4
|
||||
Status : final
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- starting a RabbitMQ instance that contains a large number
|
||||
(thousands) durable exchanges, queues or bindings now takes just a
|
||||
few seconds instead of several minutes.
|
||||
- on Windows, rabbitmq-multi.bat can now start RabbitMQ even when the
|
||||
path to the startup script contains spaces, whereas previously that
|
||||
would fail.
|
||||
- on Windows, the rabbitmqctl.bat and rabbitmq-multi.bat scripts now
|
||||
report errors correctly instead of swallowing them.
|
||||
|
||||
enhancements
|
||||
- make the default settings of the various env vars which can be set
|
||||
in rabbitmq.conf visible to that script, thus permitting more
|
||||
advanced manipulation of the settings than was previously possible.
|
||||
- permit configuration of rabbitmqctl's Erlang start parameters by
|
||||
sourcing rabbitmq.conf from the script and adding some env vars.
|
||||
- on Windows, rabbitmq-server.bat and rabbitmq-multi.bat can now be
|
||||
configured with the RABBITMQ_{SERVER,MULTI}_{ERL,START}_ARGS env
|
||||
vars.
|
||||
|
||||
Java client
|
||||
-----------
|
||||
no changes
|
||||
|
||||
.net client
|
||||
-----------
|
||||
no changes
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- correct paths in 64-bit RPMs; the paths got broken in the 1.5.3
|
||||
release, preventing the server from starting
|
||||
- in the Debian and RPM packages, set the current working dir of the
|
||||
various scripts to /var/lib/rabbitmq instead of /. The latter was
|
||||
preventing crash dumps from being written.
|
||||
- fix BSD incompatibility in 'make srcdist'
|
||||
|
||||
enhancements
|
||||
- minor tweaks in Debian and RPM packaging for better compliance with
|
||||
packaging guidelines
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
When upgrading from releases earlier than 1.5.3, note that the place
|
||||
from which the server startup and control scripts source configuration
|
||||
information on Unix systems has changed from /etc/default/rabbitmq to
|
||||
/etc/rabbitmq/rabbitmq.conf. If you have been using the former, just
|
||||
move the file to the latter location. The /etc/default/rabbitmq file
|
||||
(/etc/sysconfig/rabbitmq on RPM-based systems) is still being sourced
|
||||
by the init.d script, but it should only contain settings directly
|
||||
affecting the behaviour of the init.d script, such as NODE_COUNT.
|
||||
|
||||
When upgrading from releases earlier than 1.5.x, note that the
|
||||
database schema has changed. When the RabbitMQ server detects the
|
||||
presence of an old database, it moves it to a backup location, creates
|
||||
a fresh, empty database, and logs a warning. If your RabbitMQ
|
||||
installation contains important data, such as user accounts, durable
|
||||
exchanges and queues, or persistent messages, then we recommend you
|
||||
contact rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Alex Clemesha
|
||||
Aymerick Jehanne
|
||||
John Leuner
|
|
@ -0,0 +1,91 @@
|
|||
Release: RabbitMQ 1.5.5
|
||||
Status : final
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- in a clustered setup, bindings to durable queues are now correctly
|
||||
recovered when a queue's node restarts.
|
||||
- node failure in a clustered setup could trigger premature exchange
|
||||
auto-deletion
|
||||
- the cluster config file name was inadvertently changed from
|
||||
rabbitmq_cluster.config to cluster.config in release 1.5.4. It has
|
||||
now been changed back.
|
||||
- when attempting to delete a non-existing exchange, return 404 (not
|
||||
found), as defined by the spec, rather than 541 (internal error)
|
||||
- correct some type specs to keep dialyzer happy
|
||||
|
||||
enhancements
|
||||
- display the node name and database dir on startup
|
||||
|
||||
Java client
|
||||
-----------
|
||||
bug fixes
|
||||
- correct semantics of connection.tune's channel-max parameter - it
|
||||
determines the range of usable channel numbers - from 1 to
|
||||
channel-max, inclusive. Previously the highest channel number we
|
||||
allowed was channel-max - 1.
|
||||
- correct misleading javadoc for GetResponse.getMessageCount().
|
||||
|
||||
enhancements
|
||||
- improve error reporting
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- correct semantics of connection.tune's channel-max parameter - it
|
||||
determines the range of usable channel numbers - from 1 to
|
||||
channel-max, inclusive. Previously the highest channel number we
|
||||
allowed was channel-max - 1.
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- work around absence of escript in path on some Fedora/EPEL
|
||||
installations
|
||||
- make build work with python 2.4, which Fedore/EPEL 5 is on
|
||||
- work around possible bug in Debian packaging of Erlang OTP R13,
|
||||
which misses a dependency on os-mon in erlang-nox
|
||||
|
||||
enhancements
|
||||
- minor tweaks in RPM packaging for better compliance with packaging
|
||||
guidelines
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
When upgrading from releases earlier than 1.5.3, note that the place
|
||||
from which the server startup and control scripts source configuration
|
||||
information on Unix systems has changed from /etc/default/rabbitmq to
|
||||
/etc/rabbitmq/rabbitmq.conf. If you have been using the former, just
|
||||
move the file to the latter location. The /etc/default/rabbitmq file
|
||||
(/etc/sysconfig/rabbitmq on RPM-based systems) is still being sourced
|
||||
by the init.d script, but it should only contain settings directly
|
||||
affecting the behaviour of the init.d script, such as NODE_COUNT.
|
||||
|
||||
When upgrading from releases earlier than 1.5.x, note that the
|
||||
database schema has changed. When the RabbitMQ server detects the
|
||||
presence of an old database, it moves it to a backup location, creates
|
||||
a fresh, empty database, and logs a warning. If your RabbitMQ
|
||||
installation contains important data, such as user accounts, durable
|
||||
exchanges and queues, or persistent messages, then we recommend you
|
||||
contact rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
We would like to thank the following individuals for submitting bug
|
||||
reports and feedback that we incorporated into this release:
|
||||
|
||||
Aaron Cline
|
||||
Bradford Cross
|
||||
John Leuner
|
||||
Levi Greenspan
|
||||
Peter Lemenkov
|
||||
Rob Golkosky
|
||||
Steve Marah
|
|
@ -0,0 +1,86 @@
|
|||
Release: RabbitMQ 1.6.0
|
||||
Status : final
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- eliminate potential memory leak of transactionally published
|
||||
messages in certain system errors
|
||||
- prevent possible starvation of some consumers on channels that get
|
||||
temporarily blocked due to backlogs
|
||||
- do not send more messages to backlogged channels when accepting a
|
||||
new consumer
|
||||
- prevent possible message reordering in the event of temporary node
|
||||
failure in a clustered setup
|
||||
- return 'not_found' error in all cases of 'queue.unbind' attempting
|
||||
to remove a non-existing binding
|
||||
|
||||
enhancements
|
||||
- implement AMQP's basic.qos' channel prefetch count limiting
|
||||
- implement AMQP 0-9/0-9-1's headers exchange type
|
||||
- introduce a permissions system which allows fine-grained access
|
||||
control on resources involved in AMQP operations. See
|
||||
https://www.rabbitmq.com/admin-guide.html#access-control for details
|
||||
- introduce 'alternate exchanges' to handle messages which are
|
||||
otherwise unroutable. See
|
||||
https://www.rabbitmq.com/extensions.html#alternate-exchange for
|
||||
details
|
||||
- improve performance and stability under high load
|
||||
- reduce memory consumption
|
||||
- prefix all mnesia tables with "rabbit_" in order to prevent name
|
||||
clashes with other Erlang applications, in particular ejabberd
|
||||
- handle rabbitmqctl commands with higher priority, thus ensuring that
|
||||
answers are returned promptly even under high load
|
||||
- reduce severity of "connection closed abruptly" log event from
|
||||
'error' to 'warning'
|
||||
|
||||
Java client
|
||||
-----------
|
||||
enhancements
|
||||
- support extended list of table field types
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- make unit tests work under .NET 2.0
|
||||
|
||||
enhancements
|
||||
- rename public fields to avoid name clashes with properties that trip
|
||||
up tools like Powershell
|
||||
- suppress inclusion of spec comments in generated code due to
|
||||
licensing issues
|
||||
- generate strong named (i.e. signed) assemblies. See the bottom of
|
||||
https://www.rabbitmq.com/dotnet.html for details
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
enhancements
|
||||
- introduce wrapper scripts in macports, as in the Debian and RPM
|
||||
packaging, which ensure the real scripts are run as the right
|
||||
('rabbitmq') user
|
||||
- remove build-time dependency on mnesia
|
||||
- trim Debian Erlang package dependencies
|
||||
- auto-generate the module list in rabbit.app, thus ensuring it is
|
||||
always up to date
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
|
||||
When upgrading from releases earlier than 1.5.3, note that the place
|
||||
from which the server startup and control scripts source configuration
|
||||
information on Unix systems has changed from /etc/default/rabbitmq to
|
||||
/etc/rabbitmq/rabbitmq.conf. If you have been using the former, just
|
||||
move the file to the latter location. The /etc/default/rabbitmq file
|
||||
(/etc/sysconfig/rabbitmq on RPM-based systems) is still being sourced
|
||||
by the init.d script, but it should only contain settings directly
|
||||
affecting the behaviour of the init.d script, such as NODE_COUNT.
|
||||
|
||||
The database schema has changed. When the RabbitMQ server detects the
|
||||
presence of an old database, it moves it to a backup location, creates
|
||||
a fresh, empty database, and logs a warning. If your RabbitMQ
|
||||
installation contains important data, such as user accounts, durable
|
||||
exchanges and queues, or persistent messages, then we recommend you
|
||||
contact rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
|
@ -0,0 +1,105 @@
|
|||
Release: RabbitMQ 1.7.0
|
||||
Status : beta
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- prevent timeouts of rabbitmqctl when the server is busy
|
||||
- prevent load avg calculation from failing under high load, which
|
||||
could cause connection establishment to break
|
||||
- remove channel closing timeout since it can cause a protocol
|
||||
violation
|
||||
- prevent client disconnects from sometimes resulting in enormous
|
||||
error log entries and causing considerable CPU and memory pressure
|
||||
|
||||
enhancements
|
||||
- support SSL natively - see <https://www.rabbitmq.com/ssl.html>
|
||||
- add a plugin mechanism to provide a framework for developing rabbit
|
||||
extensions and managing their installation - see
|
||||
<https://www.rabbitmq.com/plugin-development.html>
|
||||
- support configuration via erlang config file, which has fewer
|
||||
escaping and formatting requirements than the other configuration
|
||||
mechanisms - see <https://www.rabbitmq.com/install.html#configfile>
|
||||
- display diagnostics when rabbitmqctl fails with a badrpc error,
|
||||
making it easier to track down the cause
|
||||
- improve queue hibernation logic to reduce system load in
|
||||
pathological scenarios, like invocations of 'rabbitmqctl
|
||||
list_queues' at one second intervals
|
||||
- increase consumer throughput under high load
|
||||
- improve performance of channel and connection termination
|
||||
- escape output of all rabbitmqctl commands
|
||||
- react to memory pressure more quickly
|
||||
- more graceful handling of some rare error conditions during
|
||||
connection establishment, preventing spurious error log entries
|
||||
- display location of application descriptor on startup, to make it
|
||||
easy to locate rabbit installations
|
||||
- in 'rabbitmqctl list_connections', display the connection state by
|
||||
default, and no longer shows absent usernames as 'none', thus
|
||||
avoiding possible confusion
|
||||
- add hook mechanism for altering/augmenting broker behaviour
|
||||
- add cute banner :)
|
||||
|
||||
Java client
|
||||
-----------
|
||||
bug fixes
|
||||
- work around Java Hotspot bug that could cause channel number
|
||||
allocation to return null
|
||||
|
||||
enhancements
|
||||
- disable heartbeats by default
|
||||
- add queuePurge to API
|
||||
- make content properties (deep) cloneable
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- fix a number of race conditions in the Subscription close/shutdown
|
||||
logic, making it safe to close Subscriptions from any thread
|
||||
- allow SharedQueues (and thus QueuingBasicConsumer and Subscription)
|
||||
to drain messages after close
|
||||
|
||||
enhancements
|
||||
- disable heartbeats by default
|
||||
- make content properties (deep) cloneable
|
||||
- add some more AmqpTcpEndpoint constructors to API
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- prevent purging of server debian and RPM packages from failing due
|
||||
to epmd still running
|
||||
- fix escaping/quoting corner cases in server control wrapper scripts
|
||||
- in RPM packages, eliminate spurious removal of server startup from
|
||||
all run levels during upgrade
|
||||
|
||||
enhancements
|
||||
- install server Erlang app in RabbitMQ-specific directory tree
|
||||
(e.g. /usr/lib/rabbitmq) rather than the Erlang/OTP tree. This
|
||||
allows OTP to be upgraded w/o breaking rabbit.
|
||||
- package .net client in Windows installer
|
||||
- include .net client in complete windows bundle
|
||||
- switch .net client build from nant to msbuild and include VS
|
||||
solution
|
||||
- update complete windows bundle from Erlang/OTP R11B5 to R12B5
|
||||
- make installation work under MacPorts 1.8.0
|
||||
- make server buildable under freebsd
|
||||
- permit configuration of server startup log locations in
|
||||
/etc/default/rabbitmq
|
||||
- improve formatting of man pages
|
||||
- do not stomp on RABBITMQ_* environment variables in server Makefile
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
The database schema has not changed since the 1.6.0 release, so user
|
||||
accounts, durable exchanges and queues, and persistent messages will
|
||||
all be retained during the upgrade.
|
||||
|
||||
If, however, you are upgrading from a release prior to 1.6.0, when the
|
||||
RabbitMQ server detects the presence of an old database, it moves it
|
||||
to a backup location, creates a fresh, empty database, and logs a
|
||||
warning. If your RabbitMQ installation contains important data then we
|
||||
recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
|
@ -0,0 +1,123 @@
|
|||
Release: RabbitMQ 1.7.1
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- correct various quoting errors in the Windows scripts that caused
|
||||
them to fail
|
||||
- ensure that stalled ssl negotiation do not block further ssl
|
||||
connection acceptance
|
||||
- prohibit the (re)declaration of queues that reside on node that is
|
||||
currently stopped, thus preventing message loss or duplication when
|
||||
that node recovers
|
||||
- eliminate race condition in queue auto-deletion, ensuring that it
|
||||
has completed before channel/connection closure completes
|
||||
- ensure that ack processing cannot stall under heavy load when using
|
||||
basic.qos
|
||||
- make plug-ins and config files work when running as a Windows
|
||||
service
|
||||
- write crash dumps to a sensible location
|
||||
(%APPDATA%\RabbitMQ\erl_crash.dump by default) when running as a
|
||||
Windows service
|
||||
- get the Windows service to use Erlang/OTP R12B-5 by default, since
|
||||
that, rather than R11B-5, is what we ship in the Windows bundle
|
||||
- correct formatting of plug-in activation errors
|
||||
- make column order of 'rabbitmqctl list_bindings' match the
|
||||
documentation
|
||||
- do not escape spaces in rabbitmqctl output
|
||||
- prevent vars declared in Windows scripts from polluting the
|
||||
environment
|
||||
- clean up properly when the rabbit Erlang application is stopped,
|
||||
thus making it more well-behaved and easier to embed
|
||||
|
||||
enhancements
|
||||
- make the various scripts work with complete short node names
|
||||
- improve memory monitoring and producer throttling. See the updated
|
||||
documentation at https://www.rabbitmq.com/extensions.html#memsup.
|
||||
- make tcp_listeners configurable via the rabbitmq.config file
|
||||
- use the base64 module instead of ssl_base64 if we can, since the
|
||||
latter is sometimes missing from Erlang installations
|
||||
- display pids instead of just nodes in 'rabbitmqctl list_connections'
|
||||
and 'rabbitmqctl list_queues', to aid troubleshooting
|
||||
- add capability to display the transmitted client_properties in
|
||||
'rabbitmqctl list_connections'
|
||||
- extend codec with array type ('A')
|
||||
- add proper headers to auto-generated code
|
||||
|
||||
Java client
|
||||
-----------
|
||||
bug fixes
|
||||
- eliminate race in connection establishment that could cause errors
|
||||
to be reported in different ways
|
||||
- fix quoting in runjava.bat to stop it from tripping over exotic
|
||||
Windows paths
|
||||
|
||||
enhancements
|
||||
- enforce codec size limits, specifically on AMQP's shortstr type,
|
||||
thus preventing the creation of invalid AMQP protocol frames
|
||||
- add support for basic.recover in the API
|
||||
- name threads, to aid troubleshooting
|
||||
- allow applications to adjust socket configuration, e.g. buffer sizes
|
||||
- extend codec with array type ('A')
|
||||
- throw a more informative exception (UnknownChannelException) when
|
||||
receiving a frame for an unknown channel
|
||||
- add proper headers to auto-generated code
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- close connections on app domain unload, thus preventing spurious
|
||||
errors and possible connection leaks when the client is run in
|
||||
certain app containers, e.g. IIS
|
||||
- close socket on ssl upgrade error, thus plugging a socket leak
|
||||
- resolve various bugs in the ssl negotiation code that cause it to
|
||||
fail on .Net proper (though not mono)
|
||||
|
||||
enhancements
|
||||
- improve performance by introducing I/O buffering
|
||||
- permit ssl connections that do not validate the server certificate
|
||||
- improve standard display of BrokerUnreachableException
|
||||
- make SharedQueue implement IEnumerable and allow multiple concurrent
|
||||
enumerators per instance
|
||||
- switch the code gen to the BSD-licensed version of the AMQP spec
|
||||
- extend codec with array type ('A')
|
||||
- add proper headers to auto-generated code
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- stop Debian package purge from failing after plug-in (de)activation
|
||||
- when upgrading the rpm package, do not remove rabbit from any
|
||||
runlevels
|
||||
- fix error handling in rabbit.app generation, ensuring that errors
|
||||
are reported rather than written to the generated file
|
||||
- during Debian package removal, only kill epmd if it was started by
|
||||
the rabbitmq user, in order to reduce the likelihood of interference
|
||||
with other Erlang applications
|
||||
- resolve minor incompatibility with some versions of 'echo' that
|
||||
could result in spurious '-e's appearing in script error messages
|
||||
|
||||
enhancements
|
||||
- make MacPorts package work on Snow Leopard
|
||||
- streamline dependencies in MacPorts package
|
||||
- automate generation of MacPorts package and create a RabbitMQ
|
||||
MacPorts repository - see https://www.rabbitmq.com/macports.html
|
||||
- mirror downloads onto Amazon Cloudfront, for better availability and
|
||||
download speed
|
||||
- allow 'rabbitmq' user to execute the various wrapper scripts
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
The database schema has not changed since the 1.6.0 release, so user
|
||||
accounts, durable exchanges and queues, and persistent messages will
|
||||
all be retained during the upgrade.
|
||||
|
||||
If, however, you are upgrading from a release prior to 1.6.0, when the
|
||||
RabbitMQ server detects the presence of an old database, it moves it
|
||||
to a backup location, creates a fresh, empty database, and logs a
|
||||
warning. If your RabbitMQ installation contains important data then we
|
||||
recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
|
@ -0,0 +1,75 @@
|
|||
Release: RabbitMQ 1.7.2
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- fix a number of problems with memory monitoring under Windows,
|
||||
including compatibility issues with versions of Erlang/OTP older
|
||||
than R13, and 64-bit versions of Windows. See the updated
|
||||
documentation at https://www.rabbitmq.com/extensions.html#memsup
|
||||
- correct various path escaping bugs under Windows that could result
|
||||
in RabbitMQ failing to start
|
||||
- make 'rabbitmq-multi start_all <n>' work again for n>1
|
||||
- issuing a basic.qos when there are outstanding acks can no longer
|
||||
result in a higher limit than requested
|
||||
- enforce codec size limits, thus preventing the server from sending
|
||||
invalid AMQP frames
|
||||
|
||||
enhancements
|
||||
- add rabbitmqctl list_channels and list_consumers commands, and add
|
||||
exclusivity information to list_queues. Also introduce a
|
||||
close_connection command to allow an administrator to selectively
|
||||
terminate client connections. See the updated admin guide at
|
||||
https://www.rabbitmq.com/admin-guide.html for details on these new
|
||||
features.
|
||||
- remove the explicit setting of TCP buffer sizes in the server, thus
|
||||
allowing auto-(re)sizing to occur. This generally results in
|
||||
substantially improved throughput over high-latency links, and makes
|
||||
manual fine-tuning easier.
|
||||
- introduce declarative boot sequencing, which allows plugins to be
|
||||
started at arbitrary chosen points during the sequence
|
||||
|
||||
Java client
|
||||
-----------
|
||||
bug fixes
|
||||
- ensure that QueuingConsumer throws an ShutdownSignalException in
|
||||
*all* consuming threads, not just one
|
||||
- fix race conditions in 'tracer' tool that could cause it to fail
|
||||
|
||||
enhancements
|
||||
- make exception stack traces more meaningful
|
||||
- allow overriding of several RpcClient methods, for easier extension
|
||||
and re-use
|
||||
- improve performance of channel creation for high channel counts
|
||||
- improve performance of 'tracer' tool
|
||||
- add option to 'tracer' tool to suppress content bodies, which is
|
||||
useful for tracing connections carrying a high data volume
|
||||
- better exception reporting in 'tracer' tool
|
||||
|
||||
.net client
|
||||
-----------
|
||||
enhancements
|
||||
- improve performance of channel creation for high channel counts
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- under macports, ensure env var settings are passed to the various
|
||||
startup and control scripts
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
The database schema has not changed since the 1.6.0 release, so user
|
||||
accounts, durable exchanges and queues, and persistent messages will
|
||||
all be retained during the upgrade.
|
||||
|
||||
If, however, you are upgrading from a release prior to 1.6.0, when the
|
||||
RabbitMQ server detects the presence of an old database, it moves it
|
||||
to a backup location, creates a fresh, empty database, and logs a
|
||||
warning. If your RabbitMQ installation contains important data then we
|
||||
recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
|
@ -0,0 +1,208 @@
|
|||
Release: RabbitMQ 1.8.0
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- prevent a change in host name from preventing RabbitMQ from being
|
||||
restarted.
|
||||
- ensure that durable exclusive queues do not survive a restart of the
|
||||
broker.
|
||||
- fix a race condition that could occur when concurrently declaring
|
||||
exclusive queues.
|
||||
- ensure that queues being recovered by a node in a cluster cannot be
|
||||
accessed via other nodes until the queue is fully initialised.
|
||||
- prevent bursts of declarations or deletions of queues or exchanges
|
||||
from exhausting mnesia's transactional capacity.
|
||||
- prevent bursts of connections from exhausting TCP backlog buffers.
|
||||
- various corrections to documentation to correct discrepancies
|
||||
between the website, the man pages, and the commands' usage outputs.
|
||||
|
||||
enhancements
|
||||
------------
|
||||
- introduce a pluggable exchange type API permitting plugins to the
|
||||
broker to define new exchange types which can then be used by
|
||||
clients.
|
||||
- introduce a backing queue API permitting plugins to the broker to
|
||||
define new ways in which messages can be stored.
|
||||
- several semantic changes to bring the behaviour inline with the AMQP
|
||||
0-9-1 spec:
|
||||
+ honour many of the queue exclusivity requirements for AMQP 0-9-1,
|
||||
such as queue redeclaration, basic.get, queue.bind and
|
||||
queue.unbind.
|
||||
+ honour exchange and queue equivalence requirements for AMQP 0-9-1,
|
||||
especially for queue and exchange redeclaration.
|
||||
+ ensure that exclusive queues are synchronously deleted before the
|
||||
connection fully closes.
|
||||
+ permit durable queues to be bound to transient exchanges.
|
||||
+ enforce detection and raising exceptions due to invalid and reused
|
||||
delivery-tags in basic.ack rigorously
|
||||
+ queue.purge now does not remove unacknowledged messages.
|
||||
- require clients to respond to channel.flow messages within 10
|
||||
seconds to avoid an exception being raised and more rigorously deal
|
||||
with clients that disobey channel.flow messages. See
|
||||
https://www.rabbitmq.com/extensions.html#memsup
|
||||
- the server now supports the client sending channel.flow messages to
|
||||
temporarily halt the flow of deliveries to the client.
|
||||
- optimise cross-node routing of messages in a cluster scenario whilst
|
||||
maintaining visibility guarantees.
|
||||
- ensure that clients who present invalid credentials cannot flood the
|
||||
broker with requests.
|
||||
- drop support for versions of Erlang older than R12B-3.
|
||||
- ensure that the minimum number of frames are used to deliver
|
||||
messages, regardless of incoming and outgoing frame sizes.
|
||||
- display the current version of Erlang when booting Rabbit, and
|
||||
ensure the version is sufficiently youthful.
|
||||
- work around some name resolver issues, especially under Windows.
|
||||
- introduce a Pacemaker OCF script (and then fix it, thanks to patches
|
||||
by Florian Haas) to permit RabbitMQ to be used in basic
|
||||
active/passive HA scenarios (see
|
||||
https://www.rabbitmq.com/pacemaker.html).
|
||||
|
||||
|
||||
java client
|
||||
-----------
|
||||
bug fixes
|
||||
- fix a race condition when closing channels which could lead to the
|
||||
same channel being closed twice.
|
||||
- MulticastMain could calculate negative rates, due to integer
|
||||
wrapping.
|
||||
- be consistent about naming conventions.
|
||||
|
||||
enhancements
|
||||
- Java client is now available via Maven Central.
|
||||
- redesign the ConnectionFactory to be more idiomatic.
|
||||
- expose server properties in connection.start.
|
||||
- allow additional client properties to be set in connection.start_ok.
|
||||
- attempt to infer authentication failures and construct appropriate
|
||||
exceptions.
|
||||
- MulticastMain now logs returned publishes.
|
||||
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- prevent memory leak due to DomainUnload event handler.
|
||||
- improvements to catching connections which are timing out.
|
||||
- ensure explicitly numbered closed channels return their channel
|
||||
number to the pool correctly.
|
||||
- removed artificial limitation on maximum incoming message size.
|
||||
|
||||
enhancements
|
||||
- expose server properties in connection.start.
|
||||
- allow additional client properties to be set in connection.start_ok.
|
||||
- attempt to infer authentication failures and construct appropriate
|
||||
exceptions.
|
||||
|
||||
|
||||
code generation
|
||||
---------------
|
||||
enhancements
|
||||
- permit multiple specifications to easily be combined and merged.
|
||||
- permit any number of different "actions" in code generation.
|
||||
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- stop the INSTALL file from being installed in the wrong place by the
|
||||
Debian packages.
|
||||
|
||||
enhancements
|
||||
- source rpm (.src.rpm) packages are now available
|
||||
- rpm packages are now noarch, matching the debs
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
The database schema and the format in which persistent messages are
|
||||
stored have both changed since the last release (1.7.2). When
|
||||
starting, the RabbitMQ server will detect the existence of an old
|
||||
database and will move it to a backup location, before creating a
|
||||
fresh, empty database, and will log a warning. If your RabbitMQ
|
||||
installation contains important data then we recommend you contact
|
||||
rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
||||
|
||||
|
||||
Important notes on the AMQP 0-9-1 semantic changes
|
||||
==================================================
|
||||
|
||||
This release incorporates a number of semantic changes to the broker
|
||||
behaviour which bring the broker more in-line with the AMQP 0-9-1
|
||||
specification. We don't think any of these changes are going to be a
|
||||
big problem for anyone, and will probably be irrelevant for most
|
||||
people. In almost all cases they're tightening up or tidying up edge
|
||||
cases where the 0-8 spec was incomplete or specified something
|
||||
unhelpful. However, it's probably worth reading the list below to make
|
||||
absolutely sure you're not depending on any of our existing weird
|
||||
behaviour.
|
||||
|
||||
|
||||
Reuse of delivery tags
|
||||
----------------------
|
||||
|
||||
In previous versions of RabbitMQ, you could ack the same message with
|
||||
the same delivery tag multiple times. In 1.8.0 this will cause a
|
||||
not-found exception. Note that if a message is redelivered for any
|
||||
reason it will get a new delivery tag so you can ack it again.
|
||||
|
||||
|
||||
Exchange equivalence
|
||||
--------------------
|
||||
|
||||
In previous versions of RabbitMQ you could actively declare an
|
||||
exchange with one set of durable and auto-delete parameters, then
|
||||
actively declare it again with different parameters and get the same
|
||||
exchange back. This now causes a precondition_failed exception, as it
|
||||
would if the type does not match. Note that with the old behaviour the
|
||||
exchange did not actually change to match the new parameters; you just
|
||||
got back something that was not what you asked for.
|
||||
|
||||
In previous versions, when passively declaring an exchange, the type
|
||||
parameter was checked (but not the durable and auto-delete
|
||||
parameters). Now only the name is checked. Passive declaration cannot
|
||||
create an exchange, and exchanges are only identified by their
|
||||
name. Therefore it does not make sense to require the other parameters
|
||||
of exchange.declare to match the exchange declaration in the passive
|
||||
case.
|
||||
|
||||
|
||||
Queue equivalence
|
||||
-----------------
|
||||
|
||||
Similarly, when actively redeclaring a queue you could vary the
|
||||
durable and auto-delete parameters and get back a queue which did not
|
||||
match what you asked for. Again, this is now causes a
|
||||
precondition_failed exception. Likewise, passive declaration of
|
||||
queues only needs to match on the queue name, not any other
|
||||
parameters.
|
||||
|
||||
|
||||
Purging unacknowledged messages
|
||||
-------------------------------
|
||||
|
||||
When queue.purge is called, messages which had been send but not
|
||||
acknowledged used to be purged. Now they are not. This makes much more
|
||||
sense as consumers from a queue may have no idea whether or not a
|
||||
queue has been purged by some other client.
|
||||
|
||||
|
||||
Binding durable queues to transient exchanges
|
||||
---------------------------------------------
|
||||
|
||||
This used not to be permitted. Now it is. The binding is considered
|
||||
transient.
|
||||
|
||||
|
||||
Queue exclusivity enforcement
|
||||
-----------------------------
|
||||
|
||||
In previous versions of RabbitMQ, an exclusive queue could still be
|
||||
accessed by other connections for (un)binding or basic.get. This is now
|
||||
not permitted.
|
||||
|
||||
Also, an exclusive queue would continue to exist for a short time after
|
||||
the connection was closed. It's now deleted while the connection is
|
||||
being closed (assuming that's happening in an orderly manner).
|
|
@ -0,0 +1,69 @@
|
|||
Release: RabbitMQ 1.8.1
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- unbinding from an auto-delete exchange produced an error
|
||||
- the message count reported when declaring a queue was incorrect under rare
|
||||
conditions
|
||||
- it was possible for a channel.close_ok message to get lost in rare
|
||||
circumstances
|
||||
|
||||
enhancements
|
||||
------------
|
||||
- clustering produces better error messages when clustering fails
|
||||
- the AMQP 0.8 specification permitted a rare case of deadlock while closing
|
||||
channels and connections. AMQP 0.9.1 forbids this condition and RabbitMQ now
|
||||
implements the correction
|
||||
- the AMQP basic.recover method is now synchronous by default - the
|
||||
asynchronous version is still available, but deprecated
|
||||
- the AMQP basic.recover method is now permitted in transacted channels, where
|
||||
this was previously forbidden
|
||||
- maximum AMQP frame size is specified more rigorously in AMQP 0.9.1 - RabbitMQ
|
||||
now enforces the negotiated maximum frame size
|
||||
- AMQP 0.9.1 guidance on error constants is now followed more closely and
|
||||
0.9.1 error codes are produced in more situations
|
||||
- SSL compatiblity under R14A has been improved
|
||||
|
||||
java client
|
||||
-----------
|
||||
enhancements
|
||||
- the API can now report on channel flow events
|
||||
- better handling of unsolicited messages and unknown consumer tags, by adding
|
||||
a default consumer
|
||||
- documentation enhancements around the use of AMQConnection
|
||||
|
||||
.net client
|
||||
-----------
|
||||
enhancements
|
||||
- better handling of unsolicited messages and unknown consumer tags, by adding
|
||||
a default consumer
|
||||
- documentation enhancements around the use of ConnectionFactory
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- fix permission errors for commandline utilities in MacPorts
|
||||
|
||||
enhancements
|
||||
- compiles under Erlang R14A
|
||||
- builds using GNU Make 3.80 - previously version 3.81 was required
|
||||
- error output when using old versions of GNU Make has been added
|
||||
- builds under RHEL5 and distributions with xmlto version 0.0.18
|
||||
- better type-checking, making use of recent features in Dialyzer
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
The database schema has not changed since version 1.8.0, so user accounts,
|
||||
durable exchanges and queues, and persistent messages will all be retained
|
||||
during the upgrade.
|
||||
|
||||
If, however, you are upgrading from a release prior to 1.8.0, when the
|
||||
RabbitMQ server detects the presence of an old database, it moves it to a
|
||||
backup location, creates a fresh, empty database, and logs a warning. If
|
||||
your RabbitMQ installation contains important data then we recommend you
|
||||
contact rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
||||
|
|
@ -0,0 +1,98 @@
|
|||
Release: RabbitMQ 2.0.0
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- correct file descriptor limits on Windows, preventing crashes due to
|
||||
exceeding the limit
|
||||
- fix bug that resulted in 'rabbitmqctl status' reporting disk nodes
|
||||
as ram nodes
|
||||
- tx.commit no longer fails when participating queues are deleted
|
||||
during the lifetime of the transaction
|
||||
- more robust logic to detect changes in the data layout between
|
||||
rabbit versions and thus guard against upgrade failures
|
||||
|
||||
enhancements
|
||||
- new persister
|
||||
- the volume of messages rabbit can hold on to is bounded by disk
|
||||
space (in previous versions it was bounded by memory)
|
||||
- rabbit optimises memory usage by paging messages out to / in from
|
||||
disk as needed
|
||||
- consistently high performance regardless of retained message
|
||||
volume (previous versions would slow down considerably as the
|
||||
persisted message volume grew)
|
||||
- consistently fast startup regardless of volume of persisted data
|
||||
(previous versions would require time proportional to the amount
|
||||
of data)
|
||||
- better performance for concurrent transactions (in previous
|
||||
version the rate at which queues could handle transactions
|
||||
involving persistent messages was fixed)
|
||||
- implement AMQP 0-9-1, in addition to 0-8 - see
|
||||
https://www.rabbitmq.com/specification.html
|
||||
- instrumentation for asynchronous statistics events, emitting more
|
||||
stats than currently available and laying the foundation for
|
||||
monitoring a busy broker without crippling performance -
|
||||
see https://blog.rabbitmq.com/posts/2010/08/management-monitoring-and-statistics/
|
||||
- more effective flow control mechanism that does not require
|
||||
cooperation from clients and reacts quickly to prevent the broker
|
||||
from exhausing memory - see https://www.rabbitmq.com/extensions.html#memsup
|
||||
- implement basic.reject - see
|
||||
https://blog.rabbitmq.com/posts/2010/08/well-ill-let-you-go-basicreject-in-rabbitmq/
|
||||
- simplify plugin activation by moving it into the server startup
|
||||
- permit upgrades of Erlang w/o breaking rabbit servers with activated
|
||||
plugins
|
||||
- introduce support for queue leases - see https://www.rabbitmq.com/extensions.html#queue-leases
|
||||
- improve the setting of permissions, making it easer to use and
|
||||
introducing a way to grant no permissions at all - see https://www.rabbitmq.com/admin-guide.html#management
|
||||
- delete exclusive queues synchronously on server-initiated connection
|
||||
close (rather than just client-initiated)
|
||||
|
||||
java client
|
||||
-----------
|
||||
bug fixes
|
||||
- prevent spurious timeout exceptions that theoretically could have
|
||||
arisen due to spurios thread wake-ups
|
||||
|
||||
enhancements
|
||||
- switch to AMQP 0-9-1 - see
|
||||
https://www.rabbitmq.com/specification.html
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- fix bug that caused incorrect responses to server-issued
|
||||
channel.flow commands, which in turn resulted in connections getting
|
||||
closed with an error.
|
||||
- make SSL connections work in Mono
|
||||
|
||||
enhancements
|
||||
- implement AMQP 0-9-1, in addition to 0-8 and 0-9 - see
|
||||
https://www.rabbitmq.com/specification.html
|
||||
- simplify the Subscription class and make it more versatile
|
||||
- improve documentation
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
bug fixes
|
||||
- correct location of rabbitmq.config file under macports - it now
|
||||
lives in /opt/local/etc/rabbitmq/
|
||||
- "make docs_all" now works on more platforms
|
||||
|
||||
enhancements
|
||||
- portable, binary plugin releases to simplify plugin installation -
|
||||
see https://www.rabbitmq.com/plugins.html
|
||||
- automatically create plugin directory, to streamline plugin
|
||||
installation
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
The database schema and the format in which persistent messages are
|
||||
stored have both changed since the last release (1.8.1). When
|
||||
starting, the RabbitMQ server will detect the existence of an old
|
||||
database and will move it to a backup location, before creating a
|
||||
fresh, empty database, and will log a warning. If your RabbitMQ
|
||||
installation contains important data then we recommend you contact
|
||||
rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
|
@ -0,0 +1,53 @@
|
|||
Release: RabbitMQ 2.1.0
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
enhancements
|
||||
- detects incorrect nodename in rabbitmq_multi
|
||||
- extend supported timeout types for queue lease, see
|
||||
https://www.rabbitmq.com/extensions.html#queue-leases
|
||||
- print plugin versions on startup
|
||||
- extend permissions system - add 'is_admin' field; useful for
|
||||
the management plugin
|
||||
- queue.declare and queue.delete should always work quickly, even
|
||||
if the broker is busy
|
||||
|
||||
bug fixes
|
||||
- the 'client' permission scope wasn't working correctly
|
||||
- in the presence of 'verify_peer' option broker will now not accept
|
||||
self-signed ssl certificates
|
||||
- fixed sasl logging to terminal
|
||||
- fixed 'rabbitmq_multi stop_all' on freebsd
|
||||
- fixed race condition which might result in a message being lost when
|
||||
the broker is quitting
|
||||
- fixed race condition in heartbeat handling, which could result
|
||||
in a connection being dropped without logging the reason for that
|
||||
|
||||
java client
|
||||
-----------
|
||||
enhancements
|
||||
- basic.consume 'filter' argument is now called 'arguments'
|
||||
- dropped Channel.queuePurge/2 method
|
||||
- added --help flag to MulticastMain
|
||||
|
||||
.net client
|
||||
-----------
|
||||
enhancements
|
||||
- basic.consume 'filter' argument is now called 'arguments'
|
||||
|
||||
bug fixes
|
||||
- fixed race condition in synchronous basic.recover
|
||||
- codegen was generating incorrect code for nowait parameter
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
The database schema has changed since the last release (2.0.0). When
|
||||
starting, the RabbitMQ server will detect the existence of an old
|
||||
database and will move it to a backup location, before creating a
|
||||
fresh, empty database, and will log a warning. If your RabbitMQ
|
||||
installation contains important data then we recommend you contact
|
||||
rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
|
@ -0,0 +1,60 @@
|
|||
Release: RabbitMQ 2.1.1
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
enhancements
|
||||
- add exchange to exchange bindings. See
|
||||
www.rabbitmq.com/extensions.html#exchange-bindings. Blog post forthcoming.
|
||||
- reduce disk use when creating and deleting queues
|
||||
- faster connection termination and queue deletion for connections
|
||||
that use exclusive queues
|
||||
- miscellaneous persister performance improvements
|
||||
- extend queue leases on declaration
|
||||
- add 'client_flow' channel info item for 'rabbitmqctl list_channels'
|
||||
- add SSL information for 'rabbitmqctl list_connections'
|
||||
- enforce restrictions regarding the default exchange
|
||||
- add version information to database - for future upgrades
|
||||
- better memory detection on AIX
|
||||
|
||||
bug fixes
|
||||
- fix a bug that could kill rabbit after a queue.purge
|
||||
- fix a bug which could cause 'rabbitmqctl list_connections' to crash
|
||||
some of the connection handlers
|
||||
- reduce per-queue memory back to expected levels
|
||||
- don't ignore channel.flow when there were no consumers
|
||||
- fix some bugs that caused too few or too many stats to be emitted
|
||||
|
||||
java client
|
||||
-----------
|
||||
bug fixes
|
||||
- eliminate the possibility of deadlock when opening channels at the
|
||||
same times as others are being closed
|
||||
- move heartbeat sender into a separate thread to ensure that missing
|
||||
heartbeats are detected promptly in all cases
|
||||
|
||||
.net client
|
||||
-----------
|
||||
enhancements
|
||||
- added a means to detect when channel.flow is active
|
||||
|
||||
building & packaging
|
||||
--------------------
|
||||
enhancements
|
||||
- better use of dialyzer: report more warnings
|
||||
- better dependency handling in server build, reducing rebuilds
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
The database schema has not changed since version 2.1.0, so user accounts,
|
||||
durable exchanges and queues, and persistent messages will all be retained
|
||||
during the upgrade.
|
||||
|
||||
If, however, you are upgrading from a release prior to 2.1.0, when the
|
||||
RabbitMQ server detects the presence of an old database, it moves it to a
|
||||
backup location, creates a fresh, empty database, and logs a warning. If
|
||||
your RabbitMQ installation contains important data then we recommend you
|
||||
contact rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
|
@ -0,0 +1,106 @@
|
|||
Release: RabbitMQ 2.2.0
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- fix issue that causes cross-cluster communication to deadlock after
|
||||
sustained cluster activity
|
||||
- fix queue memory leak when using the management plugin or other
|
||||
consumers of queue statistics
|
||||
- brokers started with rabbitmq_multi.bat are now restartable
|
||||
- clustering reset no longer destroys installed plugins
|
||||
- fix race condition between queue declaration and connection
|
||||
termination that causes spurious noproc errors to appear in the log
|
||||
- fix memory leak when long-running channels consume and cancel on
|
||||
many queues
|
||||
- queue.declare and exchange.declare raise precondition_failed rather
|
||||
than not_allowed when attempting to redeclare a queue or exchange
|
||||
with parameters different than those currently known to the broker
|
||||
|
||||
enhancements
|
||||
- automatic, lossless upgrade to new versions of RabbitMQ
|
||||
(when not clustered)
|
||||
- support per-queue message TTL. See:
|
||||
https://www.rabbitmq.com/extensions.html#queue-ttl
|
||||
- the volume of pending acks is now bounded by disk space rather
|
||||
than by memory
|
||||
- store passwords as hashes
|
||||
- allow server properties to be configured in the RabbitMQ config file
|
||||
- SSL connections are listed as such by rabbitmqctl
|
||||
- simplify permission configuration by removing the client
|
||||
permission scope
|
||||
- improve performance of message routing
|
||||
- removed support for basic.recover with requeue=false
|
||||
|
||||
java client
|
||||
-----------
|
||||
enhancements
|
||||
- 'noAck' argument renamed to 'autoAck'
|
||||
- add PossibleAuthenticationFailureException and
|
||||
ProtocolVersionMismatchException to match up with the .net client.
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- fix race condition that can cause spurious SocketErrors to be thrown
|
||||
during connection.close
|
||||
- fix WCF support to use 'amq.direct' exchange instead of default
|
||||
exchange
|
||||
|
||||
management plugin
|
||||
-----------------
|
||||
bug fixes
|
||||
- fix issue preventing user authentication when using Safari
|
||||
- backing queue stats now display correctly
|
||||
|
||||
enhancements
|
||||
- the management plugin is now fully cluster-aware
|
||||
- show detailed incoming/outgoing message rates per channel, exchange
|
||||
and queue
|
||||
- show active/idle state for channels and queues
|
||||
- show node uptime, rabbit version, erlang version and total queued
|
||||
messages
|
||||
- add tab completion to rabbitmqadmin
|
||||
|
||||
STOMP plugin
|
||||
------------
|
||||
enhancements
|
||||
- overhaul the destination selection process to use only the
|
||||
'destination' header
|
||||
- add support for /queue and /topic destinations
|
||||
- remove support for custom 'routing_key' and 'exchange headers' and
|
||||
introduce /exchange/<name>/<key> destination type
|
||||
- the order of SEND and SUBSCRIBE frames is no longer important
|
||||
- STOMP listeners show up as such in the management plugin
|
||||
|
||||
build and packaging
|
||||
-------------------
|
||||
bug fixes
|
||||
- remove build-time dependency on OTP source to allow users to
|
||||
build without the OTP source present
|
||||
- eliminate all valid dialyzer errors
|
||||
|
||||
enhancements
|
||||
- include pre-compiled man pages in the MacPorts distribution,
|
||||
drastically reducing the number of dependencies required.
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
|
||||
install the new version. All configuration and persistent message data
|
||||
is retained.
|
||||
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
|
||||
to 2.1.1 (which retains all data), and then to the current version as
|
||||
described above.
|
||||
|
||||
To upgrade a clustered RabbitMQ or from releases prior to 2.1.0, if
|
||||
the RabbitMQ installation does not contain any important data then
|
||||
simply install the new version. RabbitMQ will move the existing data
|
||||
to a backup location before creating a fresh, empty database. A
|
||||
warning is recorded in the logs. If your RabbitMQ installation
|
||||
contains important data then we recommend you contact
|
||||
rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
|
@ -0,0 +1,163 @@
|
|||
Release: RabbitMQ 2.3.0
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- prevent message store deleting open files leading to eaccess on Windows
|
||||
and potential disk space leak
|
||||
- various bugs in delegate leading to poor cluster performance and
|
||||
nodes blocking if other nodes are down
|
||||
- ensure regular flushes of queue index data to disk resulting in better
|
||||
data retention in the event of a broker failure
|
||||
- prevent queues from hibernating indefinitely on startup under memory
|
||||
pressure
|
||||
- prevent message store in-memory cache from becoming too large
|
||||
- prevent infinite loop after certain types of queue process crash,
|
||||
and prevent such a crash during queue deletion on Erlang R12B3
|
||||
- make SASL PLAIN parser more robust
|
||||
- fix startup scripts to work on Solaris 10
|
||||
- prevent delivery of large messages to consumers from blocking deliveries
|
||||
on other channels
|
||||
- basic.recover affects prefetch count
|
||||
- prevent channel crash on basic.recover to a deleted queue
|
||||
- correct serialisation of PIDs in clusters, without which the
|
||||
management plug-in failed to display some detailed stats
|
||||
- prevent potential crash of queues in clusters in the event of
|
||||
improbable ordering of events upon the death of a channel
|
||||
- add missing failure diagnostics on rabbitmqctl list_consumers
|
||||
- fix truncated failure diagnostics for rabbitmqctl under Windows
|
||||
|
||||
enhancements
|
||||
- add confirm mode - an extension to the AMQP 0-9-1 spec allowing
|
||||
clients to receive streaming receipt confirmations for the messages
|
||||
they publish. See
|
||||
https://www.rabbitmq.com/extensions.html#confirms for more information.
|
||||
- add a basic.nack method. See
|
||||
https://www.rabbitmq.com/extensions.html#negative-acknowledgements
|
||||
- add an unforgeable user-id header. See
|
||||
https://www.rabbitmq.com/extensions.html#validated-user-id
|
||||
- pluggable SASL authentication mechanisms, and a new plugin
|
||||
to authenticate using SSL (see below)
|
||||
- pluggable authentication / authorisation backends, and a new plugin
|
||||
to authenticate and authorise using LDAP (see below)
|
||||
- internal exchanges (cannot be published to directly,
|
||||
typically used with exchange-to-exchange bindings)
|
||||
- users can be made unable to log in with a password
|
||||
- IPv6 support. RabbitMQ will listen on IPv4 and IPv6 by default.
|
||||
- list SSL algorithm information in rabbitmqctl
|
||||
- improved diagnostic error messages in common startup error cases
|
||||
- allow node name to be specified without a host
|
||||
- persister optimisation - eliminate unnecessary pending actions upon
|
||||
queue deletion (pseudo pipeline flush)
|
||||
- improve pluggable exchange type API to allow better handling of race
|
||||
conditions
|
||||
|
||||
|
||||
java client
|
||||
-----------
|
||||
bug fixes
|
||||
- fix for compilation under Java 1.5
|
||||
- remove support for Java 1.4
|
||||
|
||||
enhancements
|
||||
- confirm mode
|
||||
- pluggable SASL authentication mechanisms
|
||||
- include generated source in Maven source bundle
|
||||
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- noAck set correctly in Subscription class
|
||||
|
||||
enhancements
|
||||
- confirm mode
|
||||
- pluggable SASL authentication mechanisms
|
||||
- API tidied up to more closely resemble that of the Java client
|
||||
- distribute XML documentation with binary release
|
||||
|
||||
|
||||
management plugin
|
||||
-----------------
|
||||
bug fixes
|
||||
- race condition that can lead to stats db failing on queue deletion
|
||||
- closing connections on remote cluster nodes
|
||||
- fix web UI memory leaks in Chrome
|
||||
- mitigate web UI memory leaks in all browsers
|
||||
|
||||
enhancements
|
||||
- command line tool rabbitmqadmin can display overview statistics and
|
||||
filter columns
|
||||
- context-sensitive help
|
||||
- web UI state is persistent
|
||||
- display statistics for confirms
|
||||
- API: empty fields can be omitted on PUT
|
||||
- no longer depends on the crypto application, simplifying installation
|
||||
for some users
|
||||
|
||||
|
||||
STOMP plugin
|
||||
------------
|
||||
bug fixes
|
||||
- plug channel leak on UNSUBSCRIBE
|
||||
- fix breakage of SEND after UNSUBSCRIBE
|
||||
- gracefully handle SUBSCRIBE to non-existent exchange
|
||||
- correct semantics of UNSUBSCRIBE receipts
|
||||
|
||||
enhancements
|
||||
- updates to support the draft STOMP 1.1 spec
|
||||
- major refactoring to use OTP behaviours
|
||||
- enhanced and fixed examples
|
||||
- IPv6 support
|
||||
|
||||
|
||||
build and packaging
|
||||
-------------------
|
||||
|
||||
enhancements
|
||||
- Windows bundle now includes Erlang R14B01
|
||||
|
||||
|
||||
shovel plugin
|
||||
-------------
|
||||
bug fixes
|
||||
- close client connections properly if failure occurs during startup
|
||||
|
||||
enhancements
|
||||
- allow specification of heartbeat, frame_max and channel_max in
|
||||
connection URI
|
||||
|
||||
|
||||
ssl authentication mechanism plugin
|
||||
-----------------------------------
|
||||
Experimental plugin allowing clients to authenticate with the SASL
|
||||
EXTERNAL mechanism and client SSL certificates. A password is not
|
||||
required.
|
||||
|
||||
|
||||
ldap authentication backend plugin
|
||||
----------------------------------
|
||||
Experimental plugin allowing the authentication / authorisation
|
||||
database to be hosted in an LDAP server.
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
|
||||
install the new version. All configuration and persistent message data
|
||||
is retained.
|
||||
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
|
||||
to 2.1.1 (which retains all data), and then to the current version as
|
||||
described above.
|
||||
|
||||
To upgrade a clustered RabbitMQ or from releases prior to 2.1.0, if
|
||||
the RabbitMQ installation does not contain any important data then
|
||||
simply install the new version. RabbitMQ will move the existing data
|
||||
to a backup location before creating a fresh, empty database. A
|
||||
warning is recorded in the logs. If your RabbitMQ installation
|
||||
contains important data then we recommend you contact
|
||||
rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
|
@ -0,0 +1,36 @@
|
|||
Release: RabbitMQ 2.3.1
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- fix critical bug causing queue processes to sometimes crash when
|
||||
using transactions or confirms
|
||||
- improve error message when failing to declare a queue or exchange due
|
||||
to argument equivalence
|
||||
|
||||
java client
|
||||
-----------
|
||||
bug fixes
|
||||
- fix race condition closing a channel
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
|
||||
install the new version. All configuration and persistent message data
|
||||
is retained.
|
||||
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
|
||||
to 2.1.1 (which retains all data), and then to the current version as
|
||||
described above.
|
||||
|
||||
To upgrade a clustered RabbitMQ or from releases prior to 2.1.0, if
|
||||
the RabbitMQ installation does not contain any important data then
|
||||
simply install the new version. RabbitMQ will move the existing data
|
||||
to a backup location before creating a fresh, empty database. A
|
||||
warning is recorded in the logs. If your RabbitMQ installation
|
||||
contains important data then we recommend you contact
|
||||
rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
|
@ -0,0 +1,143 @@
|
|||
Release: RabbitMQ 2.4.0
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- in a cluster, don't fail with an internal-error when re-declaring a
|
||||
queue on a connection to a node other than the queue's "home" node
|
||||
- in a cluster, report a not-found error instead of internal-error
|
||||
when attempting to re-declare a durable queue whose node is
|
||||
unavailable
|
||||
- do not ignore the RABBITMQ_LOG_BASE variable on Windows
|
||||
- fix a bug causing SSL connections to die on Erlang prior to R14
|
||||
when using "rabbitmqctl list_connections" with the SSL options
|
||||
- various minor fixes
|
||||
|
||||
enhancements
|
||||
- greatly speed up routing for topic exchanges with many bindings
|
||||
- propagate memory alarms across cluster, thus reacting better to
|
||||
memory pressure on individual nodes.
|
||||
- sender-selected distribution (i.e. add support for the CC and BCC
|
||||
headers). See
|
||||
https://www.rabbitmq.com/extensions.html#sender-selected-distribution
|
||||
for more information.
|
||||
- server-side consumer cancellation notifications. See
|
||||
https://www.rabbitmq.com/extensions.html#consumer-cancel-notify
|
||||
for more information.
|
||||
- have the server present its AMQP extensions in a "capabilities"
|
||||
field in server-properties. See
|
||||
https://www.rabbitmq.com/extensions.html#capabilities
|
||||
for more information.
|
||||
- determine file descriptor limits accurately on Windows, usually
|
||||
resulting in much higher limits than previously, which allows more
|
||||
connections and improves performance
|
||||
- indicate in the logs when the file descriptor limit has been reached
|
||||
(causing the server to not accept any further connections)
|
||||
- allow SASL mechanisms to veto themselves based on socket type
|
||||
- rename rabbitmq.conf to rabbitmq-env.conf, to avoid confusion with
|
||||
rabbitmq.config
|
||||
- improve performance of publisher confirms
|
||||
- various other minor enhancements and performance improvements
|
||||
|
||||
|
||||
java client
|
||||
-----------
|
||||
bug fixes
|
||||
- prevent stack overflow when connections have large numbers channels
|
||||
- do not require a working reverse DNS when establishing connections
|
||||
|
||||
enhancements
|
||||
- ConnectionFactory accepts a connection timeout parameter
|
||||
- allow prioritisation of SASL mechanisms
|
||||
- support for server-side consumer cancellation notifications
|
||||
- have the client present its AMQP extensions in a "capabilities"
|
||||
field in client-properties
|
||||
- rename ReturnListener.handleBasicReturn to handleReturn
|
||||
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- WCF bindings specified in configuration files are no longer ignored
|
||||
|
||||
enhancements
|
||||
- support for server-side consumer cancellation notifications
|
||||
- have the client present its AMQP extensions in a "capabilities"
|
||||
field in client-properties
|
||||
- support IPv6
|
||||
|
||||
|
||||
management plugin
|
||||
-----------------
|
||||
bug fixes
|
||||
- hide passwords in the web UI
|
||||
- fix rabbitmqadmin's handling of Unicode strings
|
||||
|
||||
enhancements
|
||||
- present the managed socket and open file counts and respective limits
|
||||
- better memory usage reporting for hibernating queues
|
||||
- better support for serving the web interface through a proxy
|
||||
- allow users to choose which node a queue is declared on
|
||||
- show memory alarm states for nodes
|
||||
- show statistics for basic.returns
|
||||
- publish/receive messages via HTTP; this is intended for testing /
|
||||
learning / debugging, not as a general solution for HTTP messaging
|
||||
|
||||
|
||||
STOMP plugin
|
||||
------------
|
||||
bug fixes
|
||||
- prevent crash when publishing from STOMP, but subscribing from
|
||||
non-STOMP
|
||||
- correctly process publishes spanning multiple network packets
|
||||
- do not crash when publishing with undefined headers
|
||||
- receipts for SEND frames wait on confirms
|
||||
- do not issue a DISCONNECT with receipt when a clean shutdown has
|
||||
*not* occurred
|
||||
|
||||
enhancements
|
||||
- add documentation. See https://www.rabbitmq.com/stomp.html
|
||||
- significant performance improvements
|
||||
- extend flow-control on back pressure through the STOMP gateway
|
||||
preventing the STOMP from overloading the server
|
||||
- support for the "persistent" header
|
||||
- support for multiple NACK
|
||||
|
||||
|
||||
SSL authentication mechanism plugin
|
||||
-----------------------------------
|
||||
enhancements
|
||||
- only offer this mechanism on SSL connections
|
||||
|
||||
|
||||
build and packaging
|
||||
-------------------
|
||||
enhancements
|
||||
- Windows installer for the broker
|
||||
- remove the rabbitmq-multi script in order to simplify startup and
|
||||
improve error reporting
|
||||
- add the "cond-restart" and "try-restart" options to the init script
|
||||
- specify runlevels in the rabbitmq-server.init script
|
||||
- make the java client jar an OSGi bundle
|
||||
- Debian package only depends on erlang-nox
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
|
||||
install the new version. All configuration and persistent message data
|
||||
is retained.
|
||||
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
|
||||
to 2.1.1 (which retains all data), and then to the current version as
|
||||
described above.
|
||||
|
||||
To upgrade a clustered RabbitMQ or from releases prior to 2.1.0, if
|
||||
the RabbitMQ installation does not contain any important data then
|
||||
simply install the new version. RabbitMQ will move the existing data
|
||||
to a backup location before creating a fresh, empty database. A
|
||||
warning is recorded in the logs. If your RabbitMQ installation
|
||||
contains important data then we recommend you contact
|
||||
rabbitmq-sales@pivotal.io for assistance with the upgrade.
|
|
@ -0,0 +1,87 @@
|
|||
Release: RabbitMQ 2.4.1
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- fix breakage of upgrades when durable queues are present or
|
||||
following a non-clean shutdown
|
||||
- prevent "rabbitmqctl wait" from waiting forever in certain
|
||||
circumstances
|
||||
- the broker can be run on Erlang R12B-3 again
|
||||
- some other small bug fixes
|
||||
|
||||
enhancements
|
||||
- upgrades in clusters. See
|
||||
https://www.rabbitmq.com/clustering.html#upgrading
|
||||
- improve memory usage when dealing with persistent messages waiting
|
||||
on acks from consumers
|
||||
- better error reporting for some startup problems
|
||||
- add timestamp to events published to the amq.rabbit.log exchange
|
||||
|
||||
|
||||
java client
|
||||
-----------
|
||||
enhancements
|
||||
- remove dependency on javax.security.sasl, thus improving
|
||||
compatibility with Android and WebSphere
|
||||
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- the client can be built on .NET 2.0 again
|
||||
|
||||
|
||||
management plugin
|
||||
-----------------
|
||||
bug fixes
|
||||
- fix issue that would cause non-admin users to be repeatedly prompted
|
||||
for their password when viewing the queues page
|
||||
|
||||
|
||||
STOMP plugin
|
||||
------------
|
||||
bug fixes
|
||||
- the plugin works on Erlang R12 again
|
||||
|
||||
|
||||
SSL authentication mechanism plugin
|
||||
-----------------------------------
|
||||
bug fixes
|
||||
- accept SSL certificates with fields containing characters
|
||||
outside ASN.1 PrintableString (e.g. underscores)
|
||||
|
||||
|
||||
build and packaging
|
||||
-------------------
|
||||
bug fixes
|
||||
- the OCF script works correctly when specifying an alternative
|
||||
configuration file
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
|
||||
install the new version. All configuration and persistent message data
|
||||
is retained.
|
||||
|
||||
To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
|
||||
the new version on all the nodes and follow these instructions:
|
||||
https://www.rabbitmq.com/clustering.html#upgrading
|
||||
All configuration and persistent message data is retained.
|
||||
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
|
||||
to 2.1.1 (which retains all data), and then to the current version as
|
||||
described above.
|
||||
|
||||
To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
|
||||
from releases prior to 2.1.0, if the RabbitMQ installation does not
|
||||
contain any important data then simply install the new
|
||||
version. RabbitMQ will move the existing data to a backup location
|
||||
before creating a fresh, empty database. A warning is recorded in the
|
||||
logs. If your RabbitMQ installation contains important data then we
|
||||
recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
|
@ -0,0 +1,135 @@
|
|||
Release: RabbitMQ 2.5.0
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- reduce complexity of recovery, significantly improving startup times
|
||||
when there are large numbers of exchanges or bindings
|
||||
- recover bindings between durable queues and non-durable exchanges
|
||||
on restart of individual cluster nodes
|
||||
- do not read messages off disk in the x-message-ttl logic. This could
|
||||
severely impact performance when many queues expired messages
|
||||
(near)simultaneously.
|
||||
- resolve a timer issue that could impact performance when under high
|
||||
load and memory pressure
|
||||
- make source code compilable with latest Erlang release (R14B03)
|
||||
- assert x-message-ttl equivalence on queue redeclaration
|
||||
|
||||
enhancements
|
||||
- tracing facility for incoming and outgoing messages - see
|
||||
https://www.rabbitmq.com/firehose.html
|
||||
- optionally serialise events for exchange types
|
||||
- detect available memory on OpenBSD
|
||||
- add Windows service description
|
||||
- improve inbound network performance
|
||||
- improve routing performance
|
||||
- new rabbitmqctl commands:
|
||||
report - comprehensive report of server status for support purposes
|
||||
environment - display application environment (such as config vars)
|
||||
cluster_status - display cluster status (formerly part of 'status')
|
||||
|
||||
java client
|
||||
-----------
|
||||
bug fixes
|
||||
- compile under Java 1.5 (again)
|
||||
|
||||
enhancements
|
||||
- experimental API employing command objects and builders. See
|
||||
http://hg.rabbitmq.com/rabbitmq-java-client/file/default/test/src/com/rabbitmq/client/test/AMQBuilderApiTest.java
|
||||
for some examples. Feedback welcome!
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- make method id of 'exchange.unbind-ok' match definition in the
|
||||
broker, so the client lib can recognise that command.
|
||||
- WCF bindings specified in configuration files are no longer ignored
|
||||
|
||||
enhancements
|
||||
- allow larger than default message sizes in WCF
|
||||
- updated documentation
|
||||
|
||||
management plugin
|
||||
-----------------
|
||||
bug fixes
|
||||
- handle race between queue creation/deletion and stats reporting that
|
||||
could result in errors in the latter, particularly when there are
|
||||
large numbers of queues and/or high churn
|
||||
- handle race when starting the management plug-in on multiple cluster
|
||||
nodes, which in some rare (but quite reproducible) circumstances
|
||||
could cause some of the brokers to crash
|
||||
- remove duplicate 'messages' entry from queue stats JSON
|
||||
- make binding arguments optional in the HTTP API for binding creation
|
||||
- correct error handling in the HTTP API for binding creation
|
||||
- prevent spurious failures of aliveness test
|
||||
|
||||
enhancements
|
||||
- performance improvements which significantly reduce the cost of
|
||||
stats reporting, allowing the management plug-in to cope with much
|
||||
higher numbers of queues, bindings, etc.
|
||||
- issue an alert when a configured user cannot access any vhost or a
|
||||
vhost has no users
|
||||
- allow choice of which stats/info items to return in the HTTP API
|
||||
- include protocol adapter and direct connections in API and UI
|
||||
- full STOMP SSL information displayed
|
||||
|
||||
rabbitmq-mochiweb
|
||||
-----------------
|
||||
|
||||
enhancements
|
||||
- more flexible configuration permitting different services to run on
|
||||
different ports, SSL support and interface-based restrictions. See
|
||||
https://www.rabbitmq.com/mochiweb.html for more details. Note that by
|
||||
default the JSON-RPC channel plugin will now listen on port 55670.
|
||||
|
||||
STOMP plugin
|
||||
------------
|
||||
enhancements
|
||||
- support connections over SSL
|
||||
bug fixes
|
||||
- correct spelling of 'heart-beat' header
|
||||
- don't drop messages if producer hangs up quickly
|
||||
|
||||
build and packaging
|
||||
-------------------
|
||||
bug fixes
|
||||
- fix breakage in /etc/init.d/rabbitmq-server rotate-logs command
|
||||
|
||||
enhancements
|
||||
- plug-in build system: support the declaration of inter-plugin
|
||||
dependencies, making development of plugins much easier.
|
||||
Inter-module dependencies are calculated automatically for all
|
||||
plugins. Note that some plugins and applications have been
|
||||
renamed for consistency, which may require changes to any existing
|
||||
`rabbitmq.config` to match.
|
||||
- do not require access to www.docbook.org when building the server
|
||||
w/o docbook installed
|
||||
- get rid of some warnings in the .net client build
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
|
||||
install the new version. All configuration and persistent message data
|
||||
is retained.
|
||||
|
||||
To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
|
||||
the new version on all the nodes and follow these instructions:
|
||||
https://www.rabbitmq.com/clustering.html#upgrading
|
||||
All configuration and persistent message data is retained.
|
||||
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
|
||||
to 2.1.1 (which retains all data), and then to the current version as
|
||||
described above.
|
||||
|
||||
To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
|
||||
from releases prior to 2.1.0, if the RabbitMQ installation does not
|
||||
contain any important data then simply install the new
|
||||
version. RabbitMQ will move the existing data to a backup location
|
||||
before creating a fresh, empty database. A warning is recorded in the
|
||||
logs. If your RabbitMQ installation contains important data then we
|
||||
recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
|
@ -0,0 +1,34 @@
|
|||
Release: RabbitMQ 2.5.1
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- fix bug preventing upgrades from 2.1.1 and 2.2.0.
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
|
||||
install the new version. All configuration and persistent message data
|
||||
is retained.
|
||||
|
||||
To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
|
||||
the new version on all the nodes and follow these instructions:
|
||||
https://www.rabbitmq.com/clustering.html#upgrading
|
||||
All configuration and persistent message data is retained.
|
||||
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
|
||||
to 2.1.1 (which retains all data), and then to the current version as
|
||||
described above.
|
||||
|
||||
To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
|
||||
from releases prior to 2.1.0, if the RabbitMQ installation does not
|
||||
contain any important data then simply install the new
|
||||
version. RabbitMQ will move the existing data to a backup location
|
||||
before creating a fresh, empty database. A warning is recorded in the
|
||||
logs. If your RabbitMQ installation contains important data then we
|
||||
recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
|
@ -0,0 +1,181 @@
|
|||
Release: RabbitMQ 2.6.0
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- upgrading from RabbitMQ 2.1.1 to any later release could break if
|
||||
there were durable queues with persistent messages present
|
||||
- on very slow machines, starting rabbit via the supplied init scripts
|
||||
could fail with a timeout
|
||||
- rabbit could fail to stop (when asked to do so) in the presence of
|
||||
some plug-ins (e.g. shovel)
|
||||
- 'ram' nodes in a cluster could consume ever increasing amounts of
|
||||
disk space
|
||||
- the presence of fast consumers on a queue could significantly delay
|
||||
the addition of new consumers
|
||||
- when a client was issuing a tx.commit in one channel, and
|
||||
simultaneously, in another channel, deleted a durable queue with
|
||||
persistent messages involved in that tx, rabbit could terminate with
|
||||
an error
|
||||
- when a client was using both basic.qos and channel.flow, the latter
|
||||
would fail to re-enable message flow
|
||||
- when using 'confirm' mode, the deletion of queues could cause nacks
|
||||
to be issued (incorrectly)
|
||||
- in extremely rare circumstances (never observed in the wild), a
|
||||
queue with a per-queue message ttl could break during sudden changes
|
||||
in rabbit memory usage
|
||||
|
||||
enhancements
|
||||
- introduce active-active HA, with queues getting mirrored on nodes in
|
||||
a cluster. See https://www.rabbitmq.com/ha.html
|
||||
- revamp the handling of AMQP's tx (transaction) class and clarify its
|
||||
behaviour See https://www.rabbitmq.com/specification.html#tx
|
||||
- replace the 'administrator' flag, as used by the management plugin,
|
||||
with a more general 'user tags' mechanism. See
|
||||
https://www.rabbitmq.com/man/rabbitmqctl.8.man.html#set_user_tags
|
||||
- do not require 'configure' permissions for passive queue/exchange
|
||||
declaration
|
||||
- optimise of message delivery on channels with a basic.qos
|
||||
prefetch limit that are consuming from many queues
|
||||
- in 'rabbitmqctl list_channels', do not show the tx mode by default
|
||||
- when a cluster 'degrades' to only containing ram nodes - through
|
||||
'rabbitmqctl' actions or node failure - display/log a warning.
|
||||
- eliminate some spurious errors from the sasl log
|
||||
|
||||
java client
|
||||
-----------
|
||||
enhancements
|
||||
- allow response timeouts to be specified in the {Json}RpcClient
|
||||
- introduce Channel.waitForConfirms() helper method, to make usage of
|
||||
'confirm' mode more convenient in common cases.
|
||||
- re-introduce default constructor for BasicProperties
|
||||
- cater for multiple listeners in all APIs
|
||||
- eradicate use of impl types in public APIs
|
||||
- make Tracer embeddable
|
||||
|
||||
.net client
|
||||
-----------
|
||||
enhancements
|
||||
- return the complete result of a QueueDeclare, rather than just the
|
||||
queue name.
|
||||
- introduce IModel.WaitForConfirms() helper method, to make usage of
|
||||
'confirm' mode more convenient in common cases.
|
||||
- document 'confirms' in user guide
|
||||
|
||||
management plugin
|
||||
-----------------
|
||||
bug fixes
|
||||
- listing/inspecting queues with exclusive consumers would trigger a
|
||||
500 error
|
||||
- lots of cookies would be created for recording implicit preferences
|
||||
- /api/aliveness-test could return a 500 error instead of 401
|
||||
- fix off-by-one error in used file descriptor count on some
|
||||
platforms, and gracefully deal with absence of 'lsof' command
|
||||
|
||||
enhancements
|
||||
- introduce a more advanced permissions model, allowing access to
|
||||
information for monitoring purposes without the user needing to be a
|
||||
rabbit administrator. See
|
||||
https://www.rabbitmq.com/management.html#permissions
|
||||
- simplify changing the URL; shorter default URL
|
||||
- make the stats collection interval configurable, providing a way to
|
||||
reduce the impact of stats collection on servers with many active
|
||||
connections/channels/queues, and adjust the rate calculation
|
||||
period. See
|
||||
https://www.rabbitmq.com/management.html#statistics-interval
|
||||
- in a cluster, make the management stats db highly available; it
|
||||
automatically fails over to a different node
|
||||
- get the management stats db to 'catch up' when it is started in a
|
||||
cluster and there are existing nodes with queues etc
|
||||
- report file descriptor counts on more platforms
|
||||
- display message re-delivery rates
|
||||
- show (mochi)web listeners
|
||||
- handle encoding errors gracefully
|
||||
- add an extension mechanisms - plug-ins for the management
|
||||
plug-in. The first of these is rabbitmq-shovel-management which
|
||||
displays status information of the rabbitmq-shovel plugin
|
||||
- add fields for well-known arguments such as message TTL and alternate
|
||||
exchange to queue and exchange forms
|
||||
|
||||
|
||||
mochiweb plugin
|
||||
---------------
|
||||
bug fixes
|
||||
- on slow machines a timeout could occur during startup
|
||||
|
||||
enhancements
|
||||
- the '*' listener context no longer needs to be specified, thus
|
||||
simplifying configuration
|
||||
|
||||
auth-backend-ldap plugin
|
||||
------------------------
|
||||
enhancements
|
||||
- eliminate "undefined function" warning on startup
|
||||
|
||||
shovel plugin
|
||||
-------------
|
||||
enhancements
|
||||
- support guaranteed delivery with 'confirm' mode
|
||||
- support the use of AMQP 0-9-1 methods in configuration
|
||||
|
||||
STOMP plugin
|
||||
------------
|
||||
bug fixes
|
||||
- heartbeats were issued as a 0x0 byte instead of LF (0x0A)
|
||||
|
||||
enhancements
|
||||
- provide a way to send & subscribe to existing AMQP queues
|
||||
- support temporary/reply queues
|
||||
- support durable subscriptions
|
||||
- set the default prefetch count for /queue destinations to
|
||||
'unlimited' instead of 1
|
||||
- optionally allow clients to omit the login & passcode in CONNECT
|
||||
frames, using a configurable default user instead
|
||||
- optionally allow clients to omit the CONNECT frame altogether
|
||||
|
||||
For more details on all the above see the STOMP plugin documentation
|
||||
at https://www.rabbitmq.com/stomp.html
|
||||
|
||||
federation plugin
|
||||
-----------------
|
||||
First release of this plugin, which offers scalable publish /
|
||||
subscribe messaging across WANs and administrative domains. See
|
||||
http://hg.rabbitmq.com/rabbitmq-federation/file/default/README
|
||||
|
||||
build and packaging
|
||||
-------------------
|
||||
bug fixes
|
||||
|
||||
enhancements
|
||||
- make Windows Start menu entries more easily identifiable/searchable
|
||||
- stop producing the Windows bundle. The Windows installer has matured
|
||||
sufficiently to take its place.
|
||||
- employ the same convention for plugin app source files as rebar
|
||||
- clean up some xref warnings in the plugin build
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
|
||||
install the new version. All configuration and persistent message data
|
||||
is retained.
|
||||
|
||||
To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
|
||||
the new version on all the nodes and follow these instructions:
|
||||
https://www.rabbitmq.com/clustering.html#upgrading
|
||||
All configuration and persistent message data is retained.
|
||||
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
|
||||
to 2.1.1 (which retains all data), and then to the current version as
|
||||
described above.
|
||||
|
||||
To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
|
||||
from releases prior to 2.1.0, if the RabbitMQ installation does not
|
||||
contain any important data then simply install the new
|
||||
version. RabbitMQ will move the existing data to a backup location
|
||||
before creating a fresh, empty database. A warning is recorded in the
|
||||
logs. If your RabbitMQ installation contains important data then we
|
||||
recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
|
@ -0,0 +1,59 @@
|
|||
Release: RabbitMQ 2.6.1
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- the broker failed to (re)start on reboot on systems that keep
|
||||
/var/run on a temporary file systems, e.g. Ubuntu.
|
||||
- the Windows service failed to increase the Erlang process limit,
|
||||
limiting the broker to a few thousand queues, connections and
|
||||
channels.
|
||||
|
||||
.net client
|
||||
-----------
|
||||
enhancements
|
||||
- add the "headers" exchange to RabbitMQ.Client.ExchangeType
|
||||
|
||||
management plugin
|
||||
-----------------
|
||||
bug fixes
|
||||
- on a busy broker, /api/nodes could fail with a timeout, affecting
|
||||
several management UI pages.
|
||||
|
||||
topology visualiser
|
||||
-------------------
|
||||
First official release. See
|
||||
https://www.rabbitmq.com/plugins.html#rabbitmq_management_visualiser
|
||||
|
||||
STOMP plugin
|
||||
------------
|
||||
enhancements
|
||||
- trim whitespace from headers when speaking STOMP 1.0
|
||||
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply
|
||||
install the new version. All configuration and persistent message data
|
||||
is retained.
|
||||
|
||||
To upgrade a clustered RabbitMQ from release 2.1.1 or later, install
|
||||
the new version on all the nodes and follow these instructions:
|
||||
https://www.rabbitmq.com/clustering.html#upgrading
|
||||
All configuration and persistent message data is retained.
|
||||
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.0, first upgrade
|
||||
to 2.1.1 (which retains all data), and then to the current version as
|
||||
described above.
|
||||
|
||||
To upgrade a clustered RabbitMQ prior to 2.1.1 or a stand-alone broker
|
||||
from releases prior to 2.1.0, if the RabbitMQ installation does not
|
||||
contain any important data then simply install the new
|
||||
version. RabbitMQ will move the existing data to a backup location
|
||||
before creating a fresh, empty database. A warning is recorded in the
|
||||
logs. If your RabbitMQ installation contains important data then we
|
||||
recommend you contact rabbitmq-sales@pivotal.io for assistance with the
|
||||
upgrade.
|
|
@ -0,0 +1,142 @@
|
|||
Release: RabbitMQ 2.7.0
|
||||
|
||||
Release Highlights
|
||||
==================
|
||||
|
||||
server
|
||||
------
|
||||
bug fixes
|
||||
- acknowledgements were not properly handled on transaction rollback
|
||||
- could not declare a mirrored queue with a policy of "nodes" and an explicit
|
||||
list of node names
|
||||
- queues created by different client libraries could look inequivalent to the
|
||||
broker, though they had equivalent properties
|
||||
- queue process monitors were not removed correctly
|
||||
- server start up could hang when trying to contact other Erlang nodes in some
|
||||
network configurations
|
||||
- on Windows some batch file variables might pass unescaped backslashes to the
|
||||
broker, causing it to crash
|
||||
|
||||
enhancements
|
||||
- messages re-queued (as a result of a consumer dying, for example) have their
|
||||
original order preserved
|
||||
- in large queues under load, reduce length of time messages already on disk are
|
||||
retained in memory
|
||||
- on platforms which support the High Performance Erlang Compiler (HiPE), the
|
||||
server can optionally (re)compile selected modules on startup for increased
|
||||
run-time performance; see https://www.rabbitmq.com/configure.html
|
||||
- the server automatically adapts to changes to virtual memory resources, and to
|
||||
the memory high-watermark
|
||||
- the rabbit logs are appended to on restart; log rotation is simplified
|
||||
- improved synchronisation between rabbitmqctl and the server when stopping
|
||||
- non-query actions initiated by rabbitmqctl are logged
|
||||
- creating a connection is faster
|
||||
- shutdown is more efficient, especially when there are many queues to delete
|
||||
- concurrent message storage operations for many queues are more efficient
|
||||
- durable queues are faster on first use, and faster to recover
|
||||
- messages removed before being written to disk have the writes eliminated,
|
||||
increasing message throughput under load
|
||||
- performance improvements to queues with large numbers of consumers with
|
||||
low prefetch counts
|
||||
- internal flow control is more consistent
|
||||
- various other general performance improvements
|
||||
|
||||
clients
|
||||
-------
|
||||
bug fixes
|
||||
- connection and channel closes in the clients had internal timeouts which
|
||||
could expire prematurely and spoil the client's view of the channel state
|
||||
|
||||
enhancements
|
||||
- clients accept a new "amqp" URI scheme, which can describe all of the
|
||||
information required to connect to an AMQP server in one URI; see
|
||||
https://www.rabbitmq.com/uri-spec.html
|
||||
|
||||
erlang client
|
||||
-------------
|
||||
bug fixes
|
||||
- under some circumstances wait_for_confirms/1 could fail to return
|
||||
|
||||
enhancements
|
||||
- a connection timeout value can be set for Erlang client connections
|
||||
- socket options may be specified on connection start
|
||||
|
||||
java client
|
||||
-----------
|
||||
enhancements
|
||||
- consumer callbacks, and channel operations are threadsafe; calls to channel
|
||||
operations can be safely made from a Consumer method call; Consumer callback
|
||||
work threads can be user-supplied
|
||||
- channel or connection errors that refer to another method frame provide the
|
||||
method's AMQP name (if it has one) in the error message
|
||||
|
||||
.net client
|
||||
-----------
|
||||
bug fixes
|
||||
- some client methods were not documented correctly
|
||||
|
||||
plugins
|
||||
-------
|
||||
bug fixes
|
||||
- HTTP-based plugins did not shut down correctly when stopped independently of
|
||||
the Erlang VM
|
||||
|
||||
enhancements
|
||||
- plugins are included in the main rabbitmq-server release, simplifying server
|
||||
configuration and upgrades; a new tool, rabbitmq-plugins, enables and
|
||||
disables plugins; see https://www.rabbitmq.com/plugins.html
|
||||
- rabbitmq_federation is no longer considered experimental
|
||||
- new experimental plugin: rabbitmq_consistent_hash_exchange, useful for load
|
||||
balancing very high message rates across multiple queues
|
||||
- new experimental plugin: rabbitmq_tracing, a management UI for the firehose
|
||||
|
||||
management plugin
|
||||
-----------------
|
||||
bug fixes
|
||||
- queue details page failed to display on recent browsers (e.g. Firefox 6) for
|
||||
High Availability queues
|
||||
|
||||
enhancements
|
||||
- more detailed global memory statistics shown
|
||||
- "all configuration" is renamed to "definitions" to reduce confusion with
|
||||
rabbitmq.config
|
||||
|
||||
auth-backend-ldap plugin
|
||||
------------------------
|
||||
enhancements
|
||||
- the queries are extended to include attributes and allow pattern-matching
|
||||
|
||||
mochiweb plugin
|
||||
---------------
|
||||
enhancements
|
||||
- the limit on upload size is increased to 100MB so that JSON-RPC channel can
|
||||
publish larger messages
|
||||
|
||||
STOMP adapter
|
||||
-------------
|
||||
bug fixes
|
||||
- the STOMP adapter could crash when exceeding the memory high watermark
|
||||
|
||||
build and packaging
|
||||
-------------------
|
||||
bug fixes
|
||||
- on non-Windows platforms invoking rabbitmq as a daemon could leave standard
|
||||
input and output streams permanently open
|
||||
|
||||
Upgrading
|
||||
=========
|
||||
To upgrade a non-clustered RabbitMQ from release 2.1.1 or later, simply install
|
||||
the new version. All configuration and persistent message data is retained.
|
||||
|
||||
To upgrade a clustered RabbitMQ from release 2.1.1 or later, install the new
|
||||
version on all the nodes and follow the instructions at
|
||||
https://www.rabbitmq.com/clustering.html#upgrading .
|
||||
|
||||
To upgrade RabbitMQ from release 2.1.0, first upgrade to 2.1.1 (all data will be
|
||||
retained), and then to the current version as described above.
|
||||
|
||||
When upgrading from RabbitMQ versions prior to 2.1.0, the existing data will be
|
||||
moved to a backup location and a fresh, empty database will be created. A
|
||||
warning is recorded in the logs. If your RabbitMQ installation contains
|
||||
important data then we recommend you contact support at rabbitmq.com for
|
||||
assistance with the upgrade.
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue