summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--deps/rabbit/src/rabbit_stream_coordinator.erl8
1 files changed, 5 insertions, 3 deletions
diff --git a/deps/rabbit/src/rabbit_stream_coordinator.erl b/deps/rabbit/src/rabbit_stream_coordinator.erl
index f66198edf0..6ae819171a 100644
--- a/deps/rabbit/src/rabbit_stream_coordinator.erl
+++ b/deps/rabbit/src/rabbit_stream_coordinator.erl
@@ -456,7 +456,7 @@ apply(_Meta, {down, Pid, _Reason} = Cmd, #?MODULE{streams = Streams,
streams = Streams#{StreamId => SState}},
ok, Events ++ [{aux, {phase, StreamId, Phase, PhaseArgs}}]};
follower ->
- case rabbit_misc:is_process_alive(maps:get(leader_pid, Conf0)) of
+ case maps:is_key(maps:get(leader_pid, Conf0), Monitors) of
true ->
Phase = phase_start_replica,
PhaseArgs = [node(Pid), Conf0, 1],
@@ -466,11 +466,13 @@ apply(_Meta, {down, Pid, _Reason} = Cmd, #?MODULE{streams = Streams,
SState0),
rabbit_log:debug("rabbit_stream_coordinator: ~p replica on node ~p is down, entering ~p", [StreamId, node(Pid), Phase]),
{State#?MODULE{monitors = Monitors,
- streams = Streams#{StreamId => SState}},
+ streams = Streams#{StreamId => SState}},
ok, [{aux, {phase, StreamId, Phase, PhaseArgs}}]};
false ->
SState = SState0#{pending_cmds => Pending0 ++ [Cmd]},
- reply_and_run_pending(undefined, StreamId, ok, ok, [], State#?MODULE{streams = Streams#{StreamId => SState}})
+ reply_and_run_pending(undefined, StreamId, ok, ok, [],
+ State#?MODULE{monitors = Monitors,
+ streams = Streams#{StreamId => SState}})
end
end;
#{pending_cmds := Pending0} = SState0 ->