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

Alex Jia ajia at redhat.com
Mon Aug 26 10:19:13 UTC 2013


On 08/26/2013 05:11 PM, Pavel Hrdina wrote:
> On 26.8.2013 07:11, Alex Jia wrote:
>> 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?
>
> This bug has been introduced by commit a54f25a9.

Yes, thanks, I gave a error keyword 'cmdCPUStats' on the following cmdline.

# git blame tools/virsh-domain.c | grep cmdCPUStats

>
>>
>>> 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;
>>
>> -- 
>> libvir-list mailing list
>> libvir-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvir-list
>




More information about the libvir-list mailing list