Commit Graph

57950 Commits

Author SHA1 Message Date
Loïc Hoguin 7fe78a3af9
Better fix for a Dialyzer warning
The previous fix was leading to a badmatch in some cases,
including when trying to stop a node that was already stopped.
2024-09-30 14:25:01 +02:00
Loïc Hoguin 9fed03a6d6
Add missing suites to non-CI parallel-ct 2024-09-30 12:37:24 +02:00
Loïc Hoguin 994abc1a8c
Bazel CI: Fix workflow templates 2024-09-30 12:35:44 +02:00
Loïc Hoguin a0ee6ddb69
Bazel fixes following renaming of test suites 2024-09-30 12:35:44 +02:00
Loïc Hoguin f54e307aee
CT: No longer wait 3 minutes for node start
Reverting back to the default 1 minute. The problem with
3 minutes is that this is exceedingly long and when there
are problems the test time increases exponentially.
2024-09-30 12:35:44 +02:00
Loïc Hoguin 027700eec2
Add missing test case to web_mqtt_shared_SUITE 2024-09-30 12:35:44 +02:00
Loïc Hoguin addb0607fd
Make rabbit_global_counters:overview/0 generally available
Previously it was only available when TEST=1 was set.
2024-09-30 12:35:44 +02:00
Loïc Hoguin 4530fb5d97
make: Add new CT suites and clarify check on CT_SUITES 2024-09-30 12:35:43 +02:00
Loïc Hoguin aee0cd0079
make & make CI: Small cleanups 2024-09-30 12:35:43 +02:00
Loïc Hoguin 4c80dde233
make CI: Use strings instead of numbers for OTP/Ex versions
As recommended by erlef/setup-beam.
2024-09-30 12:35:43 +02:00
Loïc Hoguin ae984cc364
make: Set CT_LOGS_DIR to top-level logs/ directory
All CT logs will now be under <toplevel>/logs. An improved
test workflow would be to always keep the logs/all_runs.html
page open in the browser and refresh it whenever tests are
run in any of the rabbit applications.
2024-09-30 12:35:43 +02:00
Loïc Hoguin 6b3b0e5c3f
CLI: Make a test more reliable 2024-09-30 12:35:43 +02:00
Loïc Hoguin a8df6f32fb
make CI: Set a correct broker version for CLI tests 2024-09-30 12:35:43 +02:00
Loïc Hoguin beaa476aa1
make CI: Always fetch tags
The fetch-tags option of actions/checkout@v4 does not work
as intended so they are fetched manually instead.
2024-09-30 12:35:43 +02:00
Loïc Hoguin 8669b24c07
make CI: Run rabbitmq_cli tests 2024-09-30 12:35:43 +02:00
Loïc Hoguin 1c797387f7
cli: Add 4.1.0 to mock plugin's versions 2024-09-30 12:35:43 +02:00
Loïc Hoguin 71ec3396f6
cli: Start a background node to run the tests 2024-09-30 12:35:43 +02:00
Loïc Hoguin 55f0559152
make CI: Disable Elixir problem matchers in tests
They are still enabled in the build job.
2024-09-30 12:35:43 +02:00
Loïc Hoguin 7fca6e955c
make CI: Don't warn about missing CT log files
This can happen if the plugin isn't using CT, or if running
Dialyzer, for example.
2024-09-30 12:35:43 +02:00
Loïc Hoguin b8723d6cd2
Fix some OTP-27 Dialyzer errors in rabbitmq_peer_discovery_etcd
And disable those checks in CI for now. We are getting errors
because of the eetcd dependency and we can't upgrade at this
time (see comment in the commit).
2024-09-30 12:35:43 +02:00
Loïc Hoguin 67eee5602c
Fix OTP-27 Dialyzer errors in rabbitmq_ct_helpers 2024-09-30 12:35:43 +02:00
Loïc Hoguin 5222bea44e
ldap auth backend: Drop support for pre-OTP-25 search results
The search results record change was done in OTP-25, which is
no longer supported. So we can use the modern search results
record and drop the compatibility clauses.

For more context:

