[PATCH] remote: Add libvirtd dependency to virt-guest-shutdown.target

Neal Gompa ngompa13 at gmail.com
Wed Nov 4 06:46:05 UTC 2020


On Tue, Nov 3, 2020 at 9:26 PM Jim Fehlig <jfehlig at suse.com> wrote:
>
> When restarting libvirt services and sockets *and* libvirt-guests.service
> is running, the latter will sometimes hang when trying to connect to
> libvirtd. Even though libvirt-guests has 'Wants=libvirtd.service' and
> 'After=libvirtd.service', we can see via journalctl that it is not
> shutdown before libvirtd when executing something like
>
> systemctl try-restart libvirtd.service libvirtd.socket \
> libvirtd-ro.socket virtlockd.service virtlockd.socket \
> virtlogd.service virtlogd.socket virt-guest-shutdown.target
>
> Oct 28 15:53:31 systemd[1]: Stopping Virtualization daemon...
> Oct 28 15:53:31 systemd[1]: libvirtd.service: Succeeded.
> Oct 28 15:53:31 systemd[1]: Stopped Virtualization daemon.
> Oct 28 15:53:31 systemd[1]: libvirtd-admin.socket: Succeeded.
> Oct 28 15:53:31 systemd[1]: Closed Libvirt admin socket.
> Oct 28 15:53:31 systemd[1]: Stopping Libvirt admin socket.
> Oct 28 15:53:31 systemd[1]: libvirtd-ro.socket: Succeeded.
> Oct 28 15:53:31 systemd[1]: Closed Libvirt local read-only socket.
> Oct 28 15:53:31 systemd[1]: Stopping Libvirt local read-only socket.
> Oct 28 15:53:31 systemd[1]: libvirtd.socket: Succeeded.
> Oct 28 15:53:31 systemd[1]: Closed Libvirt local socket.
> Oct 28 15:53:31 systemd[1]: Stopping Libvirt local socket.
> Oct 28 15:53:31 systemd[1]: Listening on Libvirt local socket.
> Oct 28 15:53:31 systemd[1]: Listening on Libvirt admin socket.
> Oct 28 15:53:31 systemd[1]: Listening on Libvirt local read-only socket.
> Oct 28 15:53:31 systemd[1]: virtlockd.socket: Succeeded.
> Oct 28 15:53:31 systemd[1]: Closed Virtual machine lock manager socket.
> Oct 28 15:53:31 systemd[1]: Stopping Virtual machine lock manager socket.
> Oct 28 15:53:31 systemd[1]: Listening on Virtual machine lock manager socket.
> Oct 28 15:53:31 systemd[1]: virtlogd.socket: Succeeded.
> Oct 28 15:53:31 systemd[1]: Closed Virtual machine log manager socket.
> Oct 28 15:53:31 systemd[1]: Stopping Virtual machine log manager socket.
> Oct 28 15:53:31 systemd[1]: Listening on Virtual machine log manager socket.
> Oct 28 15:53:31 systemd[1]: Stopping Suspend/Resume Running libvirt Guests...
>
> In this case, the try-restart command hung and libvirt-guests was stuck
> trying to connect to libvirtd. In the following case, the try-restart
> worked since libvirtd was started again before libvirt-guests was stopped!
>
> Oct 28 15:19:02  systemd[1]: Stopping Virtualization daemon...
> Oct 28 15:19:02  systemd[1]: Stopped Virtualization daemon.
> Oct 28 15:19:02  systemd[1]: Closed Libvirt admin socket.
> Oct 28 15:19:02  systemd[1]: Stopping Libvirt admin socket.
> Oct 28 15:19:02  systemd[1]: Closed Virtual machine lock manager socket.
> Oct 28 15:19:02  systemd[1]: Stopping Virtual machine lock manager socket.
> Oct 28 15:19:02  systemd[1]: Listening on Virtual machine lock manager socket.
> Oct 28 15:19:02  systemd[1]: Closed Libvirt local read-only socket.
> Oct 28 15:19:02  systemd[1]: Stopping Libvirt local read-only socket.
> Oct 28 15:19:02  systemd[1]: Closed Libvirt local socket.
> Oct 28 15:19:02  systemd[1]: Stopping Libvirt local socket.
> Oct 28 15:19:02  systemd[1]: Listening on Libvirt local socket.
> Oct 28 15:19:02  systemd[1]: Listening on Libvirt admin socket.
> Oct 28 15:19:02  systemd[1]: Listening on Libvirt local read-only socket.
> Oct 28 15:19:02  systemd[1]: Closed Virtual machine log manager socket.
> Oct 28 15:19:02  systemd[1]: Stopping Virtual machine log manager socket.
> Oct 28 15:19:02  systemd[1]: Listening on Virtual machine log manager socket.
> Oct 28 15:19:02  systemd[1]: Starting Virtualization daemon...
> Oct 28 15:19:02  systemd[1]: Stopping Suspend/Resume Running libvirt Guests...
> Oct 28 15:19:02  systemd[1]: Started Virtualization daemon.
> Oct 28 15:19:02  libvirt-guests.sh[4912]: Running guests on default URI: no running guests.
> Oct 28 15:19:02  systemd[1]: Stopped Suspend/Resume Running libvirt Guests.
> Oct 28 15:19:02  systemd[1]: Stopped target Libvirt guests shutdown.
> Oct 28 15:19:02  systemd[1]: Stopping Libvirt guests shutdown.
> Oct 28 15:19:02  systemd[1]: Reached target Libvirt guests shutdown.
> Oct 28 15:19:02  systemd[1]: Starting Suspend/Resume Running libvirt Guests...
> Oct 28 15:19:02  systemd[1]: Started Suspend/Resume Running libvirt Guests.
>
> Adding 'Requires=libvirtd.service' to virt-guest-shutdown.target results
> in expected behavior
>
> Oct 28 15:40:00  systemd[1]: Stopping Suspend/Resume Running libvirt Guests...
> Oct 28 15:40:00  libvirt-guests.sh[5245]: Running guests on default URI: no running guests.
> Oct 28 15:40:00  systemd[1]: Stopped Suspend/Resume Running libvirt Guests.
> Oct 28 15:40:00  systemd[1]: Stopped target Libvirt guests shutdown.
> Oct 28 15:40:00  systemd[1]: Stopping Libvirt guests shutdown.
> Oct 28 15:40:00  systemd[1]: Stopping Virtualization daemon...
> Oct 28 15:40:00  systemd[1]: Stopped Virtualization daemon.
> Oct 28 15:40:00  systemd[1]: Closed Virtual machine log manager socket.
> Oct 28 15:40:00  systemd[1]: Stopping Virtual machine log manager socket.
> Oct 28 15:40:00  systemd[1]: Listening on Virtual machine log manager socket.
> Oct 28 15:40:00  systemd[1]: Closed Libvirt admin socket.
> Oct 28 15:40:00  systemd[1]: Stopping Libvirt admin socket.
> Oct 28 15:40:00  systemd[1]: Closed Libvirt local read-only socket.
> Oct 28 15:40:00  systemd[1]: Stopping Libvirt local read-only socket.
> Oct 28 15:40:00  systemd[1]: Closed Libvirt local socket.
> Oct 28 15:40:00  systemd[1]: Stopping Libvirt local socket.
> Oct 28 15:40:00  systemd[1]: Listening on Libvirt local socket.
> Oct 28 15:40:00  systemd[1]: Listening on Libvirt admin socket.
> Oct 28 15:40:00  systemd[1]: Listening on Libvirt local read-only socket.
> Oct 28 15:40:00  systemd[1]: Closed Virtual machine lock manager socket.
> Oct 28 15:40:00  systemd[1]: Stopping Virtual machine lock manager socket.
> Oct 28 15:40:00  systemd[1]: Listening on Virtual machine lock manager socket.
> Oct 28 15:40:00  systemd[1]: Starting Virtualization daemon...
> Oct 28 15:40:00  systemd[1]: Started Virtualization daemon.
> Oct 28 15:40:00  systemd[1]: Reached target Libvirt guests shutdown.
> Oct 28 15:40:00  systemd[1]: Starting Suspend/Resume Running libvirt Guests...
> Oct 28 15:40:00  systemd[1]: Started Suspend/Resume Running libvirt Guests.
>
> Signed-off-by: Jim Fehlig <jfehlig at suse.com>
> ---
>
> I asked about this on the dev list but it is probably best to send a
> patch for discussion instead.
>
> https://www.redhat.com/archives/libvir-list/2020-October/msg01492.html
>
>  src/remote/virt-guest-shutdown.target | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/src/remote/virt-guest-shutdown.target b/src/remote/virt-guest-shutdown.target
> index 25d4aaa267..e2efa3e63a 100644
> --- a/src/remote/virt-guest-shutdown.target
> +++ b/src/remote/virt-guest-shutdown.target
> @@ -1,3 +1,4 @@
>  [Unit]
>  Description=Libvirt guests shutdown
> +Requires=libvirtd.service
>  Documentation=https://libvirt.org
> --
> 2.28.0
>
>

LGTM.

Reviewed-by: Neal Gompa <ngompa13 at gmail.com>


-- 
真実はいつも一つ!/ Always, there's only one truth!





More information about the libvir-list mailing list