On 1/11/22 04:42, Ani Sinha wrote:
Currently virProcessGetStatInfo() always returns success and only
logs error
when it is unable to parse the data. Make this function actually report the
error and return a negative value in this error scenario.
Fix the callers so that they do not override the error generated.
Signed-off-by: Ani Sinha <ani(a)anisinha.ca>
---
src/ch/ch_driver.c | 2 --
src/qemu/qemu_driver.c | 7 +------
src/util/virprocess.c | 6 +++++-
3 files changed, 6 insertions(+), 9 deletions(-)
changelog:
v2: fixed the callers
diff --git a/src/util/virprocess.c b/src/util/virprocess.c
index c74bd16fe6..b9f498d5d8 100644
--- a/src/util/virprocess.c
+++ b/src/util/virprocess.c
@@ -1783,7 +1783,11 @@ virProcessGetStatInfo(unsigned long long *cpuTime,
virStrToLong_ullp(proc_stat[VIR_PROCESS_STAT_STIME], NULL, 10, &systime)
< 0 ||
virStrToLong_l(proc_stat[VIR_PROCESS_STAT_RSS], NULL, 10, &rss) < 0 ||
virStrToLong_i(proc_stat[VIR_PROCESS_STAT_PROCESSOR], NULL, 10, &cpu) <
0) {
- VIR_WARN("cannot parse process status data");
+ virReportError(VIR_ERR_INTERNAL_ERROR,
+ _("cannot parse process status data for pid
'%d/%d'"),
+ (int) pid, (int) tid);
+
+ return -1;
}
/* We got jiffies
There's an alternative implementation for non-Linux platforms, but you
are introducing error reporting only to this implementation. Both
versions have to behave the same, i.e. the non-Linux implementation now
has to report error too. Can you fix that in v3?
Michal