On Tue, Nov 3, 2020 at 9:26 PM Jim Fehlig <jfehlig@xxxxxxxx> 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@xxxxxxxx> > --- > > 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@xxxxxxxxx> -- 真実はいつも一つ!/ Always, there's only one truth!