[libvirt] [PATCH] virsh: fix return value error of cpu-stats

Alex Jia ajia at redhat.com
Mon Aug 26 05:11:46 UTC 2013


On 08/23/2013 06:22 PM, Guannan Ren wrote:
> virsh cpu-stats guest --start 0 --count 3
> It outputs right but the return value is 1 rather than 0
> echo $?
> 1

It's ok with libvirt-0.10.2-23.el6.x86_64 on RHEL6.y, but failed with 
libvirt-1.1.1-2.el7.x86_64
on RHEL7.y, it's a little wired, the commit 73b89ed8 is introduced since 
2012-07-25,  and
Michal only switches it to c99 initialization of vshCmdDef after that, 
except this, nobody changes
the cmdCPUStats(), maybe, we have different patches about  cmdCPUStats() 
between RHEL6.y and RHEL7.y?

> Found by running libvirt-autotest
> ./run -t libvirt --tests virsh_cpu_stats
> ---
>   tools/virsh-domain.c | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
> index b29f934..bcf495c 100644
> --- a/tools/virsh-domain.c
> +++ b/tools/virsh-domain.c
> @@ -6350,7 +6350,9 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
>
>       if (!nparams) {
>           vshPrint(ctl, "%s", _("No per-CPU stats available"));
> -        goto do_show_total;
> +        if (show_total)
> +            goto do_show_total;
> +        goto cleanup;
>       }
>
>       if (VIR_ALLOC_N(params, nparams * MIN(show_count, 128))<  0)
> @@ -6389,10 +6391,12 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
>       }
>       VIR_FREE(params);
>
> -do_show_total:
> -    if (!show_total)
> +    if (!show_total) {
> +        ret = true;
>           goto cleanup;
> +    }
>
> +do_show_total:
>       /* get supported num of parameter for total statistics */
>       if ((nparams = virDomainGetCPUStats(dom, NULL, 0, -1, 1, flags))<  0)
>           goto failed_stats;




More information about the libvir-list mailing list