[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