2024-04-25 10:08:57 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
rabbitmq: updated to 3.13.1
RabbitMQ 3.13.1
Core Broker
Bug Fixes
Classic queue v2 message store compaction could fail behind under high enough load,
significantly increasing node's disk space footprint.
Improved quorum queue safety in mixed version clusters.
When Khepri was enabled and virtual host recovery failed, subsequent recovery
attempts also failed.
Messages published without any headers set on them did not have a header property
set on them. This change compared to 3.12.x was not intentional.
Free disk space monitor on Windows ran into an exception if external call
to win32sysinfo.exe timed out.
Enhancements
channel_max_per_node is a new per-node limit that allows to put a cap on the number
of AMQP 0-9-1 channels that can be concurrently opened by all clients connected \
to a node:
# rabbitmq.conf
channel_max_per_node = 5000
This is a guardrail mean to protect nodes from application-level channel leaks.
Stream Plugin
Bug Fixes
Avoids a Windows-specific stream log corruption that affected some deployments.
When a super stream cannot be created because of a duplicate partition name,
a more informative error message is now used.
CLI Tools
Bug Fixes
rabbitmq-plugins list --formatter=json --silent will no longer emit any warnings
when some of the plugins in the enabled plugins file are missing.
OAuth 2 Plugin
Bug Fixes
Configuring a JWKS URL without specifying a CA certificate resulted
in an exception with Erlang 26's TLS implementation.
Management Plugin
Bug Fixes
Set default sort query parameter value for better compatibility with an external
Prometheus scraper. Note that the built-in Prometheus plugin
is the recommended way of monitoring RabbitMQ using Prometheus-compatible tools.
When a tab (Connections, Queues and Streams, etc) is switched, a table \
configuration pane
from the previously selected tab is now hidden.
Enhancements
GET /api/queues/{vhost}/{name} now supports enable_queue_totals as well as \
disable_stats.
This combination of query parameters can be used to retrieve message counters while
greatly reducing the number of metrics returned by the endpoints.
Federation Plugin
Enhancements
Exchange federation now can be configured to use a custom queue type for their \
internal buffers.
To use a quorum queue, set the queue-type federation policy key to quorum.
rabbitmq_federation_running_link_count is a new metric provided via Prometheus.
Dependency Changes
osiris was updated to 1.8.1
khepri was upgraded to 0.13.0
cowboy was updated to 2.12.0
|
2024-02-22 23:56:08 by Adam Ciarcinski | Files touched by this commit (4) | |
Log message:
rabbitmq: updated to 3.12.13
RabbitMQ 3.12.13
Core Broker
Bug Fixes
When a channel is closed, its consumer metric samples will now be cleared differently
depending on the number of them. In 9356, it was over optimized for the uncommon \
case with
a very large number of consumers per channel, hurting the baseline case with one \
or a few consumers
per channel.
In part contributed by @SimonUnge (AWS).
CLI Tools
Enhancement
CLI tool startup time was reduced.
Bug Fixes
JSON output formatter now avoids ANSI escape sequences.
Contributed by @ariel-anieli.
ANSI escape sequences are no longer used on Windows.
Contributed by @ariel-anieli.
Stream Plugin
Bug Fixes
If a stream publisher cannot be set up, a clearer message will be logged.
Management Plugin
Bug Fixes
GET /api/nodes/{name} failed with a 500 when called with a non-existed node name.
Federation Plugin
Bug Fixes
Upstream node shutdown could produce a scary looking exception in the log.
Exchange federation links could run into an exception.
Contributed by @gomoripeti (CloudAMQP).
Dependency Changes
cowboy was updated to 2.11.0
|
2024-01-06 19:33:23 by Adam Ciarcinski | Files touched by this commit (4) | |
Log message:
rabbitmq: updated to 3.12.12
RabbitMQ 3.12.12
Core Broker
Bug Fixes
Environments with a lot of quorum queues could experience a large Erlang process
build-up. The build-up was temporary but with a sufficiently large number of
quorum queues it could last until the next round of periodic operations,
making it permanent and depriving the node of CPU resources.
RabbitMQ core failed to propagate more authentication and authorization context, \
for example,
MQTT client ID in case of MQTT connections, to authN and authZ backends. This \
was not intentional.
Nodes now takes more precaution about persisting feature flag state
(specifically the effects of in-flight changes) during node shutdown.
Enhancements
Simplified some type specs.
Contributed by @ariel-anieli.
Stream Plugin
One returned error value did not match the RabbitMQ Stream Protocol specification.
MQTT Plugin
Bug Fixes
Recovering connections from QoS 0 consumers (subscribers) could fail if they \
were previously connected to a failed node.
|
2023-11-20 10:15:54 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
rabbitmq: updated to 3.12.9
RabbitMQ 3.12.9
Core Broker
Bug Fixes
When a topic permission was deleted, an internal event of type permission.deleted
was emitted in some cases, instead of topic.permission.deleted.
Shovel Plugin
Bug Fixes
Shovels on 3.12.8 nodes failed during a rolling cluster upgrade due to internal
identifier format changes.
Starting with this release, both old and new formats are supported for upgrade \
safety.
Grafana Dashboard
Enhancements
Global counters for producers are now available in the dashboard.
MQTT Plugin
Bug Fixes
Avoids an unnecessary warning in the logs.
CLI Tools
Enhancements
rabbitmq-diagnostics list_policies_that_match [queue name] is a new command
that simplifies troubleshooting of policy conflicts.
Management Plugin
Enhancements
Nodes that have OAuth 2 enabled now redirect the user to the original landing \
page (if any)
after successful login with the IDP.
|
2023-11-02 20:31:16 by Adam Ciarcinski | Files touched by this commit (2) | |
Log message:
rabbitmq: updated to 3.12.8
RabbitMQ 3.12.8
Core Server
Bug Fixes
Avoids a potential exception in the autoheal partition handler.
Contributed by @Ayanda-D.
Enhancements
raft.segment_max_entries is now validated to prevent the value from overflowing \
its 16-bit segment file field.
Maximum supported value is now 65535.
Shovel Plugin
Enhancements
Significantly faster Shovel startup in environments where there are many of them \
(one thousand or more).
AMQP 1.0 Erlang Client
Enhancements
User-provided credentials are now obfuscated using an one-off key pair generated \
on node boot.
This keeps sensitive client state information from being logged by the runtime \
exception logger.
|
2023-10-23 16:47:10 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
rabbitmq: updated to 3.12.7
RabbitMQ 3.12.7
Core Server
Bug Fixes
Stream replication connections configured to use exclusively TLSv1.3 failed.
On startup, stream replicas will handle one more potential case of segment file \
corruption
after an unclean shutdown.
default_policies.*.queue_pattern definition in rabbitmq.conf was incorrectly parsed.
Avoid log noise when inter-node connections frequently fail and recover.
Enhancements
Optimized stream index scans. Longer scans could result in some replicas stopping
with a timeout.
Classic queue storage version is now a supported key for operator policies.
Queue length limit overflow behavior now can be configured via operator policies.
CLI Tools
Bug Fixes
rabbitmq-streams list_stream_consumer_groups incorrectly validated the set of \
columns it accepts.
Enhancements
Several list_stream_* commands (available via both rabbitmq-diagnostics and \
rabbitmq-streams) commands now can
display replica node in addition to other fields.
rabbitmqctl add_user now can accept a pre-generated salted password instead
of a plain text password, both as a positional argument and via standard input:
# This is just an example, DO NOT use this value in production!
# The 2nd argument is a Base64-encoded pre-hashed and salted value of \
"guest4"
rabbitmqctl -- add_user "guest4" \
"BMT6cj/MsI+4UOBtsPPQWpQfk7ViRLj4VqpMTxu54FU3qa1G" \
--pre-hashed-password
# try authenticating with a pair of credentials
rabbitmqctl authenticate_user "guest4" "guest4"
Management Plugin
Bug Fixes
Message consumption with the "Nack message, requeue: true" option did \
not actually requeue deliveries.
Enhancements
HTTP API request body size is now limited to 10 MiB by default.
Two endpoints, one that accepts messages for publishing (note: publishing over \
the HTTP API is greatly discouraged)
and another for definition import,
will now reject larger transfers with a 400 Bad Request response.
DELETE /api/queues/{vhost}/{name} now can delete exclusive queues.
Key supported by operator policies are now grouped by queue type in the UI.
MQTT Plugin
Enhancements
Improved data safety for confirms in environments where the plugin uses classic \
queues.
Web MQTT Plugin
Bug Fixes
Avoid an exception when a not fully established MQTT-over-WebSockets connection \
terminated.
JMS Topic Exchange Plugin
Bug Fixes
Recovery of bindings of durable queues bound to a transient JMS topic exchange \
failed.
Sharding Plugin
Bug Fixes
Recovery of bindings of durable queues bound to a transient x-modulo-hash \
exchange failed.
Recent History Exchange Plugin
Bug Fixes
Recovery of bindings of durable queues bound to a transient recent history \
exchange failed.
Dependency Upgrades
osiris has been upgraded to 1.6.9
|
2023-08-14 07:25:36 by Thomas Klausner | Files touched by this commit (1247) |
Log message:
*: recursive bump for Python 3.11 as new default
|
2023-07-24 09:10:25 by Adam Ciarcinski | Files touched by this commit (4) | |
Log message:
rabbitmq: updated to 3.12.2
RabbitMQ 3.12.2
Core Server
Enhancements
Free disk space monitor on Windows is now more selective in what errors are
logged.
Bug Fixes
Queue recovery on node restart in certain conditions could run into an exception
file_handle_cache operations are now safer when handling non-existent keys.
Fixed a potential resource leak in at-least-once dead lettering from quorum queues.
CLI Tools
Enhancements
A new command, rabbitmqctl deactivate_free_disk_space_monitoring, can be used to \
(temporarily or permanently) disable
free disk space monitoring on a node.
To re-activate it, use rabbitmqctl activate_free_disk_space_monitoring.
AMQP 1.0 Plugin
Bug Fixes
AMQP 1.0 clients that try to publish in a way that results in the message not \
being routed
anywhere are now notified with a more sensible settlement status.
Prometheus Plugin
Enhancements
Prometheus scraping API endpoints now support optional authentication.
The plugin now filters out values that are undefined or NaN, simply excluding
them from the API endpoint response.
Previously, if a metric was not computed for any reason (e.g. free disk space monitor
was disabled on the node), its value could end up being rendered as undefined or NaN,
two values that Prometheus scrapers cannot handle (for numerical types such as \
gauges).
Management Plugin
Bug Fixes
It was not possible to close a table column selection pane on
screens that had little vertical space.
STOMP Plugin
Bug Fixes
This is a potentially breaking change.
The plugin will now enforce maximum STOMP frame size. Frames larger than that
size will be rejected. The default maximum size is 4 MiB. It can be increased or \
decreased:
# increase maximum supported STOMP frame size to 10 MiB
stomp.max_frame_size = 10485760
To reduce it from the default 4 MiB to 2 MiB:
# 2 MiB
stomp.max_frame_size = 2097152
Shovel Plugin
Bug Fixes
Shovel will gracefully stop when its destination (target) does not exist.
Such shovels will then be periodically restarted to retry.
Web MQTT Plugin
Enhacements
It is now possible to opt in to deactivate file handle cache use in the plugin:
web_mqtt.use_file_handle_cache = false
Web STOMP Plugin
Enhacements
It is now possible to opt in to deactivate file handle cache use in the plugin:
web_stomp.use_file_handle_cache = false
Dependency Upgrades
ra was upgraded to 2.6.3
|
2023-07-07 15:45:06 by Adam Ciarcinski | Files touched by this commit (2) |
Log message:
rabbitmq: fix building with Elixir 1.15.2
|
2023-06-27 10:34:41 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
rabbitmq: updated to 3.12.1
3.12.1
Core Server
Bug Fixes
Declaration of a classic queue could run into an exception.
Classic queues v1 (CQv1) that had a backlog of messages stored by 3.9 and \
earlier versions
could run into an exception during queue index recovery after an upgrade to \
3.10.x or any later series.
CQv2 and queues without a backlog were not affected.
Contributed by @gomoripeti (CloudAMQP).
Nodes that had a large number of quorum queues could observe accumulation of \
Erlang processes
under significant load.
Feature flag discovery on a newly added node could discover an incomplete \
inventory of feature flags.
Feature flag discovery operations will now be retried multiple times in case of \
network failures.
Nodes in clusters that had quorum queues and non-mirrored classic queues on \
stopped (or failed) nodes
could run into an exception.
The same exception could affect rabbitmqctl list_queues.
Proxy Protocol v2 LOCAL packets were not supported.
Enhancements
When a quorum queue does not find its local replica data files on boot, it will \
now log
a warning.
Management Plugin
Bug Fixes
An attempt to clear limits of a non-existent virtual host failed with a 500 \
status code.
Enhacements
Management UI will now display node maintenance status.
Contributed by @SimonUnge (AWS).
The "Queues" tab in the UI was renamed to "Queue and \
Streams" to better reflect
its contents.
New HTTP API endpoints for quorum queue replica management, equivalent to
the rabbitmq-queues commands that manage replicas.
POST /api/queues/quorum/{vhost}/{name}/replicas/add
DELETE /api/queues/quorum/{vhost}/{name}/replicas/remove
POST /api/queues/quorum/replicas/on/{node}/grow
DELETE /api/queues/quorum/replicas/on/{node}/shrink
Stream Plugin
Bug Fixes
Stream client connections that authenticated using x.509 certificates
failed.
OAuth 2 Plugin
Bug Fixes
Only set OAuth 2 client's CA certificate file setting when it is defined.
Enhancements
The plugin will now accept JWT tokens without a scope. Such tokens would only be \
useful when the plugin
is used exclusively for authentication and not authorization.
oauth2 is now an accepted alias for the OAuth 2 authentication and authorization \
backend:
auth_backends.1 = oauth2
Previously the only option for OAuth 2 was using a full module name,
rabbit_auth_backend_oauth2.
STOMP Plugin
Bug Fixes
STOMP plugin log entries had an extra line feed character.
Dependency Upgrades
ra was upgraded to 2.6.2
osiris was upgraded from 1.5.1 to 1.6.0
|