Commit Graph

59394 Commits

Author SHA1 Message Date
Michael Klishin 4574b3822b
Resolve a conflict, adapt to v4.1.x #13548 #13938 2025-05-23 01:10:34 -04:00
Diana Parra Corbacho 79aa0bba47 Force checkpoint in all members
(cherry picked from commit 0c2b6a1cb3)
2025-05-23 03:12:37 +00:00
Michael Klishin 901343d78f quorum_queue_SUITE: keep Raft state logging in force_checkpoint_on_queue
(cherry picked from commit 7d3292cedd)
2025-05-23 03:12:36 +00:00
Michael Klishin 1a998f8887 Quorum queue machine: do not publish certain state records
we can use log state in tests.

(cherry picked from commit d17b085653)
2025-05-23 03:12:36 +00:00
Michael Klishin e7e1fb76a4 Update a #13175 test to not use private Ra machine state
(cherry picked from commit e49acf956c806849068f543f282683978ca5a385)
(cherry picked from commit d54fee2e7a)
2025-05-23 03:12:36 +00:00
Aaron Seo 9bc9276e18 Add timeout to rpc call for force_checkpoint
(cherry picked from commit 4439150e50)
(cherry picked from commit 6a78e9f7ba)
2025-05-23 03:12:36 +00:00
Aaron Seo 66d4245ddf Fix force_checkpoint tests and CLI command
(cherry picked from commit 12bf3e094e)

Conflicts:
	deps/rabbit/src/rabbit_quorum_queue.erl
(cherry picked from commit fa310864d7)
2025-05-23 03:12:35 +00:00
Aaron Seo d2dcc61b96 Add force checkpoint functions for quorum queues and command line tool
(cherry picked from commit b54ab1d5e5)
(cherry picked from commit 0d3dfd9695)

