chore(deps): update cloudamqp/lavinmq docker tag to v2.9.0 #283

Merged
renovate merged 1 commits from renovate/cloudamqp-lavinmq-2.x into main 2026-06-28 10:06:51 +00:00
Owner

This PR contains the following updates:

Package Update Change
cloudamqp/lavinmq minor 2.8.22.9.0

Release Notes

cloudamqp/lavinmq (cloudamqp/lavinmq)

v2.9.0

Compare Source

This release makes local publish confirms wait until messages are flushed to disk with syncfs (with a --no-sync opt-out), reworks clustered durability so confirms and durable definition changes are acknowledged only once every in-sync replica holds the data, and adds OAuth2/OIDC SSO login to the management UI. It also adds PROXY protocol trusted sources, load_definitions, per-queue-type policy apply-to targets and a configurable control socket, alongside a wide range of bugfixes and performance optimizations across the broker.

Added
  • OAuth2/OIDC SSO login to the management UI #​1768
  • proxy_protocol_trusted_sources config option supporting individual IPs and CIDR notation #​1601
  • Startup warning when PROXY protocol is enabled without proxy_protocol_trusted_sources configured #​1601
  • load_definitions config option #​1828
  • Per-queue-type policy apply-to targets (classic_queues, quorum_queues, streams) for RabbitMQ definitions compatibility #​2015
  • Bindings count in overview, CLI status and Prometheus metrics #​2018
  • Per-vhost message stats and labeled channel metrics in /metrics/detailed #​1926
  • --no-sync option to disable syncfs on publish confirm #​1987
  • control_unix_path config option to make the lavinmqctl control socket path configurable #​2029
  • User tag classes to control management UI element visibility #​1892
Changed
  • A publish is confirmed once every in-sync follower has the data; local syncfs is only used as a fallback when there are no in-sync followers (or the node is standalone). When a follower disconnects mid-confirm, the confirm is held until the follower's removal from the etcd ISR is committed, so a leader crash right after the confirm can't elect a replica that lacks the data #​2002
  • Durable definition changes (queue/exchange declares, deletes, bindings) are likewise acknowledged only once every in-sync follower has acked them - or a non-acking follower's removal from the etcd ISR is committed - so a leader crash right after a Declare-Ok can't elect a replica that lacks the acknowledged definition #​2002
  • Followers ack replicated data incrementally as it's written, so a single large action (big message or file sync) keeps a healthy follower in the replica set instead of being evicted on the leader's ack deadline #​2002
  • Send publish confirms only after messages are flushed to disk with syncfs #​1891
  • Eliminate heap allocations in the message publish/deliver hot path #​2045
  • Zero-allocation MQTT subscription-tree matching #​2090
  • Use Crystal's native kTLS support #​1937
  • Fiber-free synchronous replication a011ec99
  • On-demand deliver_loop fibers for AMQP consumers #​1722
  • Idle fiber management for queue message expiration #​1614
  • Replace periodic GC.collect with on-demand GC #​2016
  • Batch persistence during definitions import #​2014
  • tcp_proxy_protocol now accepts boolean values (true/false/yes/no); legacy 1/2 are treated as enabled, 0 disables. Protocol version is auto-detected #​1601
Deprecated
  • clustering_max_unsynced_actions is now a no-op (still accepted to avoid breaking existing configs); the follower ack buffer is a fixed size and how far a follower may lag is governed by the leader's ack deadline #​2002
Removed
  • unix_proxy_protocol config option; Unix sockets always auto-detect PROXY protocol headers #​1601
