glib crash via eventtest.c

Daniel P. Berrangé berrange at redhat.com
Mon Feb 10 18:20:46 UTC 2020


On Mon, Feb 10, 2020 at 01:13:55PM -0500, Cole Robinson wrote:
> I attempted to review some patches on Friday and started hitting
> occasional crashes via eventtest.c. Long story short it's a glib bug:
> 
> https://gitlab.gnome.org/GNOME/glib/merge_requests/1358
> 
> It's a ref counting issue caused when g_source_remove
> (virEventRemoveHandle) is called from one thread, while the main loop is
> in a particular state in a different thread.
> 
> The way vireventglib is implemented means every user initiated
> g_source_remove is likely called from a different thread so we risk
> hitting this. Not sure how likely it is in realworld usage,
> vireventtest.c is pretty pathologic in this area. We could change
> vireventglib.c to do the final source_unref from the idle callback which
> would avoid the problem

I think libvirtd itself is fairly pathological wrt event loop too, so
we ought to try to workaround it IMHO.

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 libvir-list mailing list