[libvirt] [PATCH] utils: More useful error message for hook script failure

Eric Blake eblake at redhat.com
Fri Jul 29 11:48:05 UTC 2011


On 07/29/2011 04:23 AM, Osier Yang wrote:
> Commit 3709a386 ported hooks codes to new command execution API,
> together with the useful error message removed. Though we can't
> get "errbuf" from the new command execution API anymore, still
> we can give a more useful error.
>
> https://bugzilla.redhat.com/show_bug.cgi?id=726398
> ---
>   src/util/hooks.c |    9 ++++++++-
>   1 files changed, 8 insertions(+), 1 deletions(-)
>
> diff --git a/src/util/hooks.c b/src/util/hooks.c
> index 64adfcb..00f3a01 100644
> --- a/src/util/hooks.c
> +++ b/src/util/hooks.c
> @@ -193,6 +193,7 @@ int
>   virHookCall(int driver, const char *id, int op, int sub_op, const char *extra,
>               const char *input) {
>       int ret;
> +    int exitstatus;
>       char *path;
>       virCommandPtr cmd;
>       const char *drvstr;
> @@ -257,7 +258,13 @@ virHookCall(int driver, const char *id, int op, int sub_op, const char *extra,
>       if (input)
>           virCommandSetInputBuffer(cmd, input);
>
> -    ret = virCommandRun(cmd, NULL);
> +    ret = virCommandRun(cmd,&exitstatus);
> +    if (exitstatus != 0) {

Needs to be: if (ret == 0 && exitstatus != 0).

If ret is -1 (possible if the command completely failed, such as if you 
are OOM or the child died due to a signal rather than a normal exit), 
then exitstatus might be undefined.

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




More information about the libvir-list mailing list