[libvirt] infinite loop while restarting libvirt after LXC creation

Michael R. Hines mrhines at linux.vnet.ibm.com
Sat Aug 3 01:56:15 UTC 2013


On 08/02/2013 09:06 PM, Michael R. Hines wrote:
> Hi,
>
> I'm using OpenStack grizzly on Ubuntu 12.04 to create LXC containers.
>
> After successful container creation and a subsequent reboot of the 
> hypervisor,
> libvirt gets stuck in an infinite loop, spinning at 100%
>
> Here's the backtrace:
>
> (gdb) thread 12
> [Switching to thread 12 (Thread 0x7fffee46f700 (LWP 7052))]
> #0  0x00007ffff7617de1 in virDomainDefMaybeAddController 
> (def=0x7fffe8033b30, type=2, idx=73405, model=-1) at 
> conf/domain_conf.c:10570
> warning: Source file is more recent than executable.
> 10570       for (i = 0; i < def->ncontrollers; i++) {
> (gdb) bt
> #0  0x00007ffff7617de1 in virDomainDefMaybeAddController 
> (def=0x7fffe8033b30, type=2, idx=73405, model=-1) at 
> conf/domain_conf.c:10570
> #1  0x00007ffff76180ab in virDomainDefAddDiskControllersForType 
> (def=0x7fffe8033b30, controllerType=2, diskBus=<optimized out>) at 
> conf/domain_conf.c:13653
> #2  0x00007ffff761a11d in virDomainDefAddImplicitControllers 
> (def=0x7fffe8033b30) at conf/domain_conf.c:13747
> #3  0x00007ffff7623a29 in virDomainDefParseXML (xml=0x7fffe8034500, 
> root=0x7fffe802fc60, ctxt=<optimized out>, caps=0x7fffe8030f20, 
> xmlopt=0x7fffe8031a60, expectedVirtTypes=<optimized out>, flags=2) at 
> conf/domain_conf.c:12375
> #4  0x00007ffff76299a0 in virDomainDefParseNode (xml=0x7fffe8034500, 
> root=0x7fffe802fc60, caps=0x7fffe8030f20, xmlopt=0x7fffe8031a60, 
> expectedVirtTypes=16, flags=2) at conf/domain_conf.c:12562
> #5  0x00007ffff7629b19 in virDomainDefParse (xmlStr=<optimized out>, 
> filename=<optimized out>, caps=0x7fffe8030f20, xmlopt=0x7fffe8031a60, 
> expectedVirtTypes=16, flags=2) at conf/domain_conf.c:12504
> #6  0x00007ffff762a489 in virDomainObjListLoadConfig (opaque=0x0, 
> notify=0, expectedVirtTypes=16, name=0x7fffe80fb543 
> "instance-00000017", autostartDir=0x7fffe8033280 
> "/etc/libvirt/lxc/autostart",
>     configDir=0x7fffe8033b10 "/etc/libvirt/lxc", 
> xmlopt=0x7fffe8031a60, caps=0x7fffe8030f20, doms=0x7fffe80fac40) at 
> conf/domain_conf.c:17027
> #7  virDomainObjListLoadAllConfigs (doms=0x7fffe80fac40, 
> configDir=<optimized out>, autostartDir=0x7fffe8033280 
> "/etc/libvirt/lxc/autostart", liveStatus=<optimized out>, 
> caps=0x7fffe8030f20, xmlopt=0x7fffe8031a60, expectedVirtTypes=16,
>     notify=0, opaque=0x0) at conf/domain_conf.c:17155
> #8  0x00007fffef1def58 in lxcStateInitialize (privileged=<optimized 
> out>, callback=<optimized out>, opaque=<optimized out>) at 
> lxc/lxc_driver.c:1449
> #9  lxcStateInitialize (privileged=<optimized out>, 
> callback=<optimized out>, opaque=<optimized out>) at 
> lxc/lxc_driver.c:1361
> #10 0x00007ffff766df12 in virStateInitialize (privileged=true, 
> callback=0x555555568110 <daemonInhibitCallback>, 
> opaque=0x5555557cc8e0) at libvirt.c:832
> #11 0x00005555555681c0 in daemonRunStateInit (opaque=<optimized out>) 
> at libvirtd.c:902
> #12 0x00007ffff75f0ae6 in virThreadHelper (data=<optimized out>) at 
> util/virthreadpthread.c:161
> #13 0x00007ffff733ee9a in start_thread () from 
> /lib/x86_64-linux-gnu/libpthread.so.0
> #14 0x00007ffff706bccd in clone () from /lib/x86_64-linux-gnu/libc.so.6
> #15 0x0000000000000000 in ?? ()
> (gdb) next
>
>
>
>
> -- 
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>

FYI: The infinite loop was caused by a missing disk (iSCSI disk to be 
precise).

By removing the corresponding XML, libvirtd started up successfully.

Would be nice if it didn't get stuck in an infinite loop, though =)

- Michael




More information about the libvir-list mailing list