Commit Graph

257 Commits

Author SHA1 Message Date
Loïc Hoguin dfe0f4b0a6
Clear federation before deleting message_flow queues
Without this change the test could take a very long time to
cleanup the queues and finish because of a race condition
between the queue deletion and the federation link being
restarted and declaring the queue again.

(The test bidirectional was renamed to message_flow to better
 represent what it is doing.)
2021-09-14 14:46:36 +02:00
Philip Kuryloski d6399bbb5b
Mixed version testing in bazel (#3200)
Unlike with gnu make, mixed version testing with bazel uses a package-generic-unix for the secondary umbrella rather than the source. This brings the benefit of being able to mixed version test releases built with older erlang versions (even though all nodes will run under the single version given to bazel)

This introduces new test labels, adding a `-mixed` suffix for every existing test. They can be skipped if necessary with `--test_tag_filters` (see the github actions workflow for an example)

As part of the change, it is now possible to run an old release of rabbit with rabbitmq_run rule, such as:

`bazel run @rabbitmq-server-generic-unix-3.8.17//:rabbitmq-run run-broker`
2021-07-19 14:33:25 +02:00
Philip Kuryloski 8a339aae6c Fixup rabbitmq_federation:queue_SUITE for mixed version testing 2021-07-13 18:05:04 +02:00
Philip Kuryloski 973a8c5189 Adjustments to hopefully make rabbitmq_federation suite less flaky
and print more informative errors in a failure case
2021-07-05 11:26:56 +02:00
Philip Kuryloski a3c97d491f Update additional test skipping for 3.8/3.9 mixed versions 2021-06-25 11:17:46 +02:00
Michael Klishin 40b7e001b4
Queue args won't be set for all suites, be more defensive 2021-06-16 23:39:02 +08:00
Michael Klishin 62e24460b3
Avoid conflicting queue declarations from tests
this is important now that different federation sides
use queues of different types in the mixed group.
2021-06-16 22:32:44 +08:00
Karl Nilsson c9026daecc test case 2021-06-16 13:49:16 +02:00
Philip Kuryloski 078c897d2a Add rabbitmq_federation to bazel 2021-04-13 11:45:09 +02:00
dcorbacho 00510fe84b Await for links to start/fail to start on test suite 2021-03-04 17:36:03 +01:00
Michael Klishin 98724eff09
pg2 => pg for OTP 24 compatibility
there is still one failing queue federation test.
2021-03-03 19:01:12 +03:00
Michael Klishin a2f98f25e9
Merge pull request #2804 from rabbitmq/rabbitmq-server-2756
Add federation support for quorum queues
2021-02-25 19:10:15 +03:00
Michael Klishin d0506cc225
Add a single channel mode-specific test 2021-02-20 10:32:24 +03:00
Michael Klishin a9dd03bdf5
Make it possible to use a single channel for message transfers and commands
For the rare case where federated exchange experience rapid
binding changes. As of rabbitmq/rabbitmq-federation#97,
such environments have a race condition between binding
and message propagation.
2021-02-20 00:42:39 +03:00
dcorbacho 699cd1ab29 Add federation support for quorum queues 2021-02-18 17:15:47 +01:00
Michael Klishin 52479099ec
Bump (c) year 2021-01-22 09:00:14 +03:00
Philip Kuryloski ad401bb9dd Increase rabbitmq_federation test timeouts
To address test flakiness
2020-10-23 10:32:59 +02:00
Philip Kuryloski 4323c643e7 rabbitmq_federation: use dynamic waits where possible
to address spurious failures in CI

Building upon recent changes and discussion with @michaelklishin
2020-10-13 11:19:31 +02:00
Michael Klishin 1aa2e059bb Rework two more tests
Per discussion with @pjk25.
2020-10-13 06:26:23 +03:00
Michael Klishin 5bedcf2fdc Correct status suite expectations
Per discussion with @pjk25.
2020-10-12 18:50:24 +03:00
Michael Klishin 63f0068d79 Correct upstream URIs in this test 2020-10-10 00:49:14 +03:00
Michael Klishin d9252f2342 Merge pull request #118 from rabbitmq/queue-suite-flake
Replace a fixed test suite delay with a dynamic one
2020-09-29 17:46:46 +03:00
Philip Kuryloski 287d0c67e6 Replace a fixed test suite delay with a dynamic
queue_SUITE > without_disambiguate > cluster_size_1 >
dynamic_plugin_stop_start fails often in CI
2020-09-29 16:07:37 +02:00
Jean-Sébastien Pédron 7621a74b6e exchange_SUITE: Fix format string
`~s` was used to print an integer. This was causing a badarg exception.
2020-09-23 12:04:39 +02:00
Luke Bakken 7040f1de25 Revert "Remove timer"
This reverts commit a621950561.
2020-09-16 13:13:20 -07:00
Luke Bakken a621950561 Remove timer 2020-09-16 11:10:31 -07:00
Michael Klishin 9ffb39c3ca Give links more time to initialize [for CI] 2020-09-16 20:12:40 +03:00
Michael Klishin a87fc37791 await_bindings for a limited amount of time 2020-09-16 19:41:45 +03:00
Luke Bakken 50df6d4d4f Use await_binding, add vhost support 2020-09-16 08:44:27 -07:00
Michael Klishin e77bea6c7d Log payloads received in exchange federation tests 2020-09-16 04:50:15 +03:00
Michael Klishin 353aebbabd More exchange federation test massaging 2020-09-16 04:43:08 +03:00
Michael Klishin df01ae64f9 More selective assertions on link status
Asserting on links across all virtual hosts makes no sense
for some tests, and creates additional shared state and
makes these assertions significantly more timing-sensitive.

Per discussion with @lukebakken.
2020-09-16 04:28:23 +03:00
Michael Klishin b599f40e8b Begin splitting test groups to reduce the amount of shared state 2020-09-16 04:06:58 +03:00
Michael Klishin bfc26c1642 Compile 2020-09-16 00:32:21 +03:00
Michael Klishin a5f32394b5 Make this test clean up its resources at the end 2020-09-16 00:31:57 +03:00
Michael Klishin c52af7aad2 A WIP integration test for multi-hop intra-cluster exchange federation
The test currently fails. Added more debug logging to ease
the investigation.

In order to inspect a running node, modify the end_per_group/2
to not shut the node down or do it after an hour long sleep,
then run [1] to inspect the topology.

[2] can be used to run a Bunny-based version of effectively
the same test, which works as expected.

Pair: @lukebakken.

1. https://gist.github.com/michaelklishin/a7bcdc9a2be3540ac6d47297976864f6
2. https://gist.github.com/michaelklishin/9b7fb572f3d22749b982a49e3b3049d7
2020-09-15 18:49:48 +03:00
Michael Klishin 5eacab3b7b Coerce password to a binary
when obfuscating an upstream.

credentials_obfuscation:encrypt/1 requires a binary and
in some rare cases we've seen that the password value can
be passed in as a string.
2020-08-14 08:36:50 +03:00
dcorbacho 26a4365188 Switch to Mozilla Public License 2.0 (MPL 2.0) 2020-07-12 22:52:53 +01:00
Jean-Sébastien Pédron 57a4683bbd exchange_SUITE: Remove the `binding_recovery` testcase
It still fails way too often and I can't find the appropriate wait
condition.
2020-03-30 17:38:31 +02:00
Jean-Sébastien Pédron fab830b862 queue_SUITE: Wait for federation in `dynamic_plugin_stop_start` 2020-03-30 17:07:07 +02:00
Jean-Sébastien Pédron 75a80d7eb4 exchange_SUITE: Bump wait in several testcases 2020-03-30 14:52:57 +02:00
Jean-Sébastien Pédron f902ef5377 exchange_SUITE: Add a wait condition in `dynamic_plugin_stop_start` 2020-03-30 13:16:23 +02:00
Jean-Sébastien Pédron a845aad507 exchange_SUITE: Review all wait conditions
They should be closer to the expected states now. Hopefully this will
further reduce the number of transient test failures.
2020-03-27 15:25:07 +01:00
Jean-Sébastien Pédron 4fee32b989 exchange_SUITE: Improve wait condition in `binding_recovery`
We wait for the new parameter to be applied, not just any federation to
be ready.
2020-03-27 14:32:47 +01:00
Jean-Sébastien Pédron a34fe8d106 exchange_SUITE: Wait for federation on the correct node 2020-03-27 11:48:03 +01:00
Jean-Sébastien Pédron 7987940c9d exchange_SUITE: Bump a few more timeouts
Follow-up to commit 2e8cdd5ba6.
2020-03-26 17:55:05 +01:00
Jean-Sébastien Pédron 2e8cdd5ba6 exchange_SUITE: Throw an exception if wait_for_federation() times out
While here, increase two timers in the `binding_recovery` testcase.
Hopefully this will help in Concourse.
2020-03-26 17:32:42 +01:00
Jean-Sébastien Pédron c278947717 Update copyright (year 2020) 2020-03-10 16:10:02 +01:00
Michael Klishin 8b5bd10c43 (c) bump 2019-12-29 05:50:28 +03:00
Luke Bakken 1f123eed05 add test that fails for queue 2019-12-11 16:18:42 -08:00