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

Peter Krempa pkrempa at redhat.com
Tue Jan 11 09:58:41 UTC 2022


On Tue, Jan 11, 2022 at 15:16:36 +0530, Ani Sinha wrote:
> 
> 
> 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.

It was pushed already as it was fixing the build, which had higher
priority than any cosmetic issues which can be fixed later:

commit d7c64453aa0e9e0718e9292d7269ea3fe34f7c4c
Author: Michal Prívozník <mprivozn at redhat.com>
Date:   Thu Jan 6 20:13:08 2022 +0100

    virprocess: Provide non-Linux stubs for virProcessGet{Stat,Sched}Info

    Both virProcessGetStatInfo() and virProcessGetSchedInfo() are
    Linux centric. Provide stubs for non-Linux platforms.

    Fixes: d73852c49962fbfe652fc7bec595a3f242faf847
    Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
    Reviewed-by: Peter Krempa <pkrempa at redhat.com>
    Reviewed-by: Ján Tomko <jtomko at redhat.com>




More information about the libvir-list mailing list