From: Matan Breizman Date: Wed, 23 Aug 2023 08:10:32 +0000 (+0000) Subject: crimson/admin/admin_socket: remove path file if it exists X-Git-Tag: v18.2.1~157^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1edd53d03ed849691db68657d00cee7423a8cd29;p=ceph.git crimson/admin/admin_socket: remove path file if it exists Signed-off-by: Matan Breizman (cherry picked from commit 374de2a7622bf3fc75eceb24e39cf36a27ed8d1b) --- diff --git a/src/crimson/admin/admin_socket.cc b/src/crimson/admin/admin_socket.cc index 88ce8b1b73c2..9db91369a8b5 100644 --- a/src/crimson/admin/admin_socket.cc +++ b/src/crimson/admin/admin_socket.cc @@ -236,6 +236,14 @@ seastar::future<> AdminSocket::start(const std::string& path) try { server_sock = seastar::engine().listen(sock_path); } catch (const std::system_error& e) { + if (e.code() == std::errc::address_in_use) { + logger().debug("{}: Admin Socket socket path={} already exists, retrying", + __func__, path); + return seastar::remove_file(path).then([this, path] { + server_sock.reset(); + return start(path); + }); + } logger().error("{}: unable to listen({}): {}", __func__, path, e.what()); server_sock.reset(); return seastar::make_ready_future<>();