[libvirt PATCH] rpc: don't try to spawn non-existant daemon
Martin Kletzander
mkletzan at redhat.com
Wed Jan 25 15:06:49 UTC 2023
On Wed, Jan 25, 2023 at 02:27:09PM +0000, Daniel P. Berrangé wrote:
>If libvirt is built in client only mode, the libvirtd/virtqemud/etc
>daemons won't exist. If the client is told to connect to a local
>hypervisor, it'll see the socket doesn't exist, try to spawn the
>daemon and then re-try connecting to the socket for a few seconds.
>Ultimately this will fail because the daemon doesn't exist and the
>user gets an error message
>
> error: Failed to connect socket to '/run/user/1000/libvirt/virtqemud-sock': No such file or directory
>
>technically this is accurate, but it doesn't help identify the root
>cause. With this change it will now report
>
> error: binary 'virtqemud' does not exist in $PATH: No such file or directory
>
>and will skip all the socket connect retries
>
>Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
Reviewed-by: Martin Kletzander <mkletzan at redhat.com>
>---
> src/rpc/virnetsocket.c | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
>diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c
>index 8280bda007..bb2e0c5d3d 100644
>--- a/src/rpc/virnetsocket.c
>+++ b/src/rpc/virnetsocket.c
>@@ -123,9 +123,19 @@ VIR_ONCE_GLOBAL_INIT(virNetSocket);
> #ifndef WIN32
> static int virNetSocketForkDaemon(const char *binary)
> {
>- g_autoptr(virCommand) cmd = virCommandNewArgList(binary,
>- "--timeout=120",
>- NULL);
>+ g_autofree char *binarypath = virFindFileInPath(binary);
>+ g_autoptr(virCommand) cmd = NULL;
>+
>+ if (!binarypath) {
>+ virReportSystemError(ENOENT,
>+ _("binary '%s' does not exist in $PATH"),
>+ binary);
>+ return -1;
>+ }
>+
>+ cmd = virCommandNewArgList(binarypath,
>+ "--timeout=120",
>+ NULL);
>
> virCommandAddEnvPassCommon(cmd);
> virCommandAddEnvPass(cmd, "XDG_CACHE_HOME");
>--
>2.39.0
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20230125/13020c4f/attachment.sig>
More information about the libvir-list
mailing list