summaryrefslogtreecommitdiff
path: root/deps
diff options
context:
space:
mode:
authorKarl Nilsson <kjnilsson@gmail.com>2021-01-12 12:17:04 +0000
committerGitHub <noreply@github.com>2021-01-12 12:17:04 +0000
commit015ec8b47fabf2e72f5edd68ae5b1af74a0358d0 (patch)
tree24049b854930b616d1989b662ac5e0a7faf816da /deps
parent67624cdadcd24d6f3724020503cf68111d7e2c61 (diff)
parentdfa077591425b67093b2c3f3773b374d3b8bf801 (diff)
downloadrabbitmq-server-git-015ec8b47fabf2e72f5edd68ae5b1af74a0358d0.tar.gz
Merge pull request #2681 from rabbitmq/stream-coordinator-restart-failure
Ensure leader is deleted from supervisor in case of re-election
Diffstat (limited to 'deps')
-rw-r--r--deps/rabbit/src/rabbit_stream_coordinator.erl6
1 files changed, 2 insertions, 4 deletions
diff --git a/deps/rabbit/src/rabbit_stream_coordinator.erl b/deps/rabbit/src/rabbit_stream_coordinator.erl
index 9e4890c894..93053bc04e 100644
--- a/deps/rabbit/src/rabbit_stream_coordinator.erl
+++ b/deps/rabbit/src/rabbit_stream_coordinator.erl
@@ -747,17 +747,15 @@ phase_stop_replicas(#{replica_nodes := Replicas,
ra:pipeline_command({?MODULE, node()}, {replicas_stopped, StreamId})
end).
-phase_start_new_leader(#{name := StreamId, leader_node := Node, leader_pid := LPid} = Conf) ->
+phase_start_new_leader(#{name := StreamId, leader_node := Node} = Conf) ->
spawn(fun() ->
osiris_replica:stop(Node, Conf),
+ osiris_writer:stop(Conf),
%% If the start fails, the monitor will capture the crash and restart it
case osiris_writer:start(Conf) of
{ok, Pid} ->
ra:pipeline_command({?MODULE, node()},
{leader_elected, StreamId, Pid});
- {error, already_present} ->
- ra:pipeline_command({?MODULE, node()},
- {leader_elected, StreamId, LPid});
{error, {already_started, Pid}} ->
ra:pipeline_command({?MODULE, node()},
{leader_elected, StreamId, Pid})