Skip to content

Commit 2fb9b69

Browse files
authored
Merge pull request #14171 from rabbitmq/mixed-version-with-otp26-rmq-3.13
Test mixed version with 3.13.7/OTP26 (weekly)
2 parents 3c28315 + d0dad73 commit 2fb9b69

14 files changed

+278
-150
lines changed

.github/workflows/test-make-target.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ on:
1515
required: false
1616
default: false
1717
type: boolean
18+
previous_version:
19+
required: false
20+
default: 'tags/v4.0.9'
21+
type: string
1822
make_target:
1923
required: true
2024
type: string
@@ -62,7 +66,7 @@ jobs:
6266
uses: dsaltares/fetch-gh-release-asset@master
6367
if: inputs.mixed_clusters
6468
with:
65-
version: 'tags/v4.0.9'
69+
version: ${{ inputs.previous_version }}
6670
regex: true
6771
file: "rabbitmq-server-generic-unix-\\d.+\\.tar\\.xz"
6872
target: ./

.github/workflows/test-mixed.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Test Mixed with 3.13
2+
on:
3+
schedule:
4+
# at 2:20am on Sundays
5+
- cron: 20 2 * * 0
6+
workflow_dispatch:
7+
jobs:
8+
test-mixed-clusters:
9+
name: Test mixed clusters
10+
strategy:
11+
fail-fast: false
12+
matrix:
13+
erlang_version:
14+
- '26'
15+
elixir_version:
16+
- '1.18'
17+
metadata_store:
18+
- mnesia
19+
uses: ./.github/workflows/test-make-tests.yaml
20+
with:
21+
erlang_version: ${{ matrix.erlang_version }}
22+
elixir_version: ${{ matrix.elixir_version }}
23+
previous_version: 'tags/v3.13.7'
24+
metadata_store: ${{ matrix.metadata_store }}
25+
mixed_clusters: true

deps/rabbit/test/amqp_client_SUITE.erl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,15 @@ init_per_testcase(T, Config)
326326
end;
327327
init_per_testcase(T, Config)
328328
when T =:= leader_transfer_quorum_queue_credit_single orelse
329-
T =:= leader_transfer_quorum_queue_credit_batches ->
329+
T =:= leader_transfer_quorum_queue_credit_batches orelse
330+
T =:= async_notify_unsettled_classic_queue orelse
331+
T =:= leader_transfer_stream_credit_single orelse
332+
T =:= dead_letter_into_stream orelse
333+
T =:= classic_queue_on_new_node orelse
334+
T =:= leader_transfer_quorum_queue_send orelse
335+
T =:= last_queue_confirms orelse
336+
T =:= leader_transfer_stream_credit_batches orelse
337+
T =:= leader_transfer_stream_send ->
330338
%% These test cases flake with feature flag 'rabbitmq_4.0.0' disabled.
331339
case rabbit_ct_broker_helpers:enable_feature_flag(Config, 'rabbitmq_4.0.0') of
332340
ok ->
@@ -342,14 +350,6 @@ init_per_testcase(T = immutable_bare_message, Config) ->
342350
{skip, "RabbitMQ is known to wrongfully modify the bare message with feature "
343351
"flag rabbitmq_4.0.0 disabled"}
344352
end;
345-
init_per_testcase(T = dead_letter_into_stream, Config) ->
346-
case rabbit_ct_broker_helpers:enable_feature_flag(Config, message_containers_deaths_v2) of
347-
ok ->
348-
rabbit_ct_helpers:testcase_started(Config, T);
349-
_ ->
350-
{skip, "This test is known to fail with feature flag message_containers_deaths_v2 disabled "
351-
"due to missing feature https://github.com/rabbitmq/rabbitmq-server/issues/11173"}
352-
end;
353353
init_per_testcase(T = dead_letter_reject, Config) ->
354354
case rabbit_ct_broker_helpers:enable_feature_flag(Config, message_containers_deaths_v2) of
355355
ok ->

deps/rabbit/test/clustering_management_SUITE.erl

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,26 @@ init_per_group(unclustered_2_nodes, Config) ->
146146
Config1 = rabbit_ct_helpers:set_config(
147147
Config, [{rmq_nodes_clustered, false}]),
148148
rabbit_ct_helpers:merge_app_env(
149-
Config1, {rabbit, [{forced_feature_flags_on_init, []}]});
149+
Config1, {rabbit, [{forced_feature_flags_on_init, [
150+
restart_streams,
151+
stream_sac_coordinator_unblock_group,
152+
stream_update_config_command,
153+
stream_filtering,
154+
message_containers,
155+
quorum_queue_non_voters
156+
]}]});
150157
init_per_group(unclustered_3_nodes, Config) ->
151158
Config1 = rabbit_ct_helpers:set_config(
152159
Config, [{rmq_nodes_clustered, false}]),
153160
rabbit_ct_helpers:merge_app_env(
154-
Config1, {rabbit, [{forced_feature_flags_on_init, []}]});
161+
Config1, {rabbit, [{forced_feature_flags_on_init, [
162+
restart_streams,
163+
stream_sac_coordinator_unblock_group,
164+
stream_update_config_command,
165+
stream_filtering,
166+
message_containers,
167+
quorum_queue_non_voters
168+
]}]});
155169
init_per_group(clustered_2_nodes, Config) ->
156170
rabbit_ct_helpers:set_config(Config, [{rmq_nodes_clustered, true}]);
157171
init_per_group(clustered_3_nodes, Config) ->

