Commit Graph

59013 Commits

Author SHA1 Message Date
Michael Klishin bde9868c1e
Merge pull request #13344 from rabbitmq/issue-12545
Redirect to end_session_endpoint for idp_initiated logon when it is configured
2025-03-27 20:32:20 -04:00
Marcial Rosales 46808c3ea6
Test with oauth2-proxy 2025-03-27 19:01:13 -04:00
Michael Klishin ab8799a739
Redirect to end_session_endpoint for idp-initiated logon
Conflicts:
	selenium/bin/components/fakeportal
2025-03-27 19:01:01 -04:00
Michael Klishin 860bb7c47b
Merge pull request #13638 from rabbitmq/ra-2.16.5 2025-03-27 14:33:19 -04:00
Karl Nilsson 4fe96dfd27 Ra 2.16.5 - bug fixes and minor improvements
Ra improvements:

* Don't allow a non-voter to start elections
* Register with ra directory before initialising ra server.
* Trigger tick_timeout immediately after entering leader state.
* Set a configurable segment max size

This commit also includes a change to turn the quorum queue
become leader callback to become a noop and instead rely on
the more promptly tick_handler to handle the meta data store
update after a leader election.

This more prompt tick update means there should be a much shorter
gap between the queue metrics being deleted from the old leader
node to them being available again on the new node resulting
in smoother message count metrics.

