summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_quorum_queue.erl9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/rabbit_quorum_queue.erl b/src/rabbit_quorum_queue.erl
index dbe45f1a11..260e36d510 100644
--- a/src/rabbit_quorum_queue.erl
+++ b/src/rabbit_quorum_queue.erl
@@ -246,6 +246,7 @@ rpc_delete_metrics(QName) ->
handle_tick(QName, {Name, MR, MU, M, C, MsgBytesReady, MsgBytesUnack}) ->
%% this makes calls to remote processes so cannot be run inside the
%% ra server
+ Self = self(),
_ = spawn(fun() ->
R = reductions(Name),
rabbit_core_metrics:queue_stats(QName, MR, MU, M, R),
@@ -264,12 +265,12 @@ handle_tick(QName, {Name, MR, MU, M, C, MsgBytesReady, MsgBytesUnack}) ->
{messages, M},
{messages_ready, MR},
{messages_unacknowledged, MU},
- {reductions, R}])
+ {reductions, R}]),
+ ok = repair_leader_record(QName, Self)
end),
- ok = repair_leader_record(QName),
ok.
-repair_leader_record(QName) ->
+repair_leader_record(QName, Self) ->
{ok, Q} = rabbit_amqqueue:lookup(QName),
Node = node(),
case amqqueue:get_pid(Q) of
@@ -279,7 +280,7 @@ repair_leader_record(QName) ->
_ ->
rabbit_log:debug("~s: repairing leader record",
[rabbit_misc:rs(QName)]),
- {_, Name} = erlang:process_info(self(), registered_name),
+ {_, Name} = erlang:process_info(Self, registered_name),
become_leader(QName, Name)
end,
ok.