Skip to content

Commit febaddf

Browse files
committed
Fix test flake
As described in #12413 (comment) test case queue_topology flaked in CI with the following error: ``` rabbitmq_amqp_client > management_SUITE > cluster_size_3 > queue_topology #1. {error,{test_case_failed,{824, <<"rmq-ct-cluster_size_3-1-21000@localhost">>}}} ``` This flake could not be reproduced locally (neither with Mnesia nor with Khepri). (cherry picked from commit 8c046c7)
1 parent 5530a18 commit febaddf

File tree

1 file changed

+24
-19
lines changed

1 file changed

+24
-19
lines changed

deps/rabbitmq_amqp_client/test/management_SUITE.erl

+24-19
Original file line numberDiff line numberDiff line change
@@ -810,25 +810,30 @@ queue_topology(Config) ->
810810
ok = rabbit_ct_broker_helpers:stop_node(Config, 0),
811811

812812
Init2 = {_, LinkPair2} = init(Config, 2),
813-
{ok, QQInfo2} = rabbitmq_amqp_client:get_queue(LinkPair2, QQName),
814-
{ok, SQInfo2} = rabbitmq_amqp_client:get_queue(LinkPair2, SQName),
815-
816-
case maps:get(leader, QQInfo2) of
817-
N1 -> ok;
818-
N2 -> ok;
819-
Other0 -> ct:fail({?LINE, Other0})
820-
end,
821-
case maps:get(leader, SQInfo2) of
822-
N1 -> ok;
823-
N2 -> ok;
824-
Other1 -> ct:fail({?LINE, Other1})
825-
end,
826-
827-
%% Replicas should include both online and offline replicas.
828-
{ok, QQReplicas2} = maps:find(replicas, QQInfo2),
829-
?assertEqual(Nodes, lists:usort(QQReplicas2)),
830-
{ok, SQReplicas2} = maps:find(replicas, SQInfo2),
831-
?assertEqual(Nodes, lists:usort(SQReplicas2)),
813+
eventually(
814+
?_assert(
815+
begin
816+
{ok, QQInfo2} = rabbitmq_amqp_client:get_queue(LinkPair2, QQName),
817+
{ok, SQInfo2} = rabbitmq_amqp_client:get_queue(LinkPair2, SQName),
818+
819+
{ok, QQReplicas2} = maps:find(replicas, QQInfo2),
820+
{ok, SQReplicas2} = maps:find(replicas, SQInfo2),
821+
QQReplicas = lists:usort(QQReplicas2),
822+
SQReplicas = lists:usort(SQReplicas2),
823+
QQLeader = maps:get(leader, QQInfo2),
824+
SQLeader = maps:get(leader, SQInfo2),
825+
ct:pal("quorum queue replicas: ~p~n"
826+
"quorum queue leader: ~s~n"
827+
"stream replicas: ~p~n"
828+
"stream leader: ~s",
829+
[QQReplicas, QQLeader, SQReplicas, SQLeader]),
830+
%% Replicas should always include both online and offline replicas.
831+
QQReplicas =:= Nodes andalso
832+
SQReplicas =:= Nodes andalso
833+
(QQLeader =:= N1 orelse QQLeader =:= N2) andalso
834+
(SQLeader =:= N1 orelse SQLeader =:= N2)
835+
end
836+
), 1000, 5),
832837

833838
ok = rabbit_ct_broker_helpers:start_node(Config, 0),
834839
{ok, _} = rabbitmq_amqp_client:delete_queue(LinkPair2, CQName),

0 commit comments

Comments
 (0)