2024-05-06 18:10:04 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message:
rabbitmq: updated to 3.13.2
RabbitMQ 3.13.2
Core Broker
Bug Fixes
Several Quorum queues WAL and segment file operations are now more resilient to \
certain filesystem operation failures.
Classic queues v2 could run into an exception after a node restart.
Peer discovery failed in some IPv6-only environments. This behavior was new in \
3.13.x.
rabbitmqctl stop_app is now faster, in particular for nodes that are not under \
significant load.
x-death counter was not incremented for messages that expired due to message TTL.
This behavior was new in 3.13.x.
Quorum queue replica removal now more resilient in clusters under close to peak load,
a condition that can trigger timeouts for certain operations involving multiple \
nodes.
rabbitmq-server (the shell script) now propagetes the exit code from the runtime \
process.
Enhancements
Definition import did not handle a scenario where some virtual hosts did not have
the default queue type metadata key set.
When a virtual host is deleted, several more internal events are emitted: for \
example,
the events related to removal of user permissions and runtime parameters associated
with the virtual host.
CLI Tools
Bug Fixes
rabbitmqctl list_unresponsive_queues now supports the (queue) type column.
MQTT Plugin
Bug Fixes
MQTT clients that did not configure a will (message) delay interval could run into
an exception due to an unnecessary permission check on the will target.
Messages published by MQTT clients were missing the timestamp_in_ms (the more \
precise header).
This behavior was new in 3.13.x.
Messages published using QoS 0 were unintentionally marked as durable internally.
Management Plugin
Bug Fixes
GET /api/queues/{vhost}/{name} could return duplicate keys for quorum queues.
Several endpoints responded with a 500 instead of a 404 when target virtual host
was non-existent.
OAuth 2 AuthN/AuthZ Plugin
Enhancements
The OpenID Connect RP-Initiated Logout feature is now only used if the identity \
provider service
lists it as supported.
Kubernetes Peer Discovery Plugin
Enhancements
More TLS client settings now can be configured:
cluster_formation.k8s.tls.cacertfile = /path/to/kubernetes/api/ca/certificate.pem
cluster_formation.k8s.tls.certfile = /path/to/client/tls/certificate.pem
cluster_formation.k8s.tls.keyfile = /path/to/client/tls/private_key.pem
cluster_formation.k8s.tls.verify = verify_peer
cluster_formation.k8s.tls.fail_if_no_peer_cert = true
JMS Topic Exchange Plugin
Enhancements
The plugin now stores its state on multiple nodes.
Shovel Plugin
Bug Fixes
Shovel metrics and internal state are now deleted when their shovel is, \
regardless of what node
it was hosted on and what node was targeted by the deleting (CLI or HTTP API) \
operation.
rabbitmqctl list_shovels CLI command now will list shovels running on all \
cluster nodes
and not just the target node.
Dependency Changes
ra was updated to 2.10.0
|
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
|