RabbitMQ 3.7.12
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 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.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases
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
:
# 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:
[
{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 upgrade and
compatibility notes if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades and
RabbitMQ change log 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.
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
-
inet_dist_listen_min
andinet_dist_listen_max
were removed from new style configuration.
They wouldn't have any effect due to how configuration translation is performed.
Useadvanced.config
or theRABBITMQ_DIST_PORT
env variable to configure these settings:[ {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.
GitHub issue: rabbitmq/rabbitmq-server#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
-
rabbitmqctl --help
now exits with exit code of 0.rabbitmqctl
(no arguments) uses code
64 (EX_USAGE
).GitHub issue: rabbitmq/rabbitmq-cli#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
Management Plugin
Bug Fixes
-
Large HTTP API request bodies (e.g. importing a large definition file)
were not guaranteed to be fully consumed before parsing.GitHub issue: rabbitmq/rabbitmq-management#657
-
management_db_cache_multiplier
configuration setting was ignored due to a typo.Contributed by Josh Soref.
GitHub issue: rabbitmq/rabbitmq-management#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.
GitHub issue: rabbitmq/rabbitmq-mqtt#175
-
When a client sent a duplicate
CONNECT
frame (tried to "reauthenticate"), connection failed
with a scary looking exception.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.
Bug Fixes
-
Clearer and shorter log messages when a socket write fails.
GitHub issue: rabbitmq/rabbitmq-mqtt#178
LDAP Plugin
Enhancements
-
The plugin now uses its own logging sink, which makes it possible to direct
all LDAP logs to a separate file.Contributed by Yury Alioshinov.
GitHub issue: rabbitmq/rabbitmq-auth-backend-ldap#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
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
.