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

Ani Sinha ani at anisinha.ca
Tue Jan 11 09:46:36 UTC 2022



On Tue, 11 Jan 2022, Michal Prívozník wrote:

> 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 at 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

but that has not been pushed yet I believe. Correct me if I am mistaken.

> 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?

I think we should keep the scope of this patch as is. Why don't we do
this. Lets push this patch. Then I will fix the patch for non-linux
platforms and send it over.


More information about the libvir-list mailing list