270 lines
10 KiB
Plaintext
270 lines
10 KiB
Plaintext
Release: RabbitMQ 3.4.0
|
|
|
|
Security Fixes
|
|
==============
|
|
|
|
management plugin
|
|
-----------------
|
|
26414 do not trust X-Forwarded-For header when enforcing 'loopback_users'
|
|
|
|
various
|
|
-------
|
|
26419 disable SSLv3 by default to prevent the POODLE attack
|
|
|
|
|
|
Release Highlights
|
|
==================
|
|
|
|
server
|
|
------
|
|
bug fixes
|
|
26354 prevent force_event_refresh message from killing connections that have
|
|
not fully started (since 3.3.0)
|
|
26347 ensure bindings are deleted when deleting queue records as part
|
|
of rabbitmqctl forget_cluster_node (since 3.0.3)
|
|
26341 add assertions to prevent silent failure from DETS errors in
|
|
rabbit_recovery_terms (since 3.3.0)
|
|
26171 prevent crash in rare conditions in gm:find_member_or_blank/2 during
|
|
mirror startup (since 2.6.0)
|
|
26368 prevent autoheal from hanging when loser shuts down before the winner
|
|
learns it is the winner (since 3.1.0)
|
|
25850 prevent excessive binary memory use when accepting or delivering
|
|
large messages at high speed (since 1.0.0)
|
|
26230 ensure exchanges and queues are federated appropriately when
|
|
created when policy exists to make them so but the plugin is
|
|
not enabled (since 3.0.0)
|
|
26389 prevent consumer utilisation getting stuck at 0% after busy queue
|
|
goes idle (since 3.3.0)
|
|
26370 prevent "rabbitmqctl cluster_status" from breaking the database
|
|
if invoked at the wrong point during first startup (since 3.0.0)
|
|
26295 ensure "rabbitmqctl wait" waits for plugins to start
|
|
26336 fix logging when cluster auto-config fails (since 3.0.0)
|
|
26338 log enotconn as 'connection_closed_abruptly', not an internal
|
|
error (since 1.0.0)
|
|
26343 fix warning about missing behaviour_info/1 in supervisor2 with
|
|
older Erlang (since 3.2.0)
|
|
26363 ensure cluster auto-config does not try to cluster with nodes
|
|
which have had "rabbitmqctl stop_app" invoked (since 3.0.0)
|
|
26378 fix compilation warnings about conflicting behaviours (since 2.6.0)
|
|
26386 ensure broker starts even if vhost pointed to by default_vhost
|
|
config item has been deleted (since 1.0.0)
|
|
26404 prevent queue synchronisation from hanging if there is a very
|
|
short partition just as it starts (since 3.1.0)
|
|
|
|
enhancements
|
|
21446 allow crashing queue processes to recover, using persistent data
|
|
if present
|
|
25813 provide fast direct route for RPC replies
|
|
(see https://www.rabbitmq.com/direct-reply-to.html)
|
|
24926 allow plugins to be enabled / disabled without restarting the server
|
|
25884 add argument and policy to limit queue length in bytes
|
|
26150 prevent clean leader replica shutdown from promoting unsynchronised
|
|
mirrors and thus losing messages; add ha-promote-on-shutdown
|
|
to configure
|
|
26151 make queues located on down cluster nodes visible in "rabbitmqctl
|
|
list_queues"
|
|
26213 prevent undefined behaviour during partial partitions by
|
|
promoting them to full ones
|
|
26254 allow "rabbitmqctl_forget_cluster_node" to promote mirror queue mirrors
|
|
that are down and thus recover from loss of a node containing masters
|
|
after it was the last node to stop
|
|
26256 add "rabbitmqctl force_boot" command to allow administrator to
|
|
override RabbitMQ's idea of the last node to shut down
|
|
26307 add messages_{ready,unacknowledged}_ram / messages_ram /
|
|
messages_persistent queue info keys
|
|
25666 / 26339 add message_bytes / message_bytes_{ready,unacknowledged,
|
|
ram,persistent} queue info keys
|
|
25214 improve robustness in the face of stray messages from Mnesia after
|
|
partitions
|
|
25279 make SSL handshake timeout configurable
|
|
25678 make mnesia table loading timeout configurable
|
|
26148 add username and vhost to amqp_error log messages
|
|
26169 add username / connection information to firehose trace messages
|
|
26242 improve clarity of rabbitmqctl error messages when stop_app has been
|
|
invoked
|
|
26225 provide connection age in rabbitmqctl list_connections
|
|
25446 add "rabbitmq-plugins set" subcommand
|
|
25824 / 26398 provide a summary of binary memory use
|
|
26397 split out memory used by mirrors vs masters / unmirrored in the
|
|
memory summary
|
|
26401 split out memory used by connection readers / writers / channels / other
|
|
in the memory summary
|
|
26192 improve usability of "rabbitmqctl remove_cluster_node --offline" by
|
|
not requiring the user to start a node with RABBITMQ_NODE_ONLY
|
|
18626 add RABBITMQ_USE_LONGNAME (with thanks to Marcos Diez)
|
|
26204 allow message TTL and queue expiry times above (2^32)-1 milliseconds
|
|
26211 fix use of type specifications deprecated in Erlang 17
|
|
26366 improve error messages when queue / exchange equivalence checks fail
|
|
26387 use new strange way to determine OTP minor version number
|
|
26394 add cluster heartbeat messages at a faster rate than net_ticktime
|
|
26406 add environment for plugins and non-RabbitMQ apps to "rabbitmqctl
|
|
environment"
|
|
25848 warn if RABBITMQ_SERVER_ERL_ARGS set in a way that will lead to
|
|
poor performance
|
|
25454 warn if rabbitmq-plugins and rabbitmq-server disagree on the
|
|
location of the enabled_plugins file
|
|
26221 improve performance of queue.declare{nowait=true}
|
|
|
|
|
|
building & packaging
|
|
--------------------
|
|
enhancements
|
|
26344 ensure missing config file is correctly logged in .deb / RPM
|
|
(since 3.3.0)
|
|
26154 switch standalone OS X build to use Erlang 17.1
|
|
26040 add missing BuildRequires to RPM spec (since 1.8.0)
|
|
26411 fix warning on Debian build clean due to deleted files
|
|
|
|
|
|
management plugin
|
|
-----------------
|
|
enhancements
|
|
26107 provide (and default to) mode where we maintain message rates
|
|
only per object (queue, exchange etc) not per object
|
|
pair (queue->channel etc) to save memory
|
|
26174 improve responsiveness of management API under load
|
|
25329 maintain history and draw charts for some per-node stats
|
|
(memory, disk space etc)
|
|
25470 provide UI to show / hide series in charts in the web UI
|
|
26382 provide UI to show / hide columns columns in the web UI
|
|
26225 provide connection age in connection list
|
|
25824 provide a summary of binary memory use
|
|
26151 make queues located on down cluster nodes visible in queue list
|
|
23724 provide API to list all consumers
|
|
26340 redesigned, more concise interface for queue / exchange /
|
|
policy arguments
|
|
26193 display locations of configuration, database and logs in management
|
|
26193 detect and warn on mismatched net_ticktime setting
|
|
26235 show enabled plugins in management
|
|
25984 switch to HTML5 local storage where available, ensure
|
|
multiple web UIs on same host do not share login
|
|
26358 support setting message properties with "rabbitmqadmin publish"
|
|
26390 ensure all charts have the same time range
|
|
26391 make "rabbitmqadmin list" restrict to a default set of columns
|
|
|
|
bug fixes
|
|
26399 ensure statistics do not depend on erlang:now/0 being in sync with
|
|
os:timestamp/0 (since 3.2.0)
|
|
|
|
|
|
shovel plugin
|
|
-------------
|
|
enhancements
|
|
26239 allow dynamic shovels to set message properties like static
|
|
ones do, and allow static shovels to use add_forward_headers like
|
|
dynamic ones do
|
|
|
|
|
|
LDAP plugin
|
|
-----------
|
|
enhancements
|
|
26275 support LDAP connections using StartTLS (requires Erlang R16B03 or later)
|
|
|
|
|
|
tracing plugin
|
|
--------------
|
|
enhancements
|
|
26357 add milliseconds to timestamps
|
|
|
|
|
|
STOMP plugin
|
|
------------
|
|
enhancements
|
|
26306 add flow control for message deliveries through STOMP; greatly reduces
|
|
memory use when slow consumers without prefetch-count connect to a
|
|
large / fast moving queue
|
|
26243 ensure all stomp-named queues are named "stomp-*"
|
|
26266 support "requeue" header on NACK frames
|
|
|
|
|
|
MQTT plugin
|
|
-----------
|
|
enhancements
|
|
26330 add flow control for message deliveries through MQTT; greatly reduces
|
|
memory use when slow consumers without prefetch-count connect to a
|
|
large / fast moving queue
|
|
|
|
bug fixes
|
|
26356 fix incorrect reporting of MQTT protocol version when using MQTT 3.1.1
|
|
|
|
|
|
Web-STOMP plugin
|
|
----------------
|
|
enhancements
|
|
26392 don't depend on the SockJS CDN
|
|
|
|
|
|
java client
|
|
-----------
|
|
enhancements
|
|
26402 provide a means to configure the time given to slow consumers
|
|
to continue consuming internally queued messages after the
|
|
connection closes
|
|
26359 add listeners for queue name changes during recovery
|
|
26207 add APIs to make methods easier to use in nowait mode
|
|
26121 add --randomRoutingKey flag to PerfTest
|
|
26091 add --consumerRate flag to PerfTest
|
|
26348 make ConnectionFactory's networkRecoveryInterval property into a long
|
|
|
|
bug fixes
|
|
26364 clean up client-side references to auto-deleted queues in the
|
|
common case (since 3.3.0)
|
|
26374 limit size of WorkPool queues, thus prevent slow consumer with no
|
|
prefetch limit from consuming unbounded memory (since 2.7.0)
|
|
26413 prevent duplicate connection recovery listeners from being
|
|
registered (since 3.3.0)
|
|
|
|
dependency change
|
|
26095 drop support for Java 1.5
|
|
|
|
licencing change
|
|
24543 make the Java client additionally available under the ASL2
|
|
|
|
|
|
.net client
|
|
-----------
|
|
enhancements
|
|
26130 automatic connection recovery similar to that of the Java client
|
|
26208 add APIs to make methods easier to use in nowait mode
|
|
26324 introduce an interface for ConnectionFactory
|
|
26334 set up stream timeouts as early as possible (thanks to John Oliver)
|
|
26199 allow IO and heartbeat to be background threads
|
|
25525 allow Subscription class to set explicit consumer tag
|
|
26097 add support for nack / reject in Subscription
|
|
26122 remove unnecessary lock in Subscription
|
|
|
|
feature removal
|
|
26131 / 26132 remove support for versions of AMQP prior to 0-9-1
|
|
26133 remove redirect following
|
|
|
|
|
|
erlang client
|
|
-------------
|
|
enhancements
|
|
26166 allow default ssl options to be provided in the configuration file
|
|
|
|
bug fixes
|
|
26418 ensure writer death is detected in direct connections (since 3.2.0)
|
|
(with thanks to Christopher Faulet)
|
|
26346 ensure amqp_rpc_client uses exclusive, autodelete response
|
|
queues (since 1.3.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 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.
|