From: Xuehan Xu Date: Mon, 13 Apr 2020 05:42:11 +0000 (+0800) Subject: crimson/monc: close pending connections when stopping X-Git-Tag: v16.1.0~2096^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=86f278d479e3cfb21507194cdf64ddbbc724a3a6;p=ceph.git crimson/monc: close pending connections when stopping Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/mon/MonClient.cc b/src/crimson/mon/MonClient.cc index 6e52b3ba25ee6..a6fc5cc024950 100644 --- a/src/crimson/mon/MonClient.cc +++ b/src/crimson/mon/MonClient.cc @@ -922,6 +922,9 @@ seastar::future<> Client::stop() logger().info("{}", __func__); auto fut = gate.close(); timer.cancel(); + for (auto& pending_con : pending_conns) { + pending_con->close(); + } if (active_con) { active_con->close(); } @@ -1000,7 +1003,10 @@ seastar::future<> Client::reopen_session(int rank) return seastar::make_exception_future(ep); }); }).then([this] { - ceph_assert_always(active_con); + if (!active_con) { + return seastar::make_exception_future( + crimson::common::system_shutdown_exception()); + } return active_con->renew_rotating_keyring(); }); }