Skip to content

Commit 70460a5

Browse files
SimonUngemergify[bot]
authored andcommitted
Let QQs check if it needs to repair amqqueue nodes
(cherry picked from commit 83a0eed)
1 parent e7f47b7 commit 70460a5

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

deps/rabbit/src/rabbit_quorum_queue.erl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,12 @@ handle_tick(QName,
551551
| info(Q, Keys)],
552552
rabbit_core_metrics:queue_stats(QName, Infos),
553553
ok = repair_leader_record(Q, Self),
554+
case repair_amqqueue_nodes(Q) of
555+
ok ->
556+
ok;
557+
repaired ->
558+
rabbit_log:debug("Repaired quorum queue ~ts amqqueue record", [rabbit_misc:rs(QName)])
559+
end,
554560
ExpectedNodes = rabbit_nodes:list_members(),
555561
case Nodes -- ExpectedNodes of
556562
[] ->
@@ -603,8 +609,8 @@ repair_amqqueue_nodes(QName = #resource{}) ->
603609
repair_amqqueue_nodes(Q0);
604610
repair_amqqueue_nodes(Q0) ->
605611
QName = amqqueue:get_name(Q0),
606-
Leader = amqqueue:get_pid(Q0),
607-
{ok, Members, _} = ra:members(Leader),
612+
{Name, _} = amqqueue:get_pid(Q0),
613+
Members = ra_leaderboard:lookup_members(Name),
608614
RaNodes = [N || {_, N} <- Members],
609615
#{nodes := Nodes} = amqqueue:get_type_state(Q0),
610616
case lists:sort(RaNodes) =:= lists:sort(Nodes) of

0 commit comments

Comments
 (0)