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;