[libvirt] [PATCH v3 4/4] util: Report error in virFileWrapperFdClose()
Daniel P. Berrangé
berrange at redhat.com
Tue Feb 19 16:58:08 UTC 2019
On Tue, Feb 19, 2019 at 05:52:31PM +0100, Andrea Bolognani wrote:
> libvirt_iohelper is used internally by the virFileWrapperFd APIs;
> more specifically, in the QEMU driver we have the doCoreDump() and
> qemuDomainSaveMemory() helper functions as users, and those in turn
> end up being called by the implementation of several driver APIs.
>
> By calling virReportError() if libvirt_iohelper has failed, we
> overwrite whatever generic error message QEMU might have raised
> with the more useful one generated by the helper program.
>
> After this commit, the user will be able to see the error directly
> instead of having to dig in the journal or libvirtd log.
>
> https://bugzilla.redhat.com/show_bug.cgi?id=1578741
>
> Signed-off-by: Andrea Bolognani <abologna at redhat.com>
> ---
> src/util/virfile.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/util/virfile.c b/src/util/virfile.c
> index 8e045279f0..1b61cbd127 100644
> --- a/src/util/virfile.c
> +++ b/src/util/virfile.c
> @@ -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
>
> wfd->closed = true;
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