On 1/27/21 12:58 AM, Christian Ehrhardt wrote:
On Wed, Nov 4, 2020 at 7:47 AM Neal Gompa <ngompa13(a)gmail.com>
wrote:
>
> On Tue, Nov 3, 2020 at 9:26 PM Jim Fehlig <jfehlig(a)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
>>
...
>> Adding 'Requires=libvirtd.service' to virt-guest-shutdown.target results
>> in expected behavior
Hi Jim (and all others),
This change is accepted since 6.10 [1] - while testing 7.0 for Debian
I've found that this change
regresses us bringing back bug 955216 [2] for us.
Based on how the require statement works I think it is bringing the
same issue to everyone
(not just Debian/Ubuntu).
Nod. I verified the same behavior on SUSE :-(.
That issue is - once you restart libvirtd.service (common on
upgrades)
it will now also always
cycle libvirt-guests.service through a restart.
But cycling libvirt-guests.service means shutting down and starting
all guests which suddenly
makes upgrading libvirt very disruptive.
Agreed!
For the time being I've suggested we revert this change in
Debian/Ubuntu, but I wonder if
there could be something that ensures the ordering Jim wanted to achieve without
hard-linking (via ) a libvirtd.service restart to also restart
libvirt-guests.service?
Suggestions and/or comments very welcomed! I don't have other ideas ATM. In the
meantime I've sent a patch to revert the commit
https://www.redhat.com/archives/libvir-list/2021-January/msg01198.html
Regards,
Jim
--- log showing that libvirtd.service now restarts libvirt-guests as well ---
root@h-libvirt-netcheck-up:~# systemctl status libvirt-guests.service
● libvirt-guests.service - Suspend/Resume Running libvirt Guests
Loaded: loaded (/lib/systemd/system/libvirt-guests.service;
enabled; vendor preset: enabled)
Active: active (exited) since Wed 2021-01-27 06:33:41 UTC; 1h 19min ago
Docs: man:libvirtd(8)
https://libvirt.org
Main PID: 56753 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 38269)
Memory: 0B
CGroup: /system.slice/libvirt-guests.service
Jan 27 06:33:41 h-libvirt-netcheck-up systemd[1]: Starting
Suspend/Resume Running libvirt Guests...
Jan 27 06:33:41 h-libvirt-netcheck-up systemd[1]: Finished
Suspend/Resume Running libvirt Guests.
root@h-libvirt-netcheck-up:~# systemctl restart libvirtd
root@h-libvirt-netcheck-up:~# systemctl status libvirt-guests.service
● libvirt-guests.service - Suspend/Resume Running libvirt Guests
Loaded: loaded (/lib/systemd/system/libvirt-guests.service;
enabled; vendor preset: enabled)
Active: active (exited) since Wed 2021-01-27 07:52:57 UTC; 4s ago
Docs: man:libvirtd(8)
https://libvirt.org
Process: 57626 ExecStart=/usr/lib/libvirt/libvirt-guests.sh start
(code=exited, status=0/SUCCESS)
Main PID: 57626 (code=exited, status=0/SUCCESS)
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Starting
Suspend/Resume Running libvirt Guests...
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Finished
Suspend/Resume Running libvirt Guests.
You see new PID, and entries that it stopped/started all guests.
--- journal while the above restarts happened ---
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Stopping
Suspend/Resume Running libvirt Guests...
Jan 27 07:52:57 h-libvirt-netcheck-up libvirt-guests.sh[57593]:
Running guests on default URI:
Jan 27 07:52:57 h-libvirt-netcheck-up libvirt-guests.sh[57602]: no
running guests.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]:
libvirt-guests.service: Succeeded.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Stopped
Suspend/Resume Running libvirt Guests.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Stopped target
Libvirt guests shutdown.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Stopping Libvirt
guests shutdown.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Stopping
Virtualization daemon...
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: libvirtd.service: Succeeded.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: libvirtd.service:
Unit process 343 (dnsmasq) remains running after unit stopped.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: libvirtd.service:
Unit process 344 (dnsmasq) remains running after unit stopped.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Stopped Virtualization daemon.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: libvirtd.service:
Found left-over process 343 (dnsmasq) in control group while starting
unit. Ignoring.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: This usually
indicates unclean termination of a previous run, or service
implementation deficiencies.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: libvirtd.service:
Found left-over process 344 (dnsmasq) in control group while starting
unit. Ignoring.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: This usually
indicates unclean termination of a previous run, or service
implementation deficiencies.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Starting
Virtualization daemon...
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Started Virtualization daemon.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Reached target
Libvirt guests shutdown.
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Starting
Suspend/Resume Running libvirt Guests...
Jan 27 07:52:57 h-libvirt-netcheck-up systemd[1]: Finished
Suspend/Resume Running libvirt Guests.
[1]:
https://gitlab.com/libvirt/libvirt/-/commit/f035f53baa2e5dc00b8e866e59467...
[2]:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955216