[PATCH RESEND 2/5] qemuProcessStartManagedPRDaemon: Don't pass -f pidfile to the daemon

Marc-André Lureau marcandre.lureau at gmail.com
Mon Mar 23 16:36:10 UTC 2020


Hi

On Mon, Mar 23, 2020 at 5:16 PM Michal Privoznik <mprivozn at redhat.com> wrote:
>
> Now, that our virCommandSetPidFile() is more intelligent we don't
> need to rely on the daemon to create and lock the pidfile and use
> virCommandSetPidFile() at the same time.
>
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>

Nice, but doesn't this also fix a temporary regression introduced by
previous commit, now that pidfile is locked?

> ---
>  src/qemu/qemu_process.c | 9 ---------
>  1 file changed, 9 deletions(-)
>
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index e8401030a2..0324857913 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -2850,7 +2850,6 @@ qemuProcessStartManagedPRDaemon(virDomainObjPtr vm)
>      g_autoptr(virQEMUDriverConfig) cfg = NULL;
>      int errfd = -1;
>      g_autofree char *pidfile = NULL;
> -    int pidfd = -1;
>      g_autofree char *socketPath = NULL;
>      pid_t cpid = -1;
>      g_autoptr(virCommand) cmd = NULL;
> @@ -2869,10 +2868,6 @@ qemuProcessStartManagedPRDaemon(virDomainObjPtr vm)
>      if (!(pidfile = qemuProcessBuildPRHelperPidfilePath(vm)))
>          goto cleanup;
>
> -    /* Just try to acquire. Dummy pid will be replaced later */
> -    if ((pidfd = virPidFileAcquirePath(pidfile, false, -1)) < 0)
> -        goto cleanup;
> -
>      if (!(socketPath = qemuDomainGetManagedPRSocketPath(priv)))
>          goto cleanup;
>
> @@ -2887,13 +2882,10 @@ qemuProcessStartManagedPRDaemon(virDomainObjPtr vm)
>
>      if (!(cmd = virCommandNewArgList(cfg->prHelperName,
>                                       "-k", socketPath,
> -                                     "-f", pidfile,
>                                       NULL)))
>          goto cleanup;
>
>      virCommandDaemonize(cmd);
> -    /* We want our virCommand to write child PID into the pidfile
> -     * so that we can read it even before exec(). */
>      virCommandSetPidFile(cmd, pidfile);
>      virCommandSetErrorFD(cmd, &errfd);
>
> @@ -2956,7 +2948,6 @@ qemuProcessStartManagedPRDaemon(virDomainObjPtr vm)
>          if (pidfile)
>              unlink(pidfile);
>      }
> -    VIR_FORCE_CLOSE(pidfd);
>      VIR_FORCE_CLOSE(errfd);
>      return ret;
>  }
> --
> 2.24.1
>


-- 
Marc-André Lureau





More information about the libvir-list mailing list