This isn't supported on some operating systems. If it turns out to be
required by more packages we should create a tool.mk for lang/elixir.
Mark the package MAKE_JOBS safe again.
3.7.2
- Bug fix in the HTTP auth backend
3.7.1
- Bug fixes
3.7.0
- Minimum required Erlang version is now 19.3
- Automation-friendly cluster formation
- Distributed management plugin, including minor breaking HTTP API changes.
- Simpler, ini-style configuration format
- Per-vhost limits
- Operator policies
- Topic-based authorisation
- Cross-protocol Shovel (currently supports AMQP 0.9.1 and AMQP 1.0)
- Command-line tools are extensible via plugins
- Message store multi-tenancy
- Proxy protocol support
- Web STOMP no longer supports WebSocket emulation
- Java and .NET client releases no longer track RabbitMQ server releases
- .NET client now supports .NET Core.
- Management plugin extensions now must target Cowboy 2.0
- Java client for RabbitMQ HTTP API
rabbitmq 3.6.14
Debian and RPM packages
- systemd service unit no longer has trailing comments that could lead
nodes into restart loops on some systems.
Management Plugin
- Expandable sections on node metrics page failed to expand.
rabbitmq 3.6.13
Core Server
- Memory usage monitor uses subprocesses a lot more sparingly.
- Very busy queues are now more efficient at prioritizing consumers
- Queue master strategies now take additional queue HA arguments into
account.
- Logging to standard output using RABBITMQ_LOGS=- wasn't possible on
Windows.
- Queue master locator name now can be specified as Erlang strings.
- Direct Erlang client connections could fail with obscure messages
when target node was still booting.
- supervisor2 now can be used in environments that perform hot code
upgrades.
- systemd service file now white lists exit code 69.
- Example systemd service file now includes service restart settings.
- Queue master locator strategy now can be configured using strings.
- Plugin activation avoids logs things that can be confusing.
Management Plugin
- Minor efficiency improvements around stats collection.
- jQuery upgraded to 1.12.4.
- UI improvements.
- It is now possible to configure an HTTP API path prefix for the
plugin.
- Queue details page no longer truncates node name.
- Policy name in queue and exchange info is now a link.
- DELETE /api/connections/{name} is now more defensive.
Core Server
- Process responsible for running the autoheal partition handling
strategy could run into a deadlock with its peers, preventing autoheal
from completing.
- Garbage collection of mirrored queue metrics on nodes that did not
host a master or mirror for a queue affected delivery and
acknowledgement rates. This could result in rates being 0 or negative
when they should not be.
- Stats emission could prevent queue mirrors from performing garbage
collection and consume memory even when they were empty.
- RABBITMQ_SCHEDULER_BIND_TYPE and RABBITMQ_DISTRIBUTION_BUFFER_SIZE now
can be set via rabbitmq-env.conf.
Shovel Management Plugin
- Passwords in source and destination URIs are now redacted out.
Federation Management Plugin
- Passwords in upstream URIs are now redacted out.
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.
- rabbitmqctl forget_cluster_node used in offline mode could result in
promotion of a node that's no longer a cluster member.
- Queue master locator could not be set using optional queue arguments
(x-arguments).
- CLI tool (e.g. rabbitmqctl) man pages were not rendered correctly.
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.
- Memory relative free disk space limits now support integer values as
well as floats.
Management and Management Agent Plugins
- TLS-related settings in HTTP API listeners could break JSON
serialisation for the GET /api/overview endpoint.
- Non-numerical values for numerical stats are now handled safety by
stats aggregation.
- Stats are no longer emitted for connections that are not considered
to be in the fully initialised state.
- 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.
- I/O average time per operation graph didn't match legend.
- Sample retention policies are now validated more strictly to avoid
configurations that are not supported and will lead to exceptions.
- Certain stats for connections were not initialised as numerical
values, which resulted in log noise.
- UI operation for binding deletion did not respect optional (extra)
binding arguments.
- Current virtual host is pre-selected on the "Add/update policy"
form.
MQTT Plugin
- 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.
LDAP Plugin
- Stale connection purging in LDAP connection pool could fail with a
badmatch.
Trust Store Plugin
- 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.
Web STOMP Plugin
- The plugin failed to start after being stopped and re-enabled.
- Server-initiated consumer cancellation failed with an exception.
Management Visualiser Plugin
- The plugin wasn't compatible with recent 3.6.x releases.
Management and Management Agent Plugins
- Security Vulnerability Patches
- 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
- Bug Fixes
- Certain TCP and TLS listener configuration settings could break
JSON serialisation of GET /api/overview responses.
Federation Plugin
- More numerical types are now handled for the "hops" property.
.NET Client
- Calling ExchangeBind more than once with the same arguments threw an
exception.
3.6.5
- Bug fixes
3.6.4
- Bug fixes
- Erlang 19.0 compatibility
- Usability improvements
3.6.3
- Important bug fixes
- systemd support in the Debian package
- New OpenGPG key used for artifact signing
- New plugins included into the distribution
- Usability improvements
3.6.2
- Bug fixes
- New statistics collector in management plugin
- Usability improvements
RabbitMQ 3.6.1 is a maintenance release that includes a fix for
CVE-2015-8786, a vulnerability in RabbitMQ management plugin.
Server
- Purging a lazy queue could result in an exception
- Ensure epmd is running before starting RabbitMQ node on Windows
- Channel error could make broker unreachable
- (Automatic) deletion of an auto-delete queue could lead
to blocked channels
- During (from scratch) queue sync, queue master node didn't respect
mirror alarm state. With large data sets this could drive mirror
node out of memory.
- 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.
- Heavy and/or prolonged rabbitmqctl use could exhaust Erlang VM atom table
- "Min masters" queue master location strategy could result in an error.
- Fixed a race condition in pause_minority handling mode.
- Significantly reduce possibility of a race condition when an exchange
is deleted and immediately re-declared, e.g. by a federation link.
- amq.rabbitmq.log messages now have information about originating
node in message headers
- scripts/rabbitmq-env now works with GNU sed 4.2.2
- Exceptions in VM memory use calculator no longer affect broker startup
- Direct Reply-to capability is now advertised to clients
- Paths with non-ASCII characters on Windows are now handled
- Configurable number of TCP connection acceptors
- rabbitmqctl cluster_status now includes cluster-wide resource alarm status
- Windows installer no longer jumps over installation log
- Improved rabbitmqctl reset error messages
- More unsigned field data types are supported.
Federation Plugin
- Significantly reduce possibility of a race condition when an exchange
is deleted and immediately re-declared, e.g. by a federation link
Management plugin
- CVE-2015-8786: user-provided query parameters lengths_age and
lengths_incr had no validation and could be used to exhaust server
resources.
- Password hashing function is now included in exported definitions
- Internet Explorer (9+) compatibility restored
- Internet Explorer 11 compatibility fixes
- When policy fails to be created with invalid paramaters a sensible
error message will be displayed.
Federation Management plugin
- Federation link form now includes more settings (that are exchange-
and queue-federation specific)
Clean up and simplify Makefile.
Breaking changes in 3.6.0:
- Minimum required Erlang version is R16B03 for plain ("just TCP")
connections for all protocols and 17.5 for TLS ones (18.x is
recommended for both).
- .NET client now requires .NET 4.5.
- "Immediate" flag is removed from the .NET client (it hasn't been
supported by the server since RabbitMQ 3.0).
- Default subscription TTL in MQTT is now 24 hours.
- Server artifacts are now distributed as xz archives and not gz.
- Build system has been completely reworked and now uses erlang.mk.
3rd party plugins must be adapted to the new build system.
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
- More popular plugins now ship with the broker: rabbitmq_sharding
and rabbitmq_event_exchange, for example.
Full release notes:
https://github.com/rabbitmq/rabbitmq-server/releases/tag/rabbitmq_v3_6_0
RabbitMQ 3.5.3:
- If rabbitmqctl can't contact a node, suggest to verify any Erlang TLS
distribution configuration
- Ensure the memory monitor is fully started before the file handle cache
is used
- Management plugin: Fix a crash during RabbitMQ startup if
force_fine_statistics is set in rabbitmq_management_agent configuration
RabbitMQ 3.5.2:
- Improve integration with Docker
- Add a way to send log messages (both "normal" and sasl messages) to stdout
- Do not try to use exec before su ... as su(1) forks a process anyway
- Report a queue is under flow control only if it was in this situation
in the last 1 second, instead of the last 5 seconds previously
- Add a check to ensure the Mnesia directory is not shared with the PID file
location or the plugin expansion directory
- Ensure the file handle cache remains under the memory high watermark
when syncing a mirrored queue
- Restore support for messages stored on disk with the previous x-death
header format
- Ensure passwords containing $ characters are properly escaped so they are
not interpreted by the shell, when a password is changed using rabbitmqctl
change_password
- Management plugin: Allow to configure rates_mode even if only
rabbitmq-management-agent is enabled
- Management plugin: Fix a badarith crash if for some reasons, the disk free
space or the file descriptors count are temporarily reported incorrectly
- STOMP plugin: Ensure the "processor" thread is terminated at the same time
the "reader" thread exits
RabbitMQ 3.5.1:
- Introduce a new channel log category for channel log messages
- Ensure consumer_closed events are emitted for the actually closed channels
only, not all of them
- Ensure the number of x-death message headers doesn't grow indefinitely
- Adjust the file read buffer cache size to avoid useless reads
- Ensure the priority queue plugin reports its memory consumption properly
- Prevent a crash while synchronising paged out priority queues
- Pass the PID file to rabbitmqctl stop in rabbitmq-server.ocf, exactly
like Debian- and Red Hat-flavour init scripts
- AMQP plugin: Fix heartbeats
- AMQP plugin: Respond with a protocol error if a disposition frame
is incorrect
- AMQP plugin: Fix a crash if the initial-delivery-count is not 0
Bugfixes in 3.2.4
=================
server
------
bug fixes
26014 prevent 541 internal error removing a nonexistent binding from a topic
exchange (since 3.2.0)
25762 fix failure to delete virtual host if a queue in the virtual host is
deleted concurrently (since 1.0.0)
26013 ensure connection.blocked is sent in all circumstances it should be
(since 3.2.0)
26006, 26038 ensure autoheal does not hang if a node is manually stopped
during autoheal (since 3.1.0)
26000 prevent crash of mirrored supervisor in some circumstances after a
network partition is healed (since 2.6.0)
25972 fix syntax error in example configuration file (since 3.2.0)
management plugin
-----------------
bug fixes
24476 prevent statistics database from vanishing after a network partition is
healed (since 2.8.3)
25983 prevent "node statistics not available" error when mochiweb is
configured with an explicit list of SSL ciphers (since 2.6.0)
federation plugin
-----------------
bug fixes
25998 ensure upstreams which are timing out establishing network connections
can be deleted in a timely fashion (since 3.0.0)
shovel plugin
-------------
bug fixes
25996 ensure shovels which are timing out establishing network connections
do not block broker shutdown (since 2.3.0)
STOMP plugin
------------
bug fixes
26028 prevent potential deadlocks during shutdown (since 2.3.0)
MQTT plugin
-----------
bug fixes
25982 ensure messages published with QOS=1 are persistent (since 3.1.0)
Erlang client
-------------
bug fixes
26041 prevent rare, fake "541 internal error" reported client-side when
shutting down connections (since 2.1.1)
.NET client
-----------
bug fixes
26016 ensure SSL connection establishment times out if necessary (since 1.0.0)
26047 ensure IModel.ConfirmSelect() is idempotent (since 2.3.0)
Bugfixes in 3.2.3
=================
server
------
bug fixes
25936 stem leak when queues with active consumers terminate (since 3.2.0)
25928 fix cosmetic error when sending connection.close-ok after client
already closed the connection (since 1.0.0)
25965 limit messages to ~2GB to prevent "Absurdly large distribution output
data buffer" VM crash (since 1.0.0)
24927 avoid broker being overwhelmed while logging benign messages starting with
"Discarding messages" (since 1.0.0)
25952 prevent "Absurdly large distribution output data buffer" VM crash when
sending many/large messages to a mirrored queue (since 2.6.0)
25925 remove extraneous service parameters when installing on windows
(since 1.5.0)
25929 prevent error being logged when connection is closed while it is still
being opened (since 1.0.0)
federation plugin
-----------------
bug fixes
25945 ensure federated queues correctly stop federating messages when channels
close or crash without cancellation from consumers (since 3.2.0)
25971 prevent crash of federated mirrored queues on deletion (since 3.2.0)
25956 prevent federation of the queues used internally by federated exchanges
(since 3.2.0)
25949 prevent unnecessary CPU use when ACKs are not in use (since 2.6.0)
shovel plugin
-----------------
bug fixes
25934 remove ordering constraint on configuration items (since 2.0.0)
25949 prevent unnecessary CPU use when ACKs are not in use (since 2.0.0)
LDAP plugin
-----------
bug fixes
25914 fix use of dn_lookup_attribute configuration on OpenLDAP (since 2.8.0)
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
3.2.2
This release fixes a number of bugs in the broker (including High Availability
mode) and plugins (LDAP, Management and MQTT).
3.2.1
This fixes a number of bugs in 3.2.0 and earlier versions.
3.2.0
This release introduces federated queues and features enhanced policies for
aspects of the broker which previously required AMQP arguments. Clients can
now obtain better feedback about authentication failures and broker alarm
conditions.
This release corrects a number of defects in the broker and plugins.
Notable changes:
- eager synchronisation of mirror queue slaves;
- automatic cluster partition healing;
- improved statistics (including charts) in the management plugin;
- many smaller new features, bug fixes and performance improvements.
See release notes for full changelog:
http://www.rabbitmq.com/release-notes/README-3.1.0.txt
Major changes in 3.0.0:
- Policy-based configuration of mirroring and federation
- Revamped clustering commands
- Web-STOMP and MQTT plug-ins
- Per-message TTL
Too many bugfixes since 2.8.2, please see individual changelogs:
http://www.rabbitmq.com/changelog.html
Various pkgsrc fixes:
- Fix mangled PLIST from the previous commit.
- Depend on coreutils for readlink, which is used in rabbitmq-env.
- Depend on bash, which is assumed throughout the scripts.
- Make sure the shell is passed properly to make/install targets.
- Fix Python usage (add Python 2.7) and clean up other bits.
RabbitMQ changelog:
2.6.1 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.
2.6.0 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.
2.6.0 enhancements
- Introduce active-active HA, with queues getting mirrored on nodes in
a cluster. See http://www.rabbitmq.com/ha.html.
- Revamp the handling of AMQP's tx (transaction) class and clarify its
behaviour See http://www.rabbitmq.com/specification.html#tx.
- Replace the 'administrator' flag, as used by the management plugin,
with a more general 'user tags' mechanism. See
http://www.rabbitmq.com/man/rabbitmqctl.1.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.
RabbitMQ is a complete and highly reliable Enterprise Messaging
system. The RabbitMQ client libraries and broker daemon can be used
together to create an AMQP network, or used individually to bring
the benefits of RabbitMQ to established networks.
(Based on wip/rabbitmq.)