From ab671b7869513645bc46c61b6e9a225a07789706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20P=C3=A9dron?= Date: Mon, 22 Jan 2024 17:44:08 +0100 Subject: [PATCH] Restart Ra systems [WIP, not enough] --- deps/rabbit/src/rabbit_db_cluster.erl | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/deps/rabbit/src/rabbit_db_cluster.erl b/deps/rabbit/src/rabbit_db_cluster.erl index 438e94fa81c0..b63cbc2146da 100644 --- a/deps/rabbit/src/rabbit_db_cluster.erl +++ b/deps/rabbit/src/rabbit_db_cluster.erl @@ -229,9 +229,18 @@ forget_member(Node, RemoveWhenOffline) -> ?LOG_DEBUG( "DB: removing cluster member `~ts`", [Node], #{domain => ?RMQLOG_DOMAIN_DB}), - case rabbit_khepri:is_enabled() of - true -> forget_member_using_khepri(Node, RemoveWhenOffline); - false -> forget_member_using_mnesia(Node, RemoveWhenOffline) + {ok, _} = erpc:call(Node, application, ensure_all_started, [ra]), + ok = erpc:call(Node, rabbit_ra_systems, ensure_started, []), + try + case rabbit_khepri:is_enabled() of + true -> + forget_member_using_khepri(Node, RemoveWhenOffline); + false -> + forget_member_using_mnesia(Node, RemoveWhenOffline) + end + after + catch erpc:call( + Node, rabbit_ra_systems, ensure_stopped, []) end; true -> {error, {failed_to_remove_node, Node, rabbit_still_running}}