Fix test that relied on waiting on too simplistic a property
before asserting.
2025-03-27 17:06:31 +00:00
Michal Kuratczyk 2a93bbcebd
RMQ-1460: Emit queue_info metric (#13583)
To allow filtering on queue type or membership status,
we need an info metric for queues; see
https://grafana.com/blog/2021/08/04/how-to-use-promql-joins-for-more-effective-queries-of-prometheus-metrics-at-scale/#info-metrics

With this change, per-object metrics and the detailed metrics
(if queue-related families are requested) will contain
rabbitmq_queue_info / rabbitmq_detailed_queue_info with a value of 1
and labels including the queue name, vhost, queue type and membership
status.
2025-03-27 15:54:26 +01:00
David Ansari c151806f7c Apply PR formatting feedback
https://github.com/rabbitmq/rabbitmq-server/pull/13625#discussion_r2016008850
https://github.com/rabbitmq/rabbitmq-server/pull/13625#discussion_r2016010107
2025-03-27 11:30:23 +01:00
David Ansari ef1a595a13 Fix crash when consuming from unavailable quorum queue
Prior to this commit, when a client consumed from an unavailable quorum
queue, the following crash occurred:
```
{badmatch,{error,noproc}}
[{rabbit_quorum_queue,consume,3,[{file,\"rabbit_quorum_queue.erl\"},{line,993}]}
```

This commit fixes this bug by returning any error when registering a
quorum queue consumer to rabbit_queue_type.

This commit also refactors errors returned by
rabbit_queue_type:consume/3 to simplify and ensure seperation of
concerns.

For example prior to this commit, the channel did error
formatting specifically for consuming from streams. It's better if
the channel is unaware of what queue type it consumes from and have each
queue type implementation format their own errors.
2025-03-27 11:30:23 +01:00
David Ansari 44657cd393 Bump timeout in RabbitMQ AMQP 1.0 Erlang client
Bump the timeout for management operations and link attachments from 20s
to 30s. We've seen timeouts in CI.

We bump the poll interval of the `?awaitMatch` macro because CI
sometimes flaked by crashing in
0e803de6dd/deps/rabbitmq_amqp_client/src/rabbitmq_amqp_client.erl (L411)
which indicates that the client lib received a response from a previous
request.
2025-03-27 10:48:49 +01:00
Michael Klishin 0e803de6dd
Merge pull request #13634 from rabbitmq/mk-shovel-http-api-metrics
New Shovel management UI metrics
2025-03-27 00:53:43 -04:00
Iliia Khaprov 9efa0d9ffe
RMQ-1263: Shovel Management - add help strings for shovel counters
(cherry picked from commit 8e79a7f500c2df355f3ec7ac1fa1bdd3a8dff6a4)
2025-03-27 00:49:46 -04:00
Iliia Khaprov 6e871f6ab3
RMQ-1263: Shovels Management: show metrics (incl. forwarded counter) in the Shovel Status page
(cherry picked from commit f90dab71f147548c5e9ad921a0bc618179bd34c2)

Conflicts:
	deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt_util.erl
2025-03-27 00:49:08 -04:00
Michael Klishin bb7cd8381e
Merge pull request #13629 from rabbitmq/lukebakken/rmq-1585
Use case-insensitive `lists:member`
2025-03-26 22:20:49 -04:00
Luke Bakken 9bcd4328d2
Use case-insensitive `lists:member`
References:
* [`RMQ-1585`](https://vmw-jira.broadcom.net/browse/RMQ-1585)
* https://github.com/lukebakken/rmq-1585
2025-03-26 16:40:23 -07:00
Michael Klishin 9439756d62
Merge pull request #13628 from rabbitmq/ik-13620-shovel-forward-counter-followup
RMQ-1263: An attempt to make shovel status tuple handling backwards compatible
2025-03-26 16:20:46 -04:00
Michael Klishin 03526b51db
#13628 pass Dialyzer 2025-03-26 15:12:24 -04:00
Iliia Khaprov 4eda17bee2 RMQ-1263: An attempt to make shovel status tuple handling backwards compatible 2025-03-26 20:03:09 +01:00
Michael Klishin 11546aafa5
Merge pull request #13620 from rabbitmq/mk-shovel-forwarding-header-and-metric
Shovel: keep track of forwarded message count (a new metric)
2025-03-26 13:54:46 -04:00
Iliia Khaprov 1f20543ee3 RMQ-1263: shovel forward counter: try fixing rolling_upgrade_SUITE 2025-03-26 18:03:20 +01:00
Michael Klishin b568214980
Merge pull request #13623 from rabbitmq/loic-fix-cli-windows
Fix the CLI's main module on Windows
2025-03-26 11:47:28 -04:00
Loïc Hoguin fb985bb8b9
Fix the CLI's main module on Windows 2025-03-26 16:32:38 +01:00
Michael Klishin a0e6c23a82
Update 4.1.0.md 2025-03-26 09:26:06 -04:00
Karl Nilsson 26fa541e2c
Merge pull request #13587 from rabbitmq/qq-checkpointing-tweaks-2
QQ: Revise checkpointing logic to take more frequent checkpoints for large message workloads
2025-03-26 10:43:50 +00:00
Iliia Khaprov 63b5859360 RMQ-1263: readd lost shovel_prometheus parts 2025-03-26 11:22:36 +01:00
Karl Nilsson 6695282640 QQ: Revise checkpointing logic
To take more frequent checkpoints for large message workload

Lower the min_checkpoint_interval substantially to allow quorum queues
better control over when checkpoints are taken.

Track bytes enqueued in the aux state and suggest a checkpoint after
every 64MB enqueued (this value is scaled according to backlog just
like the indexes condition).
This should help with more timely checkpointing when very large
messages is used.

Try evaluating byte size independently of time window

also increase max size
2025-03-26 08:23:52 +00:00
Iliia Khaprov c2569d26f2
RMQ-1263: Shovels forward counter - fix dialyzer
(cherry picked from commit af22cf427a7054d93b3dd64fda01a86649fdd7c5)
2025-03-25 21:11:37 -04:00
Diana Parra Corbacho d4c1121c77
RMQ-1263: dialyze, unused var
(cherry picked from commit 68872f81074d378f76ffa44e7111e7979cdd8fd0)
2025-03-25 21:11:30 -04:00
Iliia Khaprov e3430aa56d
RMQ-1263: Shovel: add forwarded counter
Delayed queuese can automatically create associated Shovels to transfer Ready messages
to the desired destination. This adds forwarded messages counter which will be used
in Management UI for better Shovel internals visibility.

(cherry picked from commit a8800b6cd75d8dc42a91f88655058f2ffa3b6ea6)
2025-03-25 21:11:22 -04:00
Michael Klishin 3a30917809
Merge pull request #13603 from rabbitmq/remove-redundant-queue-type-function
Remove redundant rabbit_queue_type APIs
2025-03-25 17:43:43 -04:00
Loïc Hoguin 0a7c86b480
Fix the exception logged by Cowboy caused by double reply (#13612)
Issue introduced in 383ddb1634.

Authored-by: @lhoguin.
2025-03-25 17:12:57 -04:00
Michael Klishin 28a407cf7b
Merge pull request #13604 from rabbitmq/ik-fix-is_type-in-management-ui
Switch is_<queue_type> to using queue.type field in Management UI
2025-03-25 01:31:17 -04:00
Michael Klishin d65457df74
Merge pull request #13607 from rabbitmq/mk-cuttlefish-3.5.0
Bump Cuttlefish to 3.5.0
2025-03-25 01:00:20 -04:00
Michael Klishin 265e273eda
Bump Cuttlefish to 3.5.0 2025-03-25 00:04:25 -04:00
Iliia Khaprov 8ae0163643 Switch is_<queue_type> to using queue.type field
Also, since queue.type field rendered by QueueMod:format and all queues had it hard-coded here,
I unhardcode them here to use Type name.
2025-03-24 19:15:20 +01:00
Karl Nilsson 0410b7e4a6 Remove rabbit_queue_type:to_binary/1
As it is covered by rabbit_queue_type:short_alias_of/1
2025-03-24 16:28:35 +00:00
Karl Nilsson 73c6f9686f Remove rabbit_queue_type:feature_flag_name/1
As this functionality is covered by the rabbit_queue_type:is_enabled/1
API.
2025-03-24 14:49:54 +00:00
Arnaud Cogoluègnes b8244f70f4
Pull from socket up to 10 times in stream test utils (#13588)
To make sure to have enough data to complete a command.
2025-03-24 09:13:31 +01:00
Michael Klishin 41dfa6aa99
Merge pull request #13591 from rabbitmq/dependabot/maven/deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot/main/prod-deps-66a7dc9ee7
[skip ci] Bump the prod-deps group across 2 directories with 3 updates
2025-03-22 17:55:58 -04:00
dependabot[bot] 513ade1b8c
[skip ci] Bump the prod-deps group across 2 directories with 3 updates
Bumps the prod-deps group with 1 update in the /deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot directory: [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot).
Bumps the prod-deps group with 3 updates in the /deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot_kotlin directory: [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot), [org.jetbrains.kotlin:kotlin-test](https://github.com/JetBrains/kotlin) and org.jetbrains.kotlin:kotlin-maven-allopen.


Updates `org.springframework.boot:spring-boot-starter-parent` from 3.4.3 to 3.4.4
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.3...v3.4.4)

Updates `org.springframework.boot:spring-boot-starter-parent` from 3.4.3 to 3.4.4
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.3...v3.4.4)

Updates `org.jetbrains.kotlin:kotlin-test` from 2.1.10 to 2.1.20
- [Release notes](https://github.com/JetBrains/kotlin/releases)
- [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md)
- [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.10...v2.1.20)

Updates `org.jetbrains.kotlin:kotlin-maven-allopen` from 2.1.10 to 2.1.20

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.springframework.boot:spring-boot-starter-parent
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.jetbrains.kotlin:kotlin-test
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: prod-deps
- dependency-name: org.jetbrains.kotlin:kotlin-maven-allopen
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: prod-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 18:12:07 +00:00
Loïc Hoguin bb208858a1
Merge pull request #13580 from rabbitmq/loic-update-erlang.mk
Update Erlang.mk
2025-03-20 20:15:52 +01:00
Loïc Hoguin b34a7227b3
Update Erlang.mk 2025-03-20 15:24:05 +01:00
Michael Klishin 22e4853e7d
4.1.0 release notes: update Ra version 2025-03-20 02:13:14 -04:00
Michael Klishin 5d882a18f7
4.1.0 release notes updates for beta.5 2025-03-20 02:05:58 -04:00
Michael Klishin 41245faa80
Merge pull request #13512 from rabbitmq/mgmt-ui-page-name
Change browser tab/window title according to currently loaded view (tab)
2025-03-19 15:45:48 -04:00
Michael Klishin f2da1b5544
Extend the idea in #13512 to a few more tabs 2025-03-19 15:44:18 -04:00
Michael Klishin e275f77c4c
HTTP API: tests for the /health/checks/quorum-queues-without-elected* endpoints 2025-03-19 15:44:18 -04:00
Michael Klishin c8f24f535c
New HTTP API health check endpoints
for the check introduced in #13487.

Note that encoding a regular expression pattern
with percent encoding is a pain (e.g. '.*' = '.%2a'),
so these endpoints fall back to a default pattern
value that matches all queues.
2025-03-19 15:44:18 -04:00
David Ansari a7fb56beeb
Auto widen session incoming-window in AMQP 1.0 client
This commit fixes a bug in the Erlang AMQP 1.0 client.

Prior to this commit, to repro this bug:
1. Send more than 2^16 messages to a queue.
2. Grant more than a total of 2^16 link credit initially (on a single link
   or across multiple links) on a single session without any
   auto or manual link credit renewal.

The expectation is that thanks to sufficiently granted initial link-credit,
the client will receive all messages.
However, consumption stops after exactly 2^16-1 messages.

That's because the client lib was never sending a flow frame to the server.
So, after the client received all 2^16-1 messages (the initial
incoming-window set by the client), the server's remote-incoming-window
reached 0 causing the server to stop delivering messages.

The expectation is that the client lib automatically handles session
flow control without any manual involvement of the client app.

This commit implements this fix:
* We keep the server's remote-incoming window always large by default as
  explained in https://www.rabbitmq.com/blog/2024/09/02/amqp-flow-control#incoming-window
* Hence, the client lib sets its incoming-window to 100,000 initially.
* The client lib tracks its incoming-window decrementing it by 1 for
  every transfer it received. (This wasn't done prior to this commit.)
* Whenever this window shrinks below 50,000, the client sends a flow
  frame without any link information widening its incoming-window back to 100,000.
* For test cases (maybe later for apps as well), there is a new function
  `amqp10_client_session:flow/3`, which allows for a test case to do manual
  session flow control. Its API is designed very similar to
  `amqp10_client_session:flow_link/4` in that the test can optionally request
  the lib to auto widen the session window whenever it falls below a certain threshold.
2025-03-19 15:44:18 -04:00
Ayanda Dube 1ccfc0dbfd
extend rabbit_amqqueue_SUITE with internal_no_owner_queue_delete_with/1 and add amqqueue:make_internal/{1,2} type specs 2025-03-19 15:44:17 -04:00
Michael Klishin 2472e450ff
By @efimov90: a dark theme for the management UI (#13567)
This is a squashed commit that includes the following changes by @efimov90:

* Initial-theme-fix

Added light.css
Added dark.css
Added link for light.css and dark.css with media attribute
Added switcher

* Rework-light-style

* dark theme

* Removed not needed div

* Fix folder name

* Color scheme fix

Removes color-scheme from main.css
Added color-scheme: dark to dark.css
Added color-scheme: light to light.css

* Fixed theme switch bug with sammy.js

Adapts code to works with sammy.js

* Icons update

* Reworked theme switcher

* Fix updating attributes

---------

Authored-by: Sergey Efimov <efimov90@gmail.com>
2025-03-19 15:44:17 -04:00