[libvirt] Assert with libvirt + xen hvm

Michal Privoznik mprivozn at redhat.com
Mon Jan 26 09:52:57 UTC 2015


[CC'ing vbox-dev list]

On 23.01.2015 21:42, CloudPatch Staff wrote:
> 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.

So what are you saying is that vbox interferes with libxenlight? While I
see why vbox library wants SIGCHLD handler, maybe they became fault
tolerant meanwhile. Or?

> 
> 
> On Fri, Jan 23, 2015 at 5:14 AM, Michal Privoznik <mprivozn at redhat.com
> <mailto:mprivozn at redhat.com>> wrote:
> 
>     On 22.01.2015 17:49, CloudPatch Staff wrote:
>     > We're hitting an assert whenever we try to create an HVM instance under
>     > Xen via libvirtd.
>     >
>     > System is running on Gentoo, package information as follows:
>     >
>     > app-emulation/xen-4.5.0 USE="api debug flask hvm pam pygrub python qemu
>     > screen"
>     > app-emulation/xen-tools-4.5.0 USE="api debug flask hvm pam pygrub python
>     > qemu screen"
>     > app-emulation/libvirt-1.2.11-r2:0/1.2.11 USE="caps libvirtd lvm macvtap
>     > nls qemu udev vepa virtualbox xen"
>     >
>     > The following commands are run in parallel:
>     >
>     > vmmachine ~ # libvirtd --listen
>     > 2015-01-22 16:33:13.596+0000: 2620: info : libvirt version: 1.2.11
>     > 2015-01-22 16:33:13.596+0000: 2620: error : udevGetDMIData:1607 : Failed
>     > to get udev device for syspath '/sys/devices/virtual/dmi/id' or
>     > '/sys/class/dmi/id'
>     > libvirtd: libxl_fork.c:350: sigchld_installhandler_core: Assertion
>     > `((void)"application must negotiate with libxl about SIGCHLD",
>     > !(sigchld_saved_action.sa_flags & 4) &&
>     > (sigchld_saved_action.__sigaction_handler.sa_handler ==
>     > ((__sighandler_t) 0) ||
>     > sigchld_saved_action.__sigaction_handler.sa_handler == ((__sighandler_t)
>     > 1)))' failed.
>     > Aborted
> 
>     Interesting. Can you attach a debugger so we can see stacktrace?
> 
>     Michal
> 
> 

Michal




More information about the libvir-list mailing list