# Conflicts:
#	deps/rabbit/src/rabbit_quorum_queue.erl
2025-05-23 03:12:35 +00:00
Michael Klishin 413ad94ccc
Merge pull request #13937 from rabbitmq/mergify/bp/v4.1.x/pr-13932
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 27) (push) Waiting to run Details
Test (make) / Test (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.17, 27) (push) Waiting to run Details
Test Management UI with Selenium / selenium (chrome, 1.17.3, 27.3) (push) Has been cancelled Details
Add tests for rabbit_classic_queue_index_v2:bounds/2 (backport #13932)
2025-05-23 06:08:52 +04:00
Michael Klishin 5a2081e0b8
Merge pull request #13935 from rabbitmq/mergify/bp/v4.1.x/pr-13931
Fix selenium issue closing popup warning dialog since recent upgrade  (backport #13931)
2025-05-23 06:08:27 +04:00
Péter Gömöri 383818e27f Fix comment about CQ v1->v2 index recovery
(cherry picked from commit ec455d5cff)
2025-05-23 02:06:12 +00:00
Péter Gömöri ea68a41ba5 Add tests for rabbit_classic_queue_index_v2:bounds/2
(cherry picked from commit 55e3c458c2)
2025-05-23 02:06:12 +00:00
Marcial Rosales 94e4aa9412 Fix issue related to popup warning
And in particular locating the span#close button

(cherry picked from commit 27b3e21554)
2025-05-22 23:23:47 +00:00
Michael Klishin 4553f8ae2f
Merge pull request #13927 from rabbitmq/mergify/bp/v4.1.x/pr-13925
Test Management UI with Selenium / selenium (chrome, 1.17.3, 27.3) (push) Has been cancelled Details
Bump up chrome driver (backport #13925)
2025-05-21 21:50:27 +04:00
Marcial Rosales 4054f6572e Briefly explain how to start a second rabbitmq server
interactively

(cherry picked from commit a028db8156)
2025-05-21 14:22:42 +00:00
Marcial Rosales c9da9e15ef Eliminate flake around listing live amqp connections
(cherry picked from commit 44dd282ed4)
2025-05-21 14:22:41 +00:00
Marcial Rosales d84424f6aa Bump up chrome driver
This is needed when running tests interactively.
The OS updates the local chrome binary and this
node.js library has to be upgraded too.

(cherry picked from commit 6578c83a0e)
2025-05-21 14:22:41 +00:00
Michael Klishin c1086b98ff
Merge pull request #13922 from rabbitmq/mergify/bp/v4.1.x/pr-13920
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 26) (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 27) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Type check (1.17, 27) (push) Has been cancelled Details
Add a proptest checking `ra_indexes` indices (backport #13920)
2025-05-21 05:20:29 +04:00
Michael Davis fafb51f9c2 Add a proptest checking `ra_indexes` indices
This is mostly the same as the `messages_total` property test but checks
that the Raft indexes in `ra_indexes` are the set of the indexes checked
out by all consumers union any indexes in the `returns` queue. This is
the intended state of `ra_indexes` and failing this condition could
cause bugs that would prevent snapshotting.

(cherry picked from commit 01b4051b03)
2025-05-20 20:56:36 +00:00
Michael Klishin 39060ca57b
Merge pull request #13917 from rabbitmq/mergify/bp/v4.1.x/pr-13916
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 26) (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 27) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Type check (1.17, 27) (push) Has been cancelled Details
OTP28: re:split change; street-address macro (backport #13916)
2025-05-19 17:33:41 +04:00
Michal Kuratczyk 22f1374f21 Remove rabbitmq_mqtt from DEPS (it's a TEST_DEP)
(cherry picked from commit 9fefcc4827)
2025-05-19 12:19:45 +00:00
Michal Kuratczyk b07dcf8bf5 OTP28: re:split change; street-address macro
https://github.com/erlang/otp/issues/9739

In OTP28+, splitting an empty string returns an empty list, not an empty
string (the input).

Additionally `street-address` macro was removed in OTP28 - replace with
the value it used to be.

Lastly, rabbitmq_auth_backend_oauth2 has an MQTT test, so add
rabbitmq_mqtt to TEST_DEPS

(cherry picked from commit 637a2bc8cc)
2025-05-19 12:19:45 +00:00
Michael Klishin 2db9a615ea
Merge pull request #13915 from rabbitmq/mergify/bp/v4.1.x/pr-13913
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 27) (push) Waiting to run Details
Test (make) / Test (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.17, 27) (push) Waiting to run Details
Bump Ra to 2.16.9 (backport #13913)
2025-05-19 09:35:52 +04:00
Michael Klishin 7feb4463ad Bump Ra to 2.16.9
(cherry picked from commit c2d6dee8e8)
2025-05-19 04:12:24 +00:00
Michael Klishin be1b83f05d
Merge pull request #13914 from rabbitmq/mergify/bp/v4.1.x/pr-13912
Bump Osiris to 1.8.8 (backport #13912)
2025-05-19 08:11:36 +04:00
Michael Klishin 876b17d1c8 Bump Osiris to 1.8.8
(cherry picked from commit 94575bc76d)
2025-05-19 03:30:59 +00:00
Michael Klishin 25f81e4081
Merge pull request #13902 from rabbitmq/dependabot/maven/deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot_kotlin/v4.1.x/dev-deps-5ac378ddf0
[skip ci] Bump the dev-deps group across 1 directory with 2 updates
2025-05-19 06:22:20 +04:00
dependabot[bot] 88015c037a
[skip ci] Bump the dev-deps group across 1 directory with 2 updates
Bumps the dev-deps group with 2 updates in the /deps/rabbitmq_auth_backend_http/examples/rabbitmq_auth_backend_spring_boot_kotlin directory: [org.jetbrains.kotlin:kotlin-test](https://github.com/JetBrains/kotlin) and org.jetbrains.kotlin:kotlin-maven-allopen.


Updates `org.jetbrains.kotlin:kotlin-test` from 2.1.20 to 2.1.21
- [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.20...v2.1.21)

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

---
updated-dependencies:
- dependency-name: org.jetbrains.kotlin:kotlin-test
  dependency-version: 2.1.21
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-deps
- dependency-name: org.jetbrains.kotlin:kotlin-maven-allopen
  dependency-version: 2.1.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: dev-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-17 18:15:04 +00:00
Michael Klishin 0cb27fed84
Merge pull request #13901 from rabbitmq/mergify/bp/v4.1.x/pr-13899
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 26) (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 27) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Type check (1.17, 27) (push) Has been cancelled Details
Allow non-deterministic builds (backport #13899)
2025-05-17 11:40:22 +04:00
Luke Bakken 3c8c56f43a Allow non-deterministic builds
Building from source using this command:

```
make RMQ_ERLC_OPTS= FULL=1
```

... then starting RabbitMQ via `make run-broker`, allows re-compilation
from the erl shell:

```
1> c(rabbit).
Recompiling /home/lbakken/development/rabbitmq/rabbitmq-server/deps/rabbit/src/rabbit.erl
{ok,rabbit}
```

When `+deterministic` is passed to `erlc`, the `compile` data in each
modules' information is missing the source path for the module.

Follow-up to #3442

(cherry picked from commit eae657fc38)
2025-05-17 02:56:26 +00:00
Michael Klishin a3aa838f48
Merge pull request #13900 from rabbitmq/mergify/bp/v4.1.x/pr-13898
Improve memory use of `rabbit_mgmt_gc` (backport #13898)
2025-05-17 06:50:24 +04:00
Michael Davis 54e063cefe rabbit_mgmt_gc: Switch from `gb_sets` to `sets` v2
`sets` v2 were not yet available when this module was written. Compared
to `gb_sets`, v2 `sets` are faster and more memory efficient:

    > List = lists:seq(1, 50_000).
    > tprof:profile(sets, from_list, [List, [{version, 2}]], #{type => call_memory}).

    ****** Process <0.94.0>  --  100.00% of total ***
    FUNCTION          CALLS   WORDS   PER CALL  [     %]
    maps:from_keys/2      1  184335  184335.00  [100.00]
                             184335             [ 100.0]
    ok
    > tprof:profile(gb_sets, from_list, [List], #{type => call_memory}).

    ****** Process <0.97.0>  --  100.00% of total ***
    FUNCTION                  CALLS   WORDS   PER CALL  [    %]
    lists:rumergel/3              1       2       2.00  [ 0.00]
    gb_sets:from_ordset/1         1       3       3.00  [ 0.00]
    lists:reverse/2               1  100000  100000.00  [16.76]
    lists:usplit_1/5          49999  100002       2.00  [16.76]
    gb_sets:balance_list_1/2  65535  396605       6.05  [66.48]
                                     596612             [100.0]

(cherry picked from commit 5a32322778)
2025-05-16 23:59:19 +00:00
Michael Davis ffda347e87 Hibernate after collecting garbage in `rabbit_mgmt_gc`
The `rabbit_mgmt_gc` gen_server performs garbage collections
periodically. When doing so it can create potentially fairly large
terms, for example by creating a set out of
`rabbit_exchange:list_names/0`. With many exchanges, for example, the
process memory usage can climb steadily especially when the management
agent is mostly idle since `rabbit_mgmt_gc` won't hit enough reductions
to cause a full-sweep GC on itself. Since the process is only active
periodically (once every 2min by default) we can hibernate it to GC the
terms it created.

This can save a medium amount of memory in situations where there are
very many pieces of metadata (exchanges, vhosts, queues, etc.). For
example on an idle single-node broker with 50k exchanges,
`rabbit_mgmt_gc` can hover around 50MB before being naturally GC'd. With
this patch the process memory usage stays consistent between `start_gc`
timer messages at around 1KB.

(cherry picked from commit ce5d42a9d6)
2025-05-16 23:59:19 +00:00
Michael Klishin 49ec73765e
oci-make workflow: use 4.1.x versions on this branch
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Has been cancelled Details
(cherry picked from commit 8e511291d464ecbed361fe4f6a23e9a4e633e914)
2025-05-14 10:39:33 -04:00
Michael Klishin 8c00510157
Merge pull request #13891 from rabbitmq/mergify/bp/v4.1.x/pr-13890
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Waiting to run Details
CI: tweak OCI workflow trigger (backport #13890)
2025-05-14 06:02:23 +04:00
Michael Klishin 224a5785c9
Resolve a conflict #13890 #13891 2025-05-13 21:08:25 -04:00
Aitor Perez 82f7c4abc4 CI: tweak OCI build triggers
Building on push to any branch is wasteful and unnecessary, because most
of built images are never used. The workflow dispatch trigger covers the
use case to build an image from the latest commit in a branch.

The use case to validate/QA a PR is now covered by on pull request
trigger. This trigger has a caveat: PRs from forks won't produce a
docker image.

Why?
Because PRs from forks do not inject rabbitmq-server secrets. This is a
security mechanism from GitHub, to protect repository secrets.

With this trigger is possible to QA/validate PRs from other Core team
members. Technically, anyone with 'write' access to our repo to push
branches.

(cherry picked from commit 4efb3df39e)

# Conflicts:
#	.github/workflows/oci-make.yaml
2025-05-13 16:50:51 +00:00
Michael Davis 02268efa81
minor: Avoid flake in `rabbit_mgmt_http_health_checks_SUITE`
Test (make) / Build and Xref (1.17, 26) (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 27) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Type check (1.17, 27) (push) Has been cancelled Details
The `below_node_connection_limit_test` and `ready_to_serve_clients_test`
cases could possibly flake because `is_quorum_critical_single_node_test`
uses the channel manager in `rabbit_ct_client_helpers` to open a
connection. This can cause the line

     true = lists:all(fun(E) -> is_pid(E) end, Connections),

to fail to match. The last connection could have been rejected if the
channel manager kept its connection open, so instead of being a pid the
element would have been `{error, not_allowed}`.

With `rabbit_ct_client_helpers:close_channels_and_connection/2` we can
reset the connection manager and force it to close its connection.

This commit is backported from 314e4261fc
on main.
2025-05-13 10:55:02 -04:00
Michael Davis 87b63cbe22
Merge pull request #13889 from rabbitmq/mergify/bp/v4.1.x/pr-13888
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 27) (push) Waiting to run Details
Test (make) / Test (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.17, 27) (push) Waiting to run Details
Test Management UI with Selenium / selenium (chrome, 1.17.3, 27.3) (push) Has been cancelled Details
2025-05-12 22:07:24 -04:00
Michael Davis df11551fd9 Remove connection counts and limits from public API health checks
Returning the connection limit and active count are not really necessary
for these checks. Instead of returning them in the response to the
health check we log a warning when the connection limit is exceeded.

(cherry picked from commit 3f53e0172d)
2025-05-13 00:43:00 +00:00
Michael Klishin a594ba8e1e
Merge pull request #13882 from rabbitmq/dependabot/maven/deps/rabbit/test/amqp_jms_SUITE_data/v4.1.x/dev-deps-dd1c27f4c1
Test (make) / Build and Xref (1.17, 26) (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 27) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Type check (1.17, 27) (push) Has been cancelled Details
[skip ci] Bump com.google.googlejavaformat:google-java-format from 1.26.0 to 1.27.0 in /deps/rabbit/test/amqp_jms_SUITE_data in the dev-deps group across 1 directory
2025-05-11 09:23:05 +04:00
dependabot[bot] 754fbf3778
[skip ci] Bump com.google.googlejavaformat:google-java-format
Bumps the dev-deps group with 1 update in the /deps/rabbit/test/amqp_jms_SUITE_data directory: [com.google.googlejavaformat:google-java-format](https://github.com/google/google-java-format).


Updates `com.google.googlejavaformat:google-java-format` from 1.26.0 to 1.27.0
- [Release notes](https://github.com/google/google-java-format/releases)
- [Commits](https://github.com/google/google-java-format/compare/v1.26.0...v1.27.0)

---
updated-dependencies:
- dependency-name: com.google.googlejavaformat:google-java-format
  dependency-version: 1.27.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-deps
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 18:12:55 +00:00
Michael Klishin a1949381bf
Merge pull request #13880 from rabbitmq/mergify/bp/v4.1.x/pr-13879
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 26) (push) Has been cancelled Details
Test (make) / Build and Xref (1.17, 27) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Has been cancelled Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Has been cancelled Details
Test (make) / Type check (1.17, 27) (push) Has been cancelled Details
Test Management UI with Selenium / selenium (chrome, 1.17.3, 27.3) (push) Has been cancelled Details
Add health checks for testing readiness to serve clients (backport #13879)
2025-05-09 23:52:44 +04:00
Michael Klishin 12ee638ce6
Merge pull request #13881 from rabbitmq/mergify/bp/v4.1.x/pr-13878
Wait until page is fully loaded (backport #13878)
2025-05-09 23:40:06 +04:00
Marcial Rosales f790bf3728 Wait until page is fully loaded
(cherry picked from commit f79c7229d5)
2025-05-09 18:47:45 +00:00
Michael Davis 9d02953ad7 Add a health check for testing readiness to serve clients
(cherry picked from commit 67bdc011cb)
2025-05-09 18:46:41 +00:00
Michael Davis a16cee0ac1 Add a health check for testing the node connection limit
(cherry picked from commit 028b69213e)
2025-05-09 18:46:41 +00:00
Michael Klishin b8045432f5
Merge pull request #13870 from rabbitmq/mergify/bp/v4.1.x/pr-13856
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 27) (push) Waiting to run Details
Test (make) / Test (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.17, 27) (push) Waiting to run Details
Make empty CQ init faster in case of clean shutdown (backport #13856)
2025-05-09 02:08:22 +04:00
Michael Klishin cabe85ae0e
Merge pull request #13875 from rabbitmq/mergify/bp/v4.1.x/pr-13868
Trigger a 4.1.x alpha release build / trigger_alpha_build (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 26) (push) Waiting to run Details
Test (make) / Build and Xref (1.17, 27) (push) Waiting to run Details
Test (make) / Test (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, khepri) (push) Waiting to run Details
Test (make) / Test mixed clusters (1.17, 27, mnesia) (push) Waiting to run Details
Test (make) / Type check (1.17, 27) (push) Waiting to run Details
Test Management UI with Selenium / selenium (chrome, 1.17.3, 27.3) (push) Waiting to run Details
Fix selenium issues when running two rabbitmq (backport #13868)
2025-05-08 22:41:14 +04:00
Michael Davis 6b71f776f4
Merge pull request #13876 from rabbitmq/mergify/bp/v4.1.x/pr-13872 2025-05-08 14:33:59 -04:00