From: Kefu Chai Date: Fri, 24 Jul 2020 13:11:08 +0000 (+0800) Subject: crimson/admin: catch thrown exception X-Git-Tag: v16.1.0~1619^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=00d4028ed90fe8b72dbb7e9bffafa9f4d476267e;p=ceph.git crimson/admin: catch thrown exception if the socket file exists, a std::system_error is thrown. and we should catch it. Signed-off-by: Kefu Chai --- diff --git a/src/crimson/admin/admin_socket.cc b/src/crimson/admin/admin_socket.cc index db21e29f1e0..40f7cc834c6 100644 --- a/src/crimson/admin/admin_socket.cc +++ b/src/crimson/admin/admin_socket.cc @@ -233,7 +233,13 @@ seastar::future<> AdminSocket::start(const std::string& path) logger().debug("{}: asok socket path={}", __func__, path); auto sock_path = seastar::socket_address{ seastar::unix_domain_addr{ path } }; - server_sock = seastar::engine().listen(sock_path); + try { + server_sock = seastar::engine().listen(sock_path); + } catch (const std::system_error& e) { + logger().error("{}: unable to listen({}): {}", __func__, path, e.what()); + server_sock.reset(); + return seastar::make_ready_future<>(); + } // listen in background task = seastar::do_until( [this] { return stop_gate.is_closed(); },