[PATCH] report error when virProcessGetStatInfo() is unable to parse data

Michal Prívozník mprivozn at redhat.com
Fri Jan 7 11:36:23 UTC 2022


On 1/7/22 10:09, 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.
> 
> Signed-off-by: Ani Sinha <ani at anisinha.ca>
> ---
>  src/util/virprocess.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> 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

Couple of problems with this patch as is. I'm not against the idea of
reporting an error here. But couple of things needs to be addressed first:

1) Currently, all callers check for retval and report an error if -1 was
returned. This means, that even though this new message is reported it
is immediately overwritten in caller.

2) The non-linux implementation now has to report error too. I believe
it's obvious why from our previous discussion this morning.

Michal




More information about the libvir-list mailing list