245 lines
8.9 KiB
Plaintext
245 lines
8.9 KiB
Plaintext
Release: RabbitMQ 3.3.0
|
|
|
|
Security Fixes / Changes
|
|
========================
|
|
|
|
server
|
|
------
|
|
25603 prevent access using the default guest/guest credentials except via
|
|
localhost (since 1.0.0)
|
|
|
|
|
|
LDAP plugin
|
|
-----------
|
|
26052 do not allow use of password "" when connecting to servers which
|
|
permit unauthenticated bind (since 2.3.0)
|
|
|
|
|
|
Release Highlights
|
|
==================
|
|
|
|
server
|
|
------
|
|
bug fixes
|
|
26069 ensure that memory use is bounded when logging crash of large
|
|
processes (since 1.0.0)
|
|
25589 ensure that a queue which needs to reduce its RAM usage but is not
|
|
receiving any publishes still pages out messages quickly (since 2.0.0)
|
|
25991 fix topic routing in the face of multiple bindings that differ only
|
|
in arguments (e.g. those created by the federation plugin) (since 2.4.0)
|
|
26027 ensure autoheal does not hang winner node if 'rabbitmqctl stop_app'
|
|
issued on other node during healing (since 3.1.0)
|
|
26043 ensure autoheal does not crash if multiple autoheal requests occur
|
|
in quick succession and the leader make different decisions for each
|
|
(since 3.1.0)
|
|
26088 fix failure to delete virtual host if a queue in the virtual host is
|
|
deleted concurrently (since 1.0.0) (incorrectly reported fixed in 3.2.4)
|
|
25374 interpret AMQP field type 'b' as signed byte rather than unsigned, for
|
|
compatibility with our errata, and the majority of clients (since 1.0.0)
|
|
26058 prevent inaccurate (sometimes negative) report of memory use by
|
|
plugins (since 3.1.0)
|
|
26063 prevent spurious rabbit_node_monitor error messages when pausing in
|
|
pause_minority mode (since 3.2.4)
|
|
|
|
enhancements
|
|
25888 give busy queues a bias towards delivering more messages than they
|
|
accept, ensuring they tend to become empty rather than huge
|
|
26070 automatically reconsume when mirrored queues fail over (and
|
|
introduce x-cancel-on-ha-failover argument for the old behaviour)
|
|
25882 provide 'consumer utilisation' metric to help determine if consumers
|
|
are being held back by low prefetch counts
|
|
26039 ensure rabbitmqctl's formatting of process IDs is more shell-script
|
|
friendly
|
|
25654 allow use of separate modules for authentication and authorisation
|
|
25722 explicitly set Erlang distribution port in all circumstances
|
|
25910 add process identification information to process dictionary to aid in
|
|
debugging
|
|
25922 log reason why a node considered another node to be down
|
|
25860 enforce the rule that object names must be valid UTF-8 strings
|
|
25836 prevent deletion of amq.* built-in exchanges, and mark appropriate ones
|
|
as internal
|
|
25817 allow plugins to rewrite AMQP methods
|
|
25979 announce cluster-id when clients connect
|
|
26042 allow log_levels config item to silence mirrored queue events
|
|
26065 ensure config file location is logged even if config file is absent
|
|
22525 allow server-wide configuration of channel_max
|
|
25627 show current alarms in 'rabbitmqctl status'
|
|
|
|
performance improvements
|
|
25957 change semantics of basic.qos global flag in order to allow for
|
|
greatly enhanced prefetch performance
|
|
(see https://www.rabbitmq.com/consumer-prefetch.html)
|
|
25827,25853 substantially improve performance stopping and starting brokers
|
|
with many durable queues
|
|
26001 improve performance of persistent confirmed messages on spinning disks
|
|
24408 improve performance of mandatory publication (very substantially when
|
|
publishing across clusters)
|
|
25939,25942,25943 improve performance reading and writing AMQP (especially
|
|
reading large messages)
|
|
|
|
feature removal
|
|
25962 remove support for client-sent channel.flow method; basic.qos is
|
|
superior in all cases
|
|
25985 remove support for 'impersonator' tag
|
|
|
|
|
|
building & packaging
|
|
--------------------
|
|
bug fixes
|
|
25989 put the example config file in the correct directory for generic
|
|
Unix and standalone Mac, and put a copy in the AppData directory
|
|
on Windows (since 3.2.0).
|
|
26093 Debian: remove obsolete DM-Upload-Allowed field (thanks to Thomas
|
|
Goirand)
|
|
26094 Debian: ensure package can be built multiple times and remove
|
|
files from debdiff that should not be there (thanks to Thomas Goirand)
|
|
|
|
enhancements
|
|
25844 switch standalone Mac release to 64 bit architecture
|
|
|
|
|
|
management plugin
|
|
-----------------
|
|
bug fixes
|
|
25868 ensure connections in flow control for a long time still show 'flow'
|
|
and do not transition to 'blocked' (since 2.8.0)
|
|
|
|
enhancements
|
|
24829 provide information about flow control status of internal components,
|
|
to help find bottlenecks
|
|
25876 provide regex option when filtering lists (with thanks to Joseph Weeks)
|
|
|
|
feature removal
|
|
25720 remove the redirect from 2.x-era port 55672 to 15672
|
|
|
|
|
|
federation plugin
|
|
-----------------
|
|
enhancements
|
|
23906 implement cycle detection for messages forwarded over federation
|
|
25985 remove requirement to configure local-username
|
|
26042 allow log_levels config item to silence federation events
|
|
25979 replace local-nodename with (non-federation-specific) cluster-id
|
|
25902 preserve original routing key when forwarding messages via
|
|
queue federation
|
|
25904 tidy up nomenclature in federation status / management
|
|
|
|
|
|
shovel plugin
|
|
-------------
|
|
enhancements
|
|
24851 introduce "dynamic" shovels, controlled by parameters in a similar way
|
|
to federation (see https://www.rabbitmq.com/shovel-dynamic.html)
|
|
25890 make shovel status rather more informative
|
|
25894 introduce "auto-delete" dynamic shovels
|
|
25935 allow dynamic shovels to record routing information similarly to
|
|
federation
|
|
26045 default prefetch-count to 1000 rather than unlimited
|
|
|
|
|
|
LDAP plugin
|
|
-----------
|
|
enhancements
|
|
25785 add 'dn_lookup_bind' to allow lookup of a user's DN before binding
|
|
25839 allow specification of SSL options for (e.g.) presenting client
|
|
certificates when connecting to an LDAP server
|
|
26022 support timeouts when connecting to an LDAP server
|
|
25570 replace 'as_user_no_password' error with something which makes more sense
|
|
|
|
|
|
STOMP plugin
|
|
------------
|
|
bug fixes
|
|
26010 remove examples for the headers exchange that haven't worked since 2010
|
|
|
|
|
|
MQTT plugin
|
|
-----------
|
|
bug fixes
|
|
25941 ensure keepalives are implemented completely (since xxx)
|
|
|
|
enhancements
|
|
26067 initial support for MQTT 3.1.1 draft
|
|
25877 support specifying vhost at the time of connection
|
|
|
|
|
|
Web-STOMP plugin
|
|
----------------
|
|
bug fixes
|
|
25896 ensure examples set content-type (since 3.0.0)
|
|
|
|
enhancements
|
|
25828 upgrade cowboy to get sec-websocket-protocol support
|
|
25913 support SSL (with thanks to James Shiell)
|
|
|
|
|
|
JSON-RPC channel plugin
|
|
-----------------------
|
|
feature removal
|
|
26029 remove JSON-RPC channel plugin from the official release
|
|
|
|
|
|
java client
|
|
-----------
|
|
enhancements
|
|
14587 support automatically reconnecting to server(s) if connection is
|
|
interrupted
|
|
26008 make it easier to start a Connection with a custom ExceptionHandler
|
|
25833 allow specifying a per-ConnectionFactory ExecutorService
|
|
25999 handle running in a security-restricted context (e.g. Google App engine)
|
|
25663 improve type safety of ShutdownSignalException "reason" property
|
|
26068 improve clarity of AlreadyClosedException reason
|
|
26015 make Envelope.toString() do something useful
|
|
|
|
|
|
.net client
|
|
-----------
|
|
bug fixes
|
|
25911 ensure Subscriptions are informed if a channel closes (since 1.4.0)
|
|
25374 interpret AMQP field type 'b' as signed byte rather than unsigned, for
|
|
compatibility with our errata, and the majority of other clients
|
|
(since 1.0.0)
|
|
25046 ensure timeout establishing connection does not throw
|
|
System.NotSupportedException (since 1.0.0)
|
|
25278 ensure timeout establishing connection does not throw
|
|
ProtocolVersionMismatchException (since 2.0.0)
|
|
26071 ensure attempted use of a closed channel leads to
|
|
AlreadyClosedException (since 1.0.0)
|
|
25082 ensure EventingConsumer sets supertype model field (since 1.0.0)
|
|
|
|
enhancements
|
|
25895 support for SSL cert selection and validation callbacks (thanks to
|
|
"pooleja")
|
|
26068 improve clarity of AlreadyClosedException reason
|
|
|
|
|
|
erlang client
|
|
-------------
|
|
bug fixes
|
|
25374 interpret AMQP field type 'b' as signed byte rather than unsigned, for
|
|
compatibility with our errata, and the majority of other clients
|
|
(since 1.0.0)
|
|
26050 add missing handle_server_cancel/2 to amqp_gen_consumer_spec.hrl
|
|
|
|
enhancements
|
|
25985 do not require direct connections to specify a username
|
|
|
|
|
|
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.
|