[libvirt] Entering freeze for libvirt-4.6.0

Andrea Bolognani abologna at redhat.com
Mon Jul 30 15:20:01 UTC 2018


On Sat, 2018-07-28 at 21:56 +0800, Daniel Veillard wrote:
>   As suggested yesterday, I have just tagged the release candidate 1 in git,
> and pushed signed tarbal and rpms to the usual place:
> 
>    ftp://libvirt.org/libvirt/
> 
>   seems to work fine with my limited testing, and https://ci.centos.org/view/libvirt/
> is all green (except for virt-viewer-master-rpm ?)

This was caused by virt-viewer recently bumping their minimum
spice-gtk version to 0.35, which is not available on CentOS or
Fedora older than 28. It's since been addressed, and all dots
are back to green now :)

> so things looks pretty good for
> me but please try it out on different systems and OSes.
> 
>   If everything goes well I will push rc2 on Tuesday targetting Thursday for the
> final release (or Friday if I get stuck in travels).
> 
>   thanks in advance for trying it out !

Unfortunately I've spotted an issue during my testing of rc1 today:
with the libvirt_guest NSS module enabled, Evolution would crash a
few seconds after being started. Here's the stack trace:

  #0  0x00007fffe7b69ba5 in json_object_iter_next () at /lib64/libjson-glib-1.0.so.0
  #1  0x00007fffad8e757b in virJSONValueFromJansson () at /lib64/libnss_libvirt_guest.so.2
  #2  0x00007fffad8e75d8 in virJSONValueFromJansson () at /lib64/libnss_libvirt_guest.so.2
  #3  0x00007fffad8e8994 in virJSONValueFromString () at /lib64/libnss_libvirt_guest.so.2
  #4  0x00007fffad8ecb5a in virMacMapNew () at /lib64/libnss_libvirt_guest.so.2
  #5  0x00007fffad8cc140 in findLease () at /lib64/libnss_libvirt_guest.so.2
  #6  0x00007fffad8ccb1c in _nss_libvirt_guest_gethostbyname4_r () at /lib64/libnss_libvirt_guest.so.2
  #7  0x00007fffeb2599d2 in gaih_inet.constprop () at /lib64/libc.so.6
  #8  0x00007fffeb25aab4 in getaddrinfo () at /lib64/libc.so.6
  #9  0x00007ffff1d41a04 in do_lookup_by_name () at /lib64/libgio-2.0.so.0
  #10 0x00007ffff1d3e937 in g_task_thread_pool_thread () at /lib64/libgio-2.0.so.0
  #11 0x00007ffff5c39933 in g_thread_pool_thread_proxy () at /lib64/libglib-2.0.so.0
  #12 0x00007ffff5c38f2a in g_thread_proxy () at /lib64/libglib-2.0.so.0
  #13 0x00007ffff6314594 in start_thread () at /lib64/libpthread.so.0
  #14 0x00007fffeb2700df in clone () at /lib64/libc.so.6

I've talked about it with a few colleagues and we believe the issue
to be caused by jansson and json-glib both exporting a symbol called
json_object_iter_next: Evolution itself (indirectly?) links against
the latter library, so when the libvirt_guest NSS module is loaded
and attempts to process JSON using the former, it picks up the wrong
implementation, leading to a crash. gnome-boxes also crashes with
the same stack trace.

It seems like a similar issue could affect any application linking
both to libvirt and json-glib, regardless of whether or not the NSS
plugin has been enabled, which is of course pretty bad.

Unfortunately, I don't have any bright ideas on how to solve this,
so anyone who might: please step forward! We're just a few days
away from the next release, and if we can't figure out a way around
this soon I'm afraid the only reasonable course of action would be
to (temporarily) revert the switch from yajl to jansson.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list