On Wed, Jan 11, 2023 at 09:24:09AM -0800, Andrea Bolognani wrote: > On Wed, Jan 11, 2023 at 04:42:49PM +0000, Daniel P. Berrangé wrote: > > On Wed, Jan 11, 2023 at 08:24:08AM -0800, Andrea Bolognani wrote: > > > I think we might need to weaken these relationship from Requires to > > > Wants, as that should still ensure that the corresponding sockets are > > > activated for standard deployments without making more specialized > > > ones (e.g. without virtlockd) impossible. > > > > Weakening it to Wants means that virtqemud will still startup even > > if virtlogd fails to start. This is bogus because any attempt jto > > start a guest will then fail due to inability to connect to > > virtlogd's socket. > > > > Users trying to run in non-standard configurations can put in a > > systemd unit file override. They already need to edit the virtqemud > > configuration, so editting the unit file to match isn't a terrible > > burden. > > I'm thinking of KubeVirt, which is the scenario I'm most familiar > with, and in that case virtlogd is used but virtlockd isn't. > > Adding an override to remove the Requires=virtlockd.socket would > indeed not be a big deal, but if we keep the relationships as they > are then the libvirt-daemon-driver-qemu package needs to depend on > the libvirt-daemon-driver-lock to keep it functional. So KubeVirt > will not be able to avoid installing virtlockd despite not using it. > > The ironic part is that libvirt-daemon-driver-qemu doesn't depend on > libvirt-daemon-plugin-lockd, so you will have virtlockd ready to go > even while potentially missing the corresponding plugin! And, even > better, also when you have configured storage locking, but have > chosen the sanlock backend instead of the virtlockd one! > > Based on the fact that virtlogd is opt-out and virtlockd is opt-in, > can we leave the Requires=virtlogd.socket relationship alone and add > a dependency on libvirt-daemon-log to libvirt-daemon-driver-qemu, > while at the same time demoting the Requires=virtlockd.socket to a > Want and *not* adding a dependency on libvirt-daemon-lock? Yes, the virtlockd one is a bit inconsistent. Since we don't have it enabled by default, we don't need it as a Requires clause either. > > > Similarly, I think we're missing Wants for virtstoraged.socket, > > > virtnetworkd.socket, virtsecretd.socket and so on. > > > > We didn't bother with those since it is harmless either way. The > > distro unit file presets will configure those sockets to be started > > on boot if modular daemons are desired. If a user overrides this > > that's fine, we'll just fail to start a guest that has a config > > setting that requires them. > > The same can be said of virtlockd. So I think we should either add > all the missing Want relationships, or drop the one for virtlockd. We need to fix the Fedora presets, since I notice we missed the virtlockd.socket / virtlogd.socket presets. This was harmless while a Requires existed. If we fix the presets, we can drop the virtlockd requires. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|