From 3192efaec8874666016981e0bcb897fadb0999cb Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Mon, 11 Jan 2016 20:08:45 -0500 Subject: [PATCH] rpc: socket: Explicitly error if we exceed retry count When we autolaunch libvirtd for session URIs, we spin in a retry loop waiting for the daemon to start and the connect(2) to succeed. However if we exceed the retry count, we don't explicitly raise an error, which can yield a slew of different error messages elsewhere in the code. Explicitly raise the last connect(2) failure if we run out of retries. (cherry picked from commit 8da02d528068942303923fc4f935e77cccac9c7c) --- src/rpc/virnetsocket.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index dcff69e5fd..90951be2f4 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -618,7 +618,9 @@ int virNetSocketNewConnectUNIX(const char *path, } VIR_DEBUG("connect() failed: retries=%d errno=%d", retries, errno); + retries--; if (!spawnDaemon || + retries == 0 || (errno != ENOENT && errno != ECONNREFUSED)) { virReportSystemError(errno, _("Failed to connect socket to '%s'"), path); @@ -628,7 +630,6 @@ int virNetSocketNewConnectUNIX(const char *path, if (virNetSocketForkDaemon(binary) < 0) goto cleanup; - retries--; usleep(5000); }