* 8d8847e069
* https://github.com/erlang/otp/pull/5538
2024-09-30 12:35:43 +02:00
Loïc Hoguin c0c2c2fbd9
Fix OTP-27 Dialyzer errors in rabbitmq_trust_store 2024-09-30 12:35:42 +02:00
Loïc Hoguin aa43139192
Fix OTP-27 Dialyzer errors in trust_store_http 2024-09-30 12:35:42 +02:00
Loïc Hoguin ec95c1a88d
rabbit_common: Remove 'cover' related code from 'rabbit_misc'
This is very old code that is likely no longer used. Removing
it helps avoid depending on cover.
2024-09-30 12:35:42 +02:00
Loïc Hoguin 861943835f
Fix OTP-27 Dialyzer errors in rabbit_common 2024-09-30 12:35:42 +02:00
Loïc Hoguin 85e358642b
Fix OTP-27 Dialyzer errors in rabbit 2024-09-30 12:35:42 +02:00
Loïc Hoguin 5086553bdd
make: Correct rabbitmq_prelaunch/rabbitmq_stream_common deps 2024-09-30 12:35:42 +02:00
Loïc Hoguin 5e3942478f
amqp10_common: Don't dialyze tests or from source by default 2024-09-30 12:35:42 +02:00
Loïc Hoguin 9f8c17f587
make: Fix build errors for apps that have rabbit in TEST_DEPS
We want them to install CLI scripts only for the test build,
otherwise Dialyzer or others will fail in a clean run.
2024-09-30 12:35:42 +02:00
Loïc Hoguin f95c87082a
make: Include rabbitmq_cli ebin in code path only if in deps 2024-09-30 12:35:42 +02:00
Loïc Hoguin 97363dfeae
make CI: Run most rabbitmq_peer_discovery_aws tests
The integration_SUITE has to run in a separate workflow due
to needing secrets.
2024-09-30 12:35:42 +02:00
Loïc Hoguin dad0bfcca9
make CI: Run rabbitmq_aws eunit tests 2024-09-30 12:35:42 +02:00
Loïc Hoguin 9b2d2c1295
make CI: Run Dialyzer 2024-09-30 12:35:42 +02:00
Loïc Hoguin d9770fb18c
make CI: Add xref job 2024-09-30 12:35:42 +02:00
Loïc Hoguin b5011f058f
make CI: Simplify workflows 2024-09-30 12:35:41 +02:00
Loïc Hoguin 5327ce3e2f
make CI: Simplify test-rabbitmq-mqtt 2024-09-30 12:35:41 +02:00
Loïc Hoguin f4a24c7f16
make: Run rabbitmq_mqtt tests via parallel-ct 2024-09-30 12:35:41 +02:00
David Ansari f002029ebd
Do not open WebMQTT connection in MQTT plugin 2024-09-30 12:35:41 +02:00
Loïc Hoguin ddab3d523f
mqtt tests: Move v5 web_mqtt tests out of rabbitmq_mqtt 2024-09-30 12:35:41 +02:00
Loïc Hoguin 690b830e43
mqtt tests: Move web_mqtt tests out of rabbitmq_mqtt
The shared test suite was renamed only for clarity, but the
Web-MQTT test suites were renamed out of necessity: since
we are now adding the MQTT test directory to the code path
we need test suites to have different names to avoid
conflicts. We can't (easily) addpath only for this test suite
either since CT hooks don't call functions in a predictable
enough manner; it would always be hacky.
2024-09-30 12:35:41 +02:00
Loïc Hoguin f4f375c6a9
Use Make in CI
This is a proof of concept that mostly works but is missing
some tests, such as rabbitmq_mqtt or rabbitmq_cli. It also
doesn't apply to mixed version testing yet.
2024-09-30 12:35:41 +02:00
Loïc Hoguin 645942cf95
make: Move dep_osiris in rabbitmq-components.mk
Otherwise some plugins can't build if we try to run tests
directly after checkout. This is because the plugins
depend on osiris as well as rabbit, but there is no
dep_osiris defined in the plugin itself.
2024-09-30 12:35:41 +02:00
Loïc Hoguin 30a8de3287
rabbit tests: Delete some temporary files to reduce log sizes 2024-09-30 12:35:41 +02:00
Loïc Hoguin 14fe08152f
Merge feature_flags_with_unpriveleged_user_SUITE back in ff_SUITE
On GH Actions we run as an unprivileged user by default.
2024-09-30 12:35:41 +02:00
David Ansari 36a84f4cde Fix function_clause
Fixes https://github.com/rabbitmq/rabbitmq-server/issues/12398

