Comment 13 for bug 1869796

Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Turns out this is an ordering issue:

This makes it break:
$ deb-systemd-invoke restart 'libvirtd-ro.socket' 'libvirtd.service' 'libvirtd.socket' 'virtlockd.socket' 'virtlogd.socket'
Job failed. See "journalctl -xe" for details.

But this order would works:
$ deb-systemd-invoke restart 'libvirtd.service' 'libvirtd-ro.socket' 'libvirtd.socket' 'virtlockd.socket' 'virtlogd.socket

Ee didn't add/create this order - it is what dh_installsystemd made out of:
  dh_installsystemd -p libvirt-daemon-system --restart-after-upgrade libvirtd.service
due to:
root@f2:~# grep Also /lib/systemd/system/libvirtd.service
Also=virtlockd.socket
Also=virtlogd.socket
Also=libvirtd.socket
Also=libvirtd-ro.socket

That is just lexical order:
# printf "virtlockd.socket\nvirtlogd.socket\nlibvirtd.socket\nlibvirtd-ro.socket\nlibvirtd.service" | sort
libvirtd-ro.socket
libvirtd.service
libvirtd.socket
virtlockd.socket
virtlogd.socket

IMHO deb-systemd-invoke as generated by dh_installsystemd has a few options:
- should always start with the service it was called?
- should not pull in "ALSO" sockets (I guess it was intentional thou)
- dh-installsystemd could add an option to influence that as needed per-package.

Gladly for libvirt this is only a warning and not breaking any behavior (as the later start recovers it). But I'll add a debhelper task for this case.

Note: as I expected this issue affects Debians libvirt-daemon-system and debhlper just as much.