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);
-- 
1.7.10.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to