[libvirt] [PATCH for 5.10.0] nss: Don't fail on empty files

Michal Privoznik mprivozn at redhat.com
Thu Nov 28 13:43:22 UTC 2019


On 11/28/19 2:40 PM, Michal Privoznik wrote:
> Before we rewrote nss plugin so that it doesn't use libvirt's
> internal functions it used virLeaseReadCustomLeaseFile() to parse
> .status files. After the rewrite it's using read() + yajl_parse()
> + yajl_complete_parse(). There's one catch though,
> virLeaseReadCustomLeaseFile() skipped over empty files.
> 
> An empty .status file is created when a network is started. This
> is because we configure dnsmasq to use our leasehelper. So the
> first thing it does it calls it as follows:
> 
>    DNSMASQ_INTERFACE=virbr0 /usr/libexec/libvirt_leaseshelper init
> 
> which causes the leasehelper to create empty virbr0.status file.
> If there is only one libvirt network then that is no problem -
> there are no other .status files to parse anyway. But if there
> are two or more networks then the first empty .status file causes
> whole parsing process and subsequently the whole name lookup
> process to fail.

Forgot to add:

Fixes: v5.7.0-rc1~343

Michal




More information about the libvir-list mailing list