To repro this crash:
1. Start RabbitMQ v3.13.7 with feature flag message_containers disabled:
```
make run-broker TEST_TMPDIR="$HOME/scratch/rabbit/test" RABBITMQ_FEATURE_FLAGS=quorum_queue,implicit_default_bindings,virtual_host_metadata,maintenance_mode_status,user_limits,feature_flags_v2,stream_queue,classic_queue_type_delivery_support,classic_mirrored_queue_version,stream_single_active_consumer,direct_exchange_routing_v2,listener_records_in_ets,tracking_records_in_ets
```
In the Management UI
2. Create a quorum queue with x-delivery-limit=10
3. Publish a message to this queue.
4. Requeue this message two times.
5. ./sbin/rabbitmqctl enable_feature_flag all
6. Stop the node
7. git checkout v4.0.2
8. make run-broker TEST_TMPDIR="$HOME/scratch/rabbit/test"
9. Again in the Management UI, Get Message with Automatic Ack leads to above crash:

```
[error] <0.1185.0> ** Reason for termination ==
[error] <0.1185.0> ** {function_clause,
[error] <0.1185.0>        [{mc_compat,set_annotation,
[error] <0.1185.0>             [delivery_count,2,
[error] <0.1185.0>              {basic_message,
[error] <0.1185.0>                  {resource,<<"/">>,exchange,<<>>},
[error] <0.1185.0>                  [<<"qq1">>],
[error] <0.1185.0>                  {content,60,
[error] <0.1185.0>                      {'P_basic',undefined,undefined,
[error] <0.1185.0>                          [{<<"x-delivery-count">>,long,2}],
[error] <0.1185.0>                          2,undefined,undefined,undefined,undefined,undefined,
[error] <0.1185.0>                          undefined,undefined,undefined,undefined,undefined},
[error] <0.1185.0>                      none,none,
[error] <0.1185.0>                      [<<"m1">>]},
[error] <0.1185.0>                  <<230,146,94,58,177,125,64,163,30,18,177,132,53,207,69,103>>,
[error] <0.1185.0>                  true}],
[error] <0.1185.0>             [{file,"mc_compat.erl"},{line,61}]},
[error] <0.1185.0>         {rabbit_fifo_client,add_delivery_count_header,2,
[error] <0.1185.0>             [{file,"rabbit_fifo_client.erl"},{line,228}]},
[error] <0.1185.0>         {rabbit_fifo_client,dequeue,4,
[error] <0.1185.0>             [{file,"rabbit_fifo_client.erl"},{line,211}]},
[error] <0.1185.0>         {rabbit_queue_type,dequeue,5,
[error] <0.1185.0>             [{file,"rabbit_queue_type.erl"},{line,755}]},
[error] <0.1185.0>         {rabbit_misc,with_exit_handler,2,
[error] <0.1185.0>             [{file,"rabbit_misc.erl"},{line,526}]},
[error] <0.1185.0>         {rabbit_channel,handle_method,3,
[error] <0.1185.0>             [{file,"rabbit_channel.erl"},{line,1257}]},
[error] <0.1185.0>         {rabbit_channel,handle_cast,2,
[error] <0.1185.0>             [{file,"rabbit_channel.erl"},{line,629}]},
[error] <0.1185.0>         {gen_server2,handle_msg,2,[{file,"gen_server2.erl"},{line,1056}]}]}
```

The mc annotation `delivery_count` is a new mc annotation specifically
used in the header section of AMQP 1.0 messages:
https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-header

Hence, we can ignore this annotation for the old `#basic_message{}`.
2024-09-30 11:35:22 +02:00
Michael Klishin 4da8dd5819
Update 4.0.1 release notes 2024-09-29 22:53:53 -04:00
Michael Klishin dd3181d94d
Merge pull request #12393 from rabbitmq/md/khepri/secondary-4-0-2
Bump secondary umbrella to 4.0, re-enable Khepri mixed versions
2024-09-27 10:36:05 -04:00
Arnaud Cogoluègnes 788879969e
Merge pull request #12391 from rabbitmq/anon-term-errors
Comply with §2.2.2 of Anonymous Terminus extension
2024-09-27 09:24:47 +02:00
Michael Klishin cf0a4e8e11
Merge pull request #12390 from rabbitmq/issue-12374
Remove duplicate stats keys in quorum queues
2024-09-27 01:49:58 -04:00