diff options
author | Karl Nilsson <kjnilsson@gmail.com> | 2021-01-12 12:17:04 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-12 12:17:04 +0000 |
commit | 015ec8b47fabf2e72f5edd68ae5b1af74a0358d0 (patch) | |
tree | 24049b854930b616d1989b662ac5e0a7faf816da /deps | |
parent | 67624cdadcd24d6f3724020503cf68111d7e2c61 (diff) | |
parent | dfa077591425b67093b2c3f3773b374d3b8bf801 (diff) | |
download | rabbitmq-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.erl | 6 |
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}) |