release-notes/4.1.4.md
RabbitMQ 4.1.4 is a maintenance release in the 4.1.x release series.
It is strongly recommended that you read 4.1.0 release notes
in detail if upgrading from a version prior to 4.1.0.
RabbitMQ and Erlang/OTP Compatibility Matrix has more details on Erlang version requirements for RabbitMQ.
Nodes will fail to start on older Erlang releases.
Release notes can be found on GitHub at rabbitmq-server/release-notes.
default_password, ssl_options.password now can tell between a generated random password
value and an encrypted value better.
Encrypted values must be prefixed with encrypted:. All other values, including
generated passwords that contain a colon (:), will be considered non-encrypted ones.
GitHub issue: #14365
Import of definition files that contained topic exchange permissions failed.
GitHub issue: #14409
When a configured authentication or authorization backend comes from a known plugin but the plugin is not enabled, the node will now refuse to start.
Previously the node would boot but client connections would fail because of the missing backend modules.
Similarly to the number of queues and virtual hosts, it is now possible to configure a limit on the cluster-wide number of exchanges that applications can create:
# Applications won't be able to decalre more than 200 exchanges
# (including the protocol-standard pre-declared ones) in the cluster
cluster_exchange_limit = 200
The setting must be set to the same value on all cluster nodes.
As with other limits, the goal is to introduce a guard against applications that leak resources.
GitHub issue: #14339
In some environments, the use of load balancers is mandated and therefore Local Random exchanges cannot be used.
A new setting, exchange_types.local_random.enabled, can be used to explicitly disable the local random exchange type,
returning an error to the clients that try to declare such an exchange:
# use in environments where the locality requirements of the local random exchange type cannot
# be satisfied
exchange_types.local_random.enabled = false
GitHub issue: #14363
RABBITMQ_MAX_OPEN_FILES is a new environment variable supported by the rabbitmq-server
startup script on Linux, macOS and BSD family operating systems.
It does not replace the standard mechanisms of increasing the maximum allowed file handle limit for the node. However, it can be useful in environments where the soft (current) limit is meaningfully lower than the hard (maximum allowed per system configuration) limit, and the user can only control the soft limit.
For example, this is the case in most hosted Kubernetes environments.
Stream client connections that authenticate using a JWT token (OAuth 2) have to periodically renew their JWT tokens. Should such an update fail, the RabbitMQ Stream Protocol connection will be immediately closed.
In addition, stream connections now verify that the newly obtained JWT token still grants access to the virtual host the client is connected to.
If a Single Active Consumer could not leave its SAC group because the stream coordinator was not available, the operation will now be retried a few times before reporting a failure back to the client.
GitHub issue: #14341
Advertised TLS hostname setting value was not passed on to the stream protocol metadata frame.
GitHub issue: #14345
rabbitmqctl cluster_status --formatter=json double converted the running_nodes
field.
GitHub issue: #14382
rabbitmqctl shovel_status command now handles the presence of metrics.
GitHub issue: #14298
AMQP 1.0 shovels now perform stricter validation on the src-delete-after values.
They support a narrower set of values compared to their AMQP 0-9-1 counterparts
but shovel definition validation did not account for that difference.
GitHub issue: #14420
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-4.1.4.tar.xz
instead of the source tarball produced by GitHub.