[libvirt] [PATCH v3 4/4] util: Report error in virFileWrapperFdClose()

Daniel P. Berrangé berrange at redhat.com
Wed Feb 20 12:40:32 UTC 2019


On Wed, Feb 20, 2019 at 01:34:15PM +0100, Andrea Bolognani wrote:
> On Tue, 2019-02-19 at 16:58 +0000, Daniel P. Berrangé wrote:
> > On Tue, Feb 19, 2019 at 05:52:31PM +0100, Andrea Bolognani wrote:
> [...]
> > > @@ -337,8 +337,12 @@ virFileWrapperFdClose(virFileWrapperFdPtr wfd)
> > >  
> > >      ret = virCommandWait(wfd->cmd, NULL);
> > >  
> > > +    /* If the command used to process IO has produced errors, it's fair
> > > +     * to assume those will be more relevant to the user than whatever
> > > +     * eg. QEMU can figure out on its own, so it's okay if we end up
> > > +     * discarding an existing error */
> > >      if (wfd->err_msg && *wfd->err_msg)
> > > -        VIR_WARN("iohelper reports: %s", wfd->err_msg);
> > > +        virReportError(VIR_ERR_OPERATION_FAILED, "%s", wfd->err_msg);
> > 
> > ret needs to be set to -1 in this case
> 
> I expect that a command who produced output on stderr also exited
> with a non-zero return code, but explicitly erroring out if the
> former condition is detected can't possibly hurt I guess.

The alternative is to change the conditional to

   if (ret != 0 && wfd->err_msg && *wfd->err_msg)
       ...


If we think there's a risk of the command printing stuff to stderr in
a non-error scenario.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list