[PATCH 2/2] virtlo(g|ck)d: Fix exec-restart
Jim Fehlig
jfehlig at suse.com
Thu Mar 11 23:47:54 UTC 2021
On 3/10/21 9:37 AM, Peter Krempa wrote:
> Commit 94e45d1042e broke exec-restart of virtlogd and virtlockd as the
> code waiting for the daemon shutdown closed the daemons before
> exec-restarting.
This reminds me of an odd issue we encountered three years ago, fixed by Daniel
https://listman.redhat.com/archives/libvir-list/2018-March/msg00298.html
I tested your patches but notice locks are still lost on re-exec.
qemu.conf:
lock_manager = "lockd"
qemu-lockd.conf:
file_lockspace_dir = "/var/lib/libvirt/lockspace"
/var/lib/libvirt/lockspace is nothing special, xfs on a local disk. After
starting a VM
# ls /var/lib/libvirt/lockspace/
a89872e150e6b9e4cbd59ef2bd289bc6cd0a8fa6fbf533c41957f77a90381e9c
# lslocks | grep lockd
virtlockd 95009 POSIX WRITE 0 0 0
/var/lib/libvirt/lockspace/a89872e150e6b9e4cbd59ef2bd289bc6cd0a8fa6fbf533c41957f77a90381e9c
virtlockd 95009 POSIX 5B WRITE 0 0 0 /run/virtlockd.pid
# systemctl reload virtlockd
# ls /var/lib/libvirt/lockspace/
a89872e150e6b9e4cbd59ef2bd289bc6cd0a8fa6fbf533c41957f77a90381e9c
# lslocks | grep lockd
#
Regards,
Jim
>
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1912243
> Fixes: 94e45d1042e
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
> src/locking/lock_daemon.c | 2 +-
> src/logging/log_daemon.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c
> index 04038d2668..ffde2017ac 100644
> --- a/src/locking/lock_daemon.c
> +++ b/src/locking/lock_daemon.c
> @@ -336,7 +336,7 @@ virLockDaemonExecRestartHandler(virNetDaemonPtr dmn,
> void *opaque G_GNUC_UNUSED)
> {
> execRestart = true;
> - virNetDaemonQuit(dmn);
> + virNetDaemonQuitExecRestart(dmn);
> }
>
> static int
> diff --git a/src/logging/log_daemon.c b/src/logging/log_daemon.c
> index aa76dcd329..e81de50899 100644
> --- a/src/logging/log_daemon.c
> +++ b/src/logging/log_daemon.c
> @@ -283,7 +283,7 @@ virLogDaemonExecRestartHandler(virNetDaemonPtr dmn,
> void *opaque G_GNUC_UNUSED)
> {
> execRestart = true;
> - virNetDaemonQuit(dmn);
> + virNetDaemonQuitExecRestart(dmn);
> }
>
> static int
>
More information about the libvir-list
mailing list