[libvirt] [PATCH] (failed) virConnectOpenAuth: Add VIR_CONNECT_NO_DEFAULT_ERROR_HANDLER flag.

Daniel P. Berrange berrange at redhat.com
Mon Oct 15 15:07:35 UTC 2012


On Mon, Oct 15, 2012 at 08:43:44AM +0100, Richard W.M. Jones wrote:
> 
> On Sun, Oct 14, 2012 at 07:57:02PM -0400, Cole Robinson wrote:
> > On 10/14/2012 01:52 PM, Richard W.M. Jones wrote:
> > > 
> > > Well, it was a good idea, but the patch doesn't work.  Apparently
> > > along their open paths, drivers don't set errors in the newly created
> > > handle, but in the global handler instead (hence the errors still get
> > > printed to stderr).
> > > 
> > 
> > Can you give an example of the error you are seeing?
> 
> I was one of the libssh errors, I don't have the exact text.
> 
> > I don't think I've ever
> > experienced that issue with virt-install/virt-manager. You can use
> > virSetErrorFunc before getting a virConnect handle.
> 
> You can do this in a program, but not in a library (like libguestfs)
> because it changes the global handler, which the program using the
> library might not be happy about.
> 
> Doing it on a thread-local basis might work, but AFAICT from the
> source, only the error messages (not the handler) are thread-local.

The error function callbacks in libvirt are rather horrible things
that I wish we never had. I agree that libraries should not be
explicitly setting it to a value of their owning choosing since
that would override a setting an app might have made.

I would think we could at least allow an env variable to turn
off use of the default though. eg we could allow anyone to do

  export LIBVIRT_DEFAULT_ERROR_PRINT=0

and this would stop all use of virDefaultErrorFunc globally. THen
libguestfs could set this env var, but apps would still be able to
set a custom error function if they desired.


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