[libvirt] PATCH: 1/5: Improved error reporting

Cole Robinson crobinso at redhat.com
Wed Aug 13 14:21:59 UTC 2008


Daniel P. Berrange wrote:
> There are several system calls in the virExec function for which we don't
> or can't report errors. This patch does a couple of things to improve the
> situation. It moves the code for setting non-block/close-exec to before the
> fork() so we can report errors for it. It removes the 'dom' and 'net' params
> from the ReportError function since we deprecated those long ago and all
> callers simply pass in NULL. It resets the 'virErrorHandler' callback to
> NULL in the child, so that errors raised will get reported to stderr 
> instead of invoking a callback which is likely no longer valid in the child
> process. It reports failures to exec the binary and dup  file descriptors.
> All errors in the child will end up on stderr, so they will at least be
> visible on the parent's console, or a logfile if one was setup for the 
> child. Previously there would just be silent failure.
> 
> Daniel
> 

Related question: is there any practical way to return error output
from a virRun command in a libvirt error message?

In testing some of the storage code I hit a few bugs where we improperly
called out to another app, and the raised libvirt error had no output.
I would have to manually run libvirtd and watch what output the commands
dumped.

I guess the other option would be to set up log files for the different
storage operations similar to how qemu domain logfiles work, or maybe
just a general libvirtd output log.

- Cole




More information about the libvir-list mailing list