[Pkg-libvirt-maintainers] Bug#1082939: /usr/bin/deb-systemd-helper: error: unable to read virtlockd.socket
Michael Biebl
biebl at debian.org
Sun Oct 6 12:12:57 BST 2024
Am 05.10.24 um 19:51 schrieb Andrea Bolognani:
> On Fri, Oct 04, 2024 at 08:57:36PM +0200, Michael Biebl wrote:
>> On Sat, 28 Sep 2024 18:57:05 +0200 Christoph Anton Mitterer <calestyo at scientia.org> wrote:
>>> Upgrading the package gives:
>>> Setting up libvirt-daemon (10.7.0-3) ...
>>> /usr/bin/deb-systemd-helper: error: unable to read virtlockd.socket
>>> Setting up libvirt-daemon-driver-nwfilter (10.7.0-3) ...
>>
>> I guess the issue here is the following:
>>
>> libvirtd.service:Wants=virtlockd.socket
>> libvirtd.service:After=virtlockd.socket
>> libvirtd.service:Also=virtlockd.socket
>>
>> Especially the Also=virtlockd.socket means, that when enabling
>> libvirtd.service, it is attempted to enable virtlockd.socket as well.
>
> Correct.
>
>> You don't have that installed though (as libvirt-daemon does not declare a
>> hard dependency)
>
> This is intentional.
>
>>> pn libvirt-daemon-lock <none>
>>
>> My recommendation would be to drop the "Also=virtlockd.socket" line from
>> libvirt.service (and "Also=virtlogd.socket" as well), or upgrade the weak
>> recommends to a depends for both packages.
>
> The current setup seem to match intentions, with one caveat that I'll
> address below.
>
> virtlogd and virtlockd are secondary daemons that the primary
> libvirtd daemon might need to delegate some operations to, so it
> makes sense that they'll be enabled/started together with it; at the
> same time, there are scenarios in which it's valid to have just the
> primary daemon, hence why weak dependencies are used both between
> unit files and packages.
>
> The caveat is that libvirtd.service contains Requires=virtlogd.socket
> without a matching Depends from libvirt-daemon to libvirt-daemon-log.
> This is an obvious bug that needs to be addressed.
>
> Turning the Recommends from libvirt-daemon to libvirt-daemon-lock
> into a Depends is undesirable, as it would force people to have
> virtlockd installed on their systems even though the vast majority of
> setups don't actually need it. The whole point of moving the various
> drivers and daemons to separate packages was to allow for
> minimalistic, carefully curated installations, so this would
> represent an unwanted step backwards.
>
> Dropping the Also= lines is undesirable too, as it would require
> users to explicitly care about enabling/disabling virtlogd and
> virtlockd when enabling/disabling libvirtd. With the way things
> currently work, it's enough for users to operate on the primary
> daemon and the secondary ones will come along for the ride. Plus it
> would mean having to diverge from upstream.
>
> It should be noted that systemd itself is perfectly happy with this
> arrangement: since Wants= and Also= are weak dependencies, the
> corresponding units being missing is not considered a problem. As far
> as I can tell, that doesn't even cause a warning to be logged
> anywhere, much less print out an error message.
>
> I don't know the internals of deb-systemd-helper very well, but is
> there a chance that we could simply make it as tolerant to this
> scenario as systemd itself is?
>
> Thanks for looking into this!
>
/usr/lib/systemd/system/virtlockd-admin.socket:Also=virtlockd.socket
Yet debian/rules uses:
dh_installsystemd -p libvirt-daemon --no-also libvirtd.service
dh_installsystemd -p libvirt-daemon --no-stop-on-upgrade libvirtd.socket
libvirtd-ro.socket libvirtd-admin.socket
I.e. virtlockd.socket is also referenced from virtlockd-admin.socket but
the dh_installsystemd line for libvirtd-admin.socket does not contain
"--no-also", so dh_installsystem will generate maintscript code to
enable virtlockd.socket in libvirt-daemon.postinst (you can check the
generated code after a successful build to verify that).
You probably need to more closely inspect which unit file references
which other unit via Also= and if they are shipped in the same package
or if not, what packaging relationship they have.
Keep in mind that "--no-also" is currently an undocumented option of
dh_installsystemd, i.e. not an officially supported feature.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-libvirt-maintainers/attachments/20241006/24997bd1/attachment.sig>
More information about the Pkg-libvirt-maintainers
mailing list