deps/rabbit/test/dead_lettering_SUITE.erl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,14 @@ init_per_testcase(T, Config)
184184
%% * stream is known to fail due to https://github.com/rabbitmq/rabbitmq-server/issues/11173
185185
ok = rabbit_ct_broker_helpers:enable_feature_flag(Config, message_containers_deaths_v2),
186186
init_per_testcase0(T, Config);
187+
init_per_testcase(T, Config)
188+
when T =:= dead_letter_headers_should_not_be_appended_for_republish ->
189+
case rabbit_ct_broker_helpers:enable_feature_flag(Config, 'rabbitmq_4.0.0') of
190+
ok ->
191+
init_per_testcase0(T, Config);
192+
_ ->
193+
{skip, "The expectations of this test don't match 3.13 behaviour"}
194+
end;
187195
init_per_testcase(Testcase, Config) ->
188196
init_per_testcase0(Testcase, Config).
189197

deps/rabbit/test/dynamic_qq_SUITE.erl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,8 @@ quorum_unaffected_after_vhost_failure(Config) ->
222222
forget_cluster_node(Config) ->
223223
%% Tests that quorum queues shrink when forget_cluster_node
224224
%% operations are issues.
225+
quorum_queue_SUITE:check_quorum_queues_v4_compat(Config),
226+
225227
[Server | _] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
226228
Ch = rabbit_ct_client_helpers:open_channel(Config, Server),
227229

deps/rabbit/test/feature_flags_SUITE.erl

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,14 @@ init_per_group(clustering, Config) ->
197197
{rmq_nodes_clustered, false},
198198
{start_rmq_with_plugins_disabled, true}]),
199199
Config2 = rabbit_ct_helpers:merge_app_env(
200-
Config1, {rabbit, [{forced_feature_flags_on_init, []}]}),
200+
Config1, {rabbit, [{forced_feature_flags_on_init, [
201+
restart_streams,
202+
stream_sac_coordinator_unblock_group,
203+
stream_update_config_command,
204+
stream_filtering,
205+
message_containers,
206+
quorum_queue_non_voters
207+
]}]}),
201208
rabbit_ct_helpers:run_setup_steps(Config2, [fun prepare_my_plugin/1]);
202209
init_per_group(activating_plugin, Config) ->
203210
Config1 = rabbit_ct_helpers:set_config(
@@ -1277,6 +1284,13 @@ activating_plugin_with_new_ff_enabled(Config) ->
12771284
ok.
12781285

12791286
enable_plugin_feature_flag_after_deactivating_plugin(Config) ->
1287+
case rabbit_ct_broker_helpers:is_feature_flag_enabled(Config, 'rabbitmq_4.0.0') of
1288+
true ->
1289+
ok;
1290+
false ->
1291+
throw({skip, "this test triggers a bug present in 3.13"})
1292+
end,
1293+
12801294
FFSubsysOk = is_feature_flag_subsystem_available(Config),
12811295

12821296
log_feature_flags_of_all_nodes(Config),
@@ -1307,6 +1321,13 @@ enable_plugin_feature_flag_after_deactivating_plugin(Config) ->
13071321
ok.
13081322

13091323
restart_node_with_unknown_enabled_feature_flag(Config) ->
1324+
case rabbit_ct_broker_helpers:is_feature_flag_enabled(Config, 'rabbitmq_4.0.0') of
1325+
true ->
1326+
ok;
1327+
false ->
1328+
throw({skip, "this test triggers a bug present in 3.13"})
1329+
end,
1330+
13101331
FFSubsysOk = is_feature_flag_subsystem_available(Config),
13111332

13121333
log_feature_flags_of_all_nodes(Config),

deps/rabbit/test/queue_length_limits_SUITE.erl

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,17 @@ init_per_group(mnesia_parallel_tests = Group, Config0) ->
8282
Config = rabbit_ct_helpers:set_config(Config0, [{metadata_store, mnesia}]),
8383
init_per_group0(Group, Config);
8484
init_per_group(khepri_parallel_tests = Group, Config0) ->
85-
Config = rabbit_ct_helpers:set_config(Config0, [{metadata_store, khepri}]),
86-
init_per_group0(Group, Config).
85+
%% this is very hacky way of skipping the tests, but the khepri_db
86+
%% flag exists in 3,13, but it's not compatible with 4.x. We can remove
87+
%% this after 4.2
88+
SecondaryDist = os:getenv("SECONDARY_DIST", ""),
89+
case string:str(SecondaryDist, "3.13.") == 0 of
90+
true ->
91+
Config = rabbit_ct_helpers:set_config(Config0, [{metadata_store, khepri}]),
92+
init_per_group0(Group, Config);
93+
_ ->
94+
{skip, "Khepri was not supported in 3.13"}
95+
end.
8796

8897
init_per_group0(Group, Config) ->
8998
case lists:member({group, Group}, all()) of

0 commit comments

Comments
 (0)