generation of virtproxd socket files

Jim Fehlig jfehlig at suse.com
Tue Feb 9 17:58:04 UTC 2021


On 2/9/21 6:56 AM, Martin Kletzander wrote:
> On Mon, Feb 08, 2021 at 04:09:16PM -0700, Jim Fehlig wrote:
>> Hi All,

Thanks to everyone for the hints!

>> I received a report [1] and verified that virtproxyd*.socket files have broken
>> syntax. E.g. from virtproxyd.socket
>>
>> [Unit]
>> Description=Libvirt proxy local socket
>> Before=virtproxyd.service
>> libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket libvirtd-tcp.socket
>> libvirtd-tls.socket
>>
>> virtproxyd.socket should 'Conflicts' with the libvirtd sockets. I suspect this
>> regressed in the switch to meson. I checked a libvirt 6.0.0 installation and
>> indeed it has
>>
>> Conflicts=libvirtd.socket libvirtd-ro.socket libvirtd-admin.socket
>> libvirtd-tcp.socket libvirtd-tls.socket
>>
> 
> It looks like the issue might have various root causes as I am unsure myself
> about what exactly was the idea behind some of the actions in the code.  But all
> the .socket files are generated from `src/remote/libvirtd.socket.in` and the 
> line which causes trouble for you is probably this one:
> 
>    
> https://gitlab.com/libvirt/libvirt/-/blob/a619e28dba8c/src/remote/libvirtd.socket.in#L4 
> 
> 
> This is used in `src/meson.build` to generate socket files for all the services:
> 
>    https://gitlab.com/libvirt/libvirt/-/blob/a619e28dba8c/src/meson.build#L792-833
> 
> The proxy daemon service lists the other sockets as dependencies here (even 
> though it uses variable clearly named `*_conflicts`):
> 
>    
> https://gitlab.com/libvirt/libvirt/-/blob/a619e28dba8c/src/remote/meson.build#L233
> 
> and I'm not sure whether that should be prefixed with "Conflicts=" or whether
> the `conflicts` field should come into play, although it looks like it is not
> used anywhere else:
> 
>    https://gitlab.com/libvirt/libvirt/-/blob/a619e28dba8c/src/meson.build#L204

Yeah, afaict it is not used. I can send a separate patch to remove it.

> So long story short: I do not have a right solution for you, but I hope this can
> help you figure out where to go from here.

Yes, it was helpful. Thanks for all the details!

> Actually, let me check if the `deps` are used anywhere else for a unit... yep,
> it is, for virtxend and it actually uses it for the whole line it needs in that
> context.  So maybe a simple patch like this could help?

Yes, I think adding the Conflicts= when the virtproxyd unit is defined is the 
better way to go. I've sent your patch :-)

https://listman.redhat.com/archives/libvir-list/2021-February/msg00607.html

Regards,
Jim





More information about the libvir-list mailing list