[libvirt] [PATCH] errors: Improve error reporting to log multiple errors instead of just the last one

Daniel P. Berrange berrange at redhat.com
Thu Jan 19 13:28:18 UTC 2012


On Thu, Jan 19, 2012 at 02:25:55PM +0100, Michal Novotny wrote:
> On 01/19/2012 02:20 PM, Daniel P. Berrange wrote:
> > On Thu, Jan 19, 2012 at 02:13:59PM +0100, Michal Novotny wrote:
> >> This patch introduces a new structure called virErrorsPtr which can get all
> >> the errors that occurred since the connection open. The error callback function
> >> is being used as many times as necessary. The new public function called
> >> virGetAllErrors() has been introduced to get all the errors that occurred.
> > This impl is effectively an unbounded memory leak, if you consider
> > that applications will keep the same virConnectPtr open more or
> > less forever.
> >
> > In addition any libvirt API that raises multiple errors should be
> > considered broken, so I don't think we should have any such API
> > for querying multiple errors.
> >
> > What is the situation that motivated this new API ?
> 
> This is simple. When you have situation with e.g. disk or domain
> creation. It fails but you don't know why. Sometimes the disk creation
> may fail on insufficient permissions and sometimes there may be not
> enough space etc... The same for domain creation.

But for any single API call into libvirt, there is only one
error that is relevant upon failure.  If you are making a
sequence of multiple API calls, you should check each one
for an error, before trying the next call. Not doing so is
simply an application bug

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list