Fixed
  • Print clean error messages on boot failures instead of stacktraces aba7361b
  • Group lavinmqctl help output by command category #​1830
  • Use amq.default in UI related operations #​1913
  • New action bar for tables with row counter and column selector #​1900
  • Bake static assets as string literals to reduce compile memory #​1944
  • Bump amq-protocol to 1.2.0 #​1996
  • Update amqp-client to 1.3.3, lz4 and systemd 3.0.1 dependencies cd2f4c58
  • GET /api/queues/:vhost/:name no longer emits the message_stats field twice #​2031
  • GET /api/channels and GET /api/connections no longer include the per-metric rate-history log arrays in every list row, matching GET /api/queues. The logs are only needed by the per-object detail pages, so they are now returned solely by GET /api/channels/:name and GET /api/connections/:name, greatly reducing list response size and latency on large deployments #​2025
  • Discard settlement frames (ack/nack/reject) for an already-closed channel instead of closing the connection with CHANNEL_ERROR f421d6e3
  • Treat a publish to a concurrently-closed queue as dropped instead of raising, which previously surfaced as an HTTP publish 500 93f88429
  • Stop federation and shovel links before tearing down vhosts on shutdown, and keep the embedded amqp-client's routine connection-teardown logging (already reported via the lmq.* federation/shovel layers) out of the broker log 2b213d3c
  • Reply with Basic.GetEmpty instead of erroring when a basic_get races a concurrent queue delete 9fbf4dc4
  • Serialize store saves (vhosts, parameters, users) so concurrent create/delete (under churn) don't race on the shared .tmp file and fail the rename f2316d0d
  • Don't crash the MQTT brokers on a vhost Closed event for a vhost that was never registered (e.g. one whose create didn't finish) fcf592c4
  • Serialize per-resource policy application and run stream drop_overflow under the message-store lock, fixing a segfault when policies were applied to a queue concurrently (e.g. under policy churn) with publishing/consuming 7f4b8399
  • Race between stream queue delete and drop_overflow #​1939
  • Stream queue crash when delivery-limit policy is applied d3667f99
  • Handle empty trailing stream segment on load 4efe79c4
  • Serialize stream consumer-offset access under the message-store lock for MT safety #​1973
  • Skip delete_message after queue close #​1961
  • MessageStore size leaks in purge_all and requeued shift? #​1957
  • Handle reject-publish overflow in HTTP publish and multi-queue routes #​1958
  • Keep closing AMQP channels until close-ok #​1980
  • MQTT max inflight message flow control #​1935
  • Exit if etcd lease expires while waiting to be in sync #​1969
  • Wait lease TTL + 2 seconds before retrying etcd lease grant 57d898cd
  • Delete empty queue directories on followers during streaming #​2005
  • Broker start failure for passwordless users with null hashing_algorithm #​1898
  • Anchor server uptime and CPU counters to OS process lifetime #​2012
  • Use :vhost named parameter for DELETE vhost-limits route #​1994
  • OpenAPI docs fixes #​2004
  • Log kTLS=off instead of kTLS= when offload is inactive #​2019
  • MQTT packet ID overflow in lavinmqperf #​1997
  • -q flag collision between QoS and quiet in mqttperf #​1951
  • Smooth pacing in lavinmqperf AMQP throughput 85711b32
  • Federation upstream-set deletion and per-entry overrides #​2089
  • Lost exchange-federation bindings created during link startup #​2037
  • Federation exchange link leaking a dead observer when the upstream is deleted during startup #​2105
  • Remove a dead follower inline in each_follower to stop "Follower disconnected" log spam #​2103
  • Use f_frsize for disk size reporting on Linux, fixing inflated disk_total/disk_free on virtiofs and NFS #​2055
  • Sub-second stats_interval produced NaN/Inf rates that broke stats-endpoint JSON #​2024
  • Guard against an empty destination in the Move messages UI #​2042
  • Skip config parsing for exact --version/build-info requests so a deprecated config file no longer warns on version output #​2115

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Update | Change | |---|---|---| | [cloudamqp/lavinmq](https://github.com/cloudamqp/lavinmq) | minor | `2.8.2` → `2.9.0` | --- ### Release Notes <details> <summary>cloudamqp/lavinmq (cloudamqp/lavinmq)</summary> ### [`v2.9.0`](https://github.com/cloudamqp/lavinmq/blob/HEAD/CHANGELOG.md#290---2026-06-25) [Compare Source](https://github.com/cloudamqp/lavinmq/compare/v2.8.2...v2.9.0) This release makes local publish confirms wait until messages are flushed to disk with `syncfs` (with a `--no-sync` opt-out), reworks clustered durability so confirms and durable definition changes are acknowledged only once every in-sync replica holds the data, and adds OAuth2/OIDC SSO login to the management UI. It also adds PROXY protocol trusted sources, `load_definitions`, per-queue-type policy `apply-to` targets and a configurable control socket, alongside a wide range of bugfixes and performance optimizations across the broker. ##### Added - OAuth2/OIDC SSO login to the management UI [#&#8203;1768](https://github.com/cloudamqp/lavinmq/pull/1768) - `proxy_protocol_trusted_sources` config option supporting individual IPs and CIDR notation [#&#8203;1601](https://github.com/cloudamqp/lavinmq/pull/1601) - Startup warning when PROXY protocol is enabled without `proxy_protocol_trusted_sources` configured [#&#8203;1601](https://github.com/cloudamqp/lavinmq/pull/1601) - `load_definitions` config option [#&#8203;1828](https://github.com/cloudamqp/lavinmq/pull/1828) - Per-queue-type policy `apply-to` targets (`classic_queues`, `quorum_queues`, `streams`) for RabbitMQ definitions compatibility [#&#8203;2015](https://github.com/cloudamqp/lavinmq/pull/2015) - Bindings count in overview, CLI status and Prometheus metrics [#&#8203;2018](https://github.com/cloudamqp/lavinmq/pull/2018) - Per-vhost message stats and labeled channel metrics in `/metrics/detailed` [#&#8203;1926](https://github.com/cloudamqp/lavinmq/pull/1926) - `--no-sync` option to disable syncfs on publish confirm [#&#8203;1987](https://github.com/cloudamqp/lavinmq/pull/1987) - `control_unix_path` config option to make the lavinmqctl control socket path configurable [#&#8203;2029](https://github.com/cloudamqp/lavinmq/pull/2029) - User tag classes to control management UI element visibility [#&#8203;1892](https://github.com/cloudamqp/lavinmq/pull/1892) ##### Changed - A publish is confirmed once every in-sync follower has the data; local syncfs is only used as a fallback when there are no in-sync followers (or the node is standalone). When a follower disconnects mid-confirm, the confirm is held until the follower's removal from the etcd ISR is committed, so a leader crash right after the confirm can't elect a replica that lacks the data [#&#8203;2002](https://github.com/cloudamqp/lavinmq/pull/2002) - Durable definition changes (queue/exchange declares, deletes, bindings) are likewise acknowledged only once every in-sync follower has acked them - or a non-acking follower's removal from the etcd ISR is committed - so a leader crash right after a Declare-Ok can't elect a replica that lacks the acknowledged definition [#&#8203;2002](https://github.com/cloudamqp/lavinmq/pull/2002) - Followers ack replicated data incrementally as it's written, so a single large action (big message or file sync) keeps a healthy follower in the replica set instead of being evicted on the leader's ack deadline [#&#8203;2002](https://github.com/cloudamqp/lavinmq/pull/2002) - Send publish confirms only after messages are flushed to disk with `syncfs` [#&#8203;1891](https://github.com/cloudamqp/lavinmq/pull/1891) - Eliminate heap allocations in the message publish/deliver hot path [#&#8203;2045](https://github.com/cloudamqp/lavinmq/pull/2045) - Zero-allocation MQTT subscription-tree matching [#&#8203;2090](https://github.com/cloudamqp/lavinmq/pull/2090) - Use Crystal's native kTLS support [#&#8203;1937](https://github.com/cloudamqp/lavinmq/pull/1937) - Fiber-free synchronous replication [a011ec99](https://github.com/cloudamqp/lavinmq/commit/a011ec993089408d23c3b76e0cb008e2cda4b39a) - On-demand deliver\_loop fibers for AMQP consumers [#&#8203;1722](https://github.com/cloudamqp/lavinmq/pull/1722) - Idle fiber management for queue message expiration [#&#8203;1614](https://github.com/cloudamqp/lavinmq/pull/1614) - Replace periodic GC.collect with on-demand GC [#&#8203;2016](https://github.com/cloudamqp/lavinmq/pull/2016) - Batch persistence during definitions import [#&#8203;2014](https://github.com/cloudamqp/lavinmq/pull/2014) - `tcp_proxy_protocol` now accepts boolean values (`true`/`false`/`yes`/`no`); legacy `1`/`2` are treated as enabled, `0` disables. Protocol version is auto-detected [#&#8203;1601](https://github.com/cloudamqp/lavinmq/pull/1601) ##### Deprecated - `clustering_max_unsynced_actions` is now a no-op (still accepted to avoid breaking existing configs); the follower ack buffer is a fixed size and how far a follower may lag is governed by the leader's ack deadline [#&#8203;2002](https://github.com/cloudamqp/lavinmq/pull/2002) ##### Removed - `unix_proxy_protocol` config option; Unix sockets always auto-detect PROXY protocol headers [#&#8203;1601](https://github.com/cloudamqp/lavinmq/pull/1601) ##### Fixed - Print clean error messages on boot failures instead of stacktraces [aba7361b](https://github.com/cloudamqp/lavinmq/commit/aba7361b8a434f1ab2776ec0fbb393c73e94861d) - Group `lavinmqctl` help output by command category [#&#8203;1830](https://github.com/cloudamqp/lavinmq/pull/1830) - Use `amq.default` in UI related operations [#&#8203;1913](https://github.com/cloudamqp/lavinmq/pull/1913) - New action bar for tables with row counter and column selector [#&#8203;1900](https://github.com/cloudamqp/lavinmq/pull/1900) - Bake static assets as string literals to reduce compile memory [#&#8203;1944](https://github.com/cloudamqp/lavinmq/pull/1944) - Bump amq-protocol to 1.2.0 [#&#8203;1996](https://github.com/cloudamqp/lavinmq/pull/1996) - Update amqp-client to 1.3.3, lz4 and systemd 3.0.1 dependencies [cd2f4c58](https://github.com/cloudamqp/lavinmq/commit/cd2f4c586dd55aae15d6223181c178a8e1025e71) - `GET /api/queues/:vhost/:name` no longer emits the `message_stats` field twice [#&#8203;2031](https://github.com/cloudamqp/lavinmq/pull/2031) - `GET /api/channels` and `GET /api/connections` no longer include the per-metric rate-history `log` arrays in every list row, matching `GET /api/queues`. The logs are only needed by the per-object detail pages, so they are now returned solely by `GET /api/channels/:name` and `GET /api/connections/:name`, greatly reducing list response size and latency on large deployments [#&#8203;2025](https://github.com/cloudamqp/lavinmq/pull/2025) - Discard settlement frames (`ack`/`nack`/`reject`) for an already-closed channel instead of closing the connection with `CHANNEL_ERROR` [f421d6e3](https://github.com/cloudamqp/lavinmq/commit/f421d6e3e8359a686453b45a33b423b5ea129a32) - Treat a publish to a concurrently-closed queue as dropped instead of raising, which previously surfaced as an HTTP publish `500` [93f88429](https://github.com/cloudamqp/lavinmq/commit/93f88429be1d9b3692d2d945c14964f0622a0db9) - Stop federation and shovel links before tearing down vhosts on shutdown, and keep the embedded amqp-client's routine connection-teardown logging (already reported via the `lmq.*` federation/shovel layers) out of the broker log [2b213d3c](https://github.com/cloudamqp/lavinmq/commit/2b213d3cbce52a1782dcec6143cc41e55cd816d3) - Reply with `Basic.GetEmpty` instead of erroring when a `basic_get` races a concurrent queue delete [9fbf4dc4](https://github.com/cloudamqp/lavinmq/commit/9fbf4dc472e76bcf773e637d35d49f02906ae15f) - Serialize store saves (vhosts, parameters, users) so concurrent create/delete (under churn) don't race on the shared `.tmp` file and fail the rename [f2316d0d](https://github.com/cloudamqp/lavinmq/commit/f2316d0d947d5ef8261153a991c20d1b26a04b3a) - Don't crash the MQTT brokers on a vhost `Closed` event for a vhost that was never registered (e.g. one whose create didn't finish) [fcf592c4](https://github.com/cloudamqp/lavinmq/commit/fcf592c44614d23f0823d72d6c553e62da557550) - Serialize per-resource policy application and run stream `drop_overflow` under the message-store lock, fixing a segfault when policies were applied to a queue concurrently (e.g. under policy churn) with publishing/consuming [7f4b8399](https://github.com/cloudamqp/lavinmq/commit/7f4b8399e1890e85a2404575397e2bb9831c3db2) - Race between stream queue delete and `drop_overflow` [#&#8203;1939](https://github.com/cloudamqp/lavinmq/pull/1939) - Stream queue crash when delivery-limit policy is applied [d3667f99](https://github.com/cloudamqp/lavinmq/commit/d3667f995b2cb6deb2a4f03909111765f5dd93bf) - Handle empty trailing stream segment on load [4efe79c4](https://github.com/cloudamqp/lavinmq/commit/4efe79c4e4031a0352e69a8c71d9246e988966bd) - Serialize stream consumer-offset access under the message-store lock for MT safety [#&#8203;1973](https://github.com/cloudamqp/lavinmq/pull/1973) - Skip `delete_message` after queue close [#&#8203;1961](https://github.com/cloudamqp/lavinmq/pull/1961) - `MessageStore` size leaks in `purge_all` and requeued `shift?` [#&#8203;1957](https://github.com/cloudamqp/lavinmq/pull/1957) - Handle reject-publish overflow in HTTP publish and multi-queue routes [#&#8203;1958](https://github.com/cloudamqp/lavinmq/pull/1958) - Keep closing AMQP channels until close-ok [#&#8203;1980](https://github.com/cloudamqp/lavinmq/pull/1980) - MQTT max inflight message flow control [#&#8203;1935](https://github.com/cloudamqp/lavinmq/pull/1935) - Exit if etcd lease expires while waiting to be in sync [#&#8203;1969](https://github.com/cloudamqp/lavinmq/pull/1969) - Wait lease TTL + 2 seconds before retrying etcd lease grant [57d898cd](https://github.com/cloudamqp/lavinmq/commit/57d898cd2802f3b05f16aa71bc19c87d4f75280b) - Delete empty queue directories on followers during streaming [#&#8203;2005](https://github.com/cloudamqp/lavinmq/pull/2005) - Broker start failure for passwordless users with `null` hashing\_algorithm [#&#8203;1898](https://github.com/cloudamqp/lavinmq/pull/1898) - Anchor server uptime and CPU counters to OS process lifetime [#&#8203;2012](https://github.com/cloudamqp/lavinmq/pull/2012) - Use `:vhost` named parameter for `DELETE` vhost-limits route [#&#8203;1994](https://github.com/cloudamqp/lavinmq/pull/1994) - OpenAPI docs fixes [#&#8203;2004](https://github.com/cloudamqp/lavinmq/pull/2004) - Log `kTLS=off` instead of `kTLS=` when offload is inactive [#&#8203;2019](https://github.com/cloudamqp/lavinmq/pull/2019) - MQTT packet ID overflow in lavinmqperf [#&#8203;1997](https://github.com/cloudamqp/lavinmq/pull/1997) - `-q` flag collision between QoS and quiet in mqttperf [#&#8203;1951](https://github.com/cloudamqp/lavinmq/pull/1951) - Smooth pacing in lavinmqperf AMQP throughput [85711b32](https://github.com/cloudamqp/lavinmq/commit/85711b3290335c367908b0896c4e200bf1ba71f4) - Federation upstream-set deletion and per-entry overrides [#&#8203;2089](https://github.com/cloudamqp/lavinmq/pull/2089) - Lost exchange-federation bindings created during link startup [#&#8203;2037](https://github.com/cloudamqp/lavinmq/pull/2037) - Federation exchange link leaking a dead observer when the upstream is deleted during startup [#&#8203;2105](https://github.com/cloudamqp/lavinmq/pull/2105) - Remove a dead follower inline in `each_follower` to stop "Follower disconnected" log spam [#&#8203;2103](https://github.com/cloudamqp/lavinmq/pull/2103) - Use `f_frsize` for disk size reporting on Linux, fixing inflated `disk_total`/`disk_free` on virtiofs and NFS [#&#8203;2055](https://github.com/cloudamqp/lavinmq/pull/2055) - Sub-second `stats_interval` produced `NaN`/`Inf` rates that broke stats-endpoint JSON [#&#8203;2024](https://github.com/cloudamqp/lavinmq/pull/2024) - Guard against an empty destination in the Move messages UI [#&#8203;2042](https://github.com/cloudamqp/lavinmq/pull/2042) - Skip config parsing for exact `--version`/build-info requests so a deprecated config file no longer warns on version output [#&#8203;2115](https://github.com/cloudamqp/lavinmq/pull/2115) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzIuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIzMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
renovate added 1 commit 2026-06-28 10:06:46 +00:00
chore(deps): update cloudamqp/lavinmq docker tag to v2.9.0
renovate/stability-days Updates have met minimum release age requirement
1e49fc41bb
renovate scheduled this pull request to auto merge when all checks succeed 2026-06-28 10:06:47 +00:00
renovate merged commit f11944af19 into main 2026-06-28 10:06:51 +00:00
renovate deleted branch renovate/cloudamqp-lavinmq-2.x 2026-06-28 10:06:53 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unboundsoftware/local-k8s#283