[libvirt] [PATCH] network driver: log error and abort network startup when radvd isn't found

Eric Blake eblake at redhat.com
Fri Mar 18 17:16:45 UTC 2011


On 03/18/2011 11:08 AM, Laine Stump wrote:
> This is detailed in:
> 
>   https://bugzilla.redhat.com/show_bug.cgi?id=688957
> 
> Since radvd is executed by daemonizing it, the attempt to exec the
> radvd binary doesn't happen until after libvirtd has already received
> an exit code from the intermediate forked process, so no error is
> detected or logged by __virExec().
> 
> We can't require radvd as a prerequisit for the libvirt package (many

s/prerequisit/prerequisite/

> installations don't use IPv6, so they don't need it), so instead we
> add in a check to verify there is an executable radvd binary prior to
> trying to exec it.
> ---
>  src/network/bridge_driver.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
> index 6a02df1..c30620a 100644
> --- a/src/network/bridge_driver.c
> +++ b/src/network/bridge_driver.c
> @@ -689,6 +689,14 @@ networkStartRadvd(virNetworkObjPtr network)
>  
>      network->radvdPid = -1;
>  
> +    if (access(RADVD, X_OK) < 0) {

Hmm, should this use

if (!virFileIsExecutable(RADVD)) {

instead?  Then again, I count 10 instances of 'access.*X_OK', but only 5
of FileIsExecutable, so maybe it's worth a separate cleanup (and a
cfg.mk rule to enforce whatever decision we make).

> +        virReportSystemError(errno,
> +                             _("Cannot find %s - "
> +                               "Possibly the package isn't installed"),
> +                             RADVD);
> +        goto cleanup;
> +    }

ACK with the commit typo fixed.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110318/d66e6536/attachment-0001.sig>


More information about the libvir-list mailing list