On Sun, Mar 10, 2013 at 8:56 PM, Osier Yang <jyang@xxxxxxxxxx> wrote: > On 2013年03月09日 23:08, Guido Günther wrote: >> >> otherwise we crash with >> >> #0 virUSBDeviceListFind (list=0x0, dev=dev@entry=0x8193d70) at >> util/virusb.c:526 >> #1 0xb1a4995b in virLXCPrepareHostdevUSBDevices >> (driver=driver@entry=0x815d9a0, name=0x815dbf8 "debian-700267", >> list=list@entry=0x81d8f08) at lxc/lxc_hostdev.c:88 >> #2 0xb1a49fce in virLXCPrepareHostUSBDevices (def=0x8193af8, >> driver=0x815d9a0) at lxc/lxc_hostdev.c:261 >> #3 virLXCPrepareHostDevices (driver=driver@entry=0x815d9a0, >> def=0x8193af8) at lxc/lxc_hostdev.c:328 >> #4 0xb1a4c5b1 in virLXCProcessStart (conn=0x817d3f8, >> driver=driver@entry=0x815d9a0, vm=vm@entry=0x8190908, >> autoDestroy=autoDestroy@entry=false, >> reason=reason@entry=VIR_DOMAIN_RUNNING_BOOTED) >> at lxc/lxc_process.c:1068 >> #5 0xb1a57e00 in lxcDomainStartWithFlags (dom=dom@entry=0x815e460, >> flags=flags@entry=0) at lxc/lxc_driver.c:1014 >> #6 0xb1a57fc3 in lxcDomainStart (dom=0x815e460) at >> lxc/lxc_driver.c:1046 >> #7 0xb79c8375 in virDomainCreate (domain=domain@entry=0x815e460) at >> libvirt.c:8450 >> #8 0x08078959 in remoteDispatchDomainCreate (args=0x81920a0, >> rerr=0xb65c21d0, client=0xb0d00490, server=<optimized out>, msg=<optimized >> out>) at remote_dispatch.h:1066 >> #9 remoteDispatchDomainCreateHelper (server=0x80c4928, >> client=0xb0d00490, msg=0xb0d005b0, rerr=0xb65c21d0, args=0x81920a0, >> ret=0x815d208) at remote_dispatch.h:1044 >> #10 0xb7a36901 in virNetServerProgramDispatchCall (msg=0xb0d005b0, >> client=0xb0d00490, server=0x80c4928, prog=0x80c6438) at >> rpc/virnetserverprogram.c:432 >> #11 virNetServerProgramDispatch (prog=0x80c6438, >> server=server@entry=0x80c4928, client=0xb0d00490, msg=0xb0d005b0) at >> rpc/virnetserverprogram.c:305 >> #12 0xb7a300a7 in virNetServerProcessMsg (msg=<optimized out>, >> prog=<optimized out>, client=<optimized out>, srv=0x80c4928) at >> rpc/virnetserver.c:162 >> #13 virNetServerHandleJob (jobOpaque=0xb0d00510, opaque=0x80c4928) at >> rpc/virnetserver.c:183 >> #14 0xb7924f98 in virThreadPoolWorker (opaque=opaque@entry=0x80a94b0) at >> util/virthreadpool.c:144 >> #15 0xb7924515 in virThreadHelper (data=0x80a9440) at >> util/virthreadpthread.c:161 >> #16 0xb7887c39 in start_thread (arg=0xb65c2b70) at pthread_create.c:304 >> #17 0xb77eb78e in clone () at >> ../sysdeps/unix/sysv/linux/i386/clone.S:130 >> >> when adding a domain with a usb device. This is Debian bug >> >> http://bugs.debian.org/700267 >> --- >> src/lxc/lxc_driver.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c >> index f136df2..338b8eb 100644 >> --- a/src/lxc/lxc_driver.c >> +++ b/src/lxc/lxc_driver.c >> @@ -1469,6 +1469,9 @@ static int lxcStartup(bool privileged, >> if (lxcSecurityInit(lxc_driver)< 0) >> goto cleanup; >> >> + if ((lxc_driver->activeUsbHostdevs = virUSBDeviceListNew()) == NULL) >> + goto cleanup; >> + >> if ((lxc_driver->caps = lxcCapsInit(lxc_driver)) == NULL) >> goto cleanup; >> >> @@ -1559,6 +1562,7 @@ static int lxcShutdown(void) >> >> virLXCProcessAutoDestroyShutdown(lxc_driver); >> >> + virObjectUnref(lxc_driver->activeUsbHostdevs); >> virObjectUnref(lxc_driver->caps); >> virObjectUnref(lxc_driver->securityManager); >> VIR_FREE(lxc_driver->configDir); > > > ACK. > Pushed to v1.0.3-maint Thanks. -- Doug Goldstein -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list