diff options
| author | Michael Klishin <michael@clojurewerkz.org> | 2020-06-25 17:59:08 +0300 |
|---|---|---|
| committer | Michael Klishin <michael@clojurewerkz.org> | 2020-07-14 03:50:31 +0300 |
| commit | 02d001bff7815ffa4bef4595e1b8cac38ee0d159 (patch) | |
| tree | cf8542d5f88182ac4c30595657ebefdb25040b4f /src | |
| parent | 235567e7d51ee40250860cd539d024895fb3dd56 (diff) | |
| download | rabbitmq-server-git-02d001bff7815ffa4bef4595e1b8cac38ee0d159.tar.gz | |
Correctly compute local QQ replica/Ra server name when reviving
Part of rabbitmq/rabbitmq-server#2312
Pair: @kjnilsson
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_maintenance.erl | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/rabbit_maintenance.erl b/src/rabbit_maintenance.erl index 817d65479d..6636998c61 100644 --- a/src/rabbit_maintenance.erl +++ b/src/rabbit_maintenance.erl @@ -43,6 +43,7 @@ %% API %% +-spec drain() -> ok. drain() -> rabbit_log:alert("This node is being put into maintenance (drain) mode"), mark_as_being_drained(), @@ -62,6 +63,7 @@ drain() -> ok. +-spec revive() -> ok. revive() -> rabbit_log:alert("This node is being revived from maintenance (drain) mode"), revive_local_quorum_queue_replicas(), @@ -233,17 +235,17 @@ revive_local_quorum_queue_replicas() -> Queues = rabbit_amqqueue:list_local_followers(), [begin Name = amqqueue:get_name(Q), - RaLeader = amqqueue:get_pid(Q), rabbit_log:debug("Will trigger a leader election for local quorum queue ~s", [rabbit_misc:rs(Name)]), %% start local QQ replica (Ra server) of this queue - RaLeader = amqqueue:get_pid(Q), - rabbit_log:debug("Will start Ra server ~p", [RaLeader]), - case ra:restart_server(RaLeader) of + {Prefix, _Node} = amqqueue:get_pid(Q), + RaServer = {Prefix, node()}, + rabbit_log:debug("Will start Ra server ~p", [RaServer]), + case ra:restart_server(RaServer) of ok -> - rabbit_log:debug("Successfully restarted Ra server ~p", [RaLeader]); + rabbit_log:debug("Successfully restarted Ra server ~p", [RaServer]); {error, {already_started, _Pid}} -> - rabbit_log:debug("Ra server ~p is already running", [RaLeader]); + rabbit_log:debug("Ra server ~p is already running", [RaServer]); {error, nodedown} -> rabbit_log:error("Failed to restart Ra server ~p: target node was reported as down") end |
