]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/admin/admin_socket: remove path file if it exists 53082/head
authorMatan Breizman <mbreizma@redhat.com>
Wed, 23 Aug 2023 08:10:32 +0000 (08:10 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Sun, 27 Aug 2023 09:52:38 +0000 (09:52 +0000)
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/crimson/admin/admin_socket.cc

index dc675f5a4969558c30be539130038f85ce2c25d9..3b18708cb59af42a41ccbbdfa47105ad768caad4 100644 (file)
@@ -237,6 +237,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<>();