[virt-tools-list] Crash in libxml python callback running tests

Daniel P. Berrangé berrange at redhat.com
Mon Feb 26 12:55:59 UTC 2018


On Fri, Feb 23, 2018 at 02:15:53PM -0500, Cole Robinson wrote:
> On 02/23/2018 08:48 AM, Daniel P. Berrangé wrote:
> > I built libvirt using --prefix=/usr/local, and then did *not* run
> > 'make install'.
> > 
> > I then tried to run virt-manager tests
> > 
> >   ../libvirt/run python3 setup.py test
> > 
> > It crashed & burned. Initially the problem is that the
> > virConnectGetCPUModelNames API call on the test driver fails
> > because the cpu_map.xml file isn't installed yet. A libxml
> > error is raised because it fails to open this file to parse
> > it, here we end up calling back into python and crash and
> > burn

snip

> > This kind of smells like the same kind of problem that the python lxml
> > library has co-existing with otehr stuff that uses libxml, but since
> > AFAIK virt-manager isn't using lxml, I'm wondering what's causing this
> > crash ?
> 
> Thanks for the report, I reproduced. Indeed we aren't using lxml, but
> virtinst is setting a libxml2 error callback of its own which appears to
> be the culprit, disabling it avoids the crash but results in libxml2
> spewing warnings on the console. It's been there for a while so I'm
> surprised this hasn't come up before... I'll just drop it

The code you removed is identical to the code we use to no-op stub the
error reporting func for libvirt.  I compared the code in the libvirt
python library to the libxml python library.

The libxml library is notably missing the calls to preserve GIL state
when using threads. So I'll bet libxml library is corrupting python
interpretor state...

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 virt-tools-list mailing list