After some debugging we found what was causing of the assert. In our configuration we have
two kernels to boot, one is a pv-linux for Xen dom0 and another just a normal linux kernel.
We have libvirt built with both Xen and vbox support. When running with Xen, the libxl
driver is used so it ends calling libxenlight who doesn't want any SIGCHLD handler set.
Normally this is the case but, since we have vbox support in libvirt the vbox driver loads
some of the vbox libs and one of them sets a SIGCHLD handler. When libxenlight checks
if there is any handler for SIGCHLD it finds that one and fails.
Here is the backtrace from when vbox is setting the handler:
(gdb) bt
#0 0x00007ffff71d8250 in sigaction () from /lib64/libpthread.so.0
#1 0x00007fffedbf3716 in ?? () from /usr/lib64/virtualbox/VBoxRT.so
#2 0x00007fffedbf3960 in ?? () from /usr/lib64/virtualbox/VBoxRT.so
#3 0x00007fffedeea485 in VBoxGetCAPIFunctions () from /usr/lib64/virtualbox/VBoxXPCOMC.so
#4 0x00007fffee37d7ca in ?? () from /usr/lib64/libvirt/connection-driver/libvirt_driver_vbox_network.so
#5 0x00007fffee37d995 in VBoxCGlueInit () from
/usr/lib64/libvirt/connection-driver/libvirt_driver_vbox_network.so
#6 0x00007fffee321e7b in vboxNetworkRegister ()
from /usr/lib64/libvirt/connection-driver/libvirt_driver_vbox_network.so
#7 0x00007ffff755bbe8 in virDriverLoadModule () from /usr/lib64/libvirt.so.0
#8 0x0000555555568714 in ?? ()
#9 0x000055555556ab86 in ?? ()
#10 0x00007ffff6e54aa5 in __libc_start_main () from /lib64/libc.so.6
#11 0x0000555555567f59 in ?? ()
After building libvirt without vbox support the assert disappeared.