** Description changed:

- Libvirt-aa-helper seems to have a bug when adding usb passthrough
- devices statically.
+ [Impact]
+ 
+  * USB Host devices fail to add statically
+ 
+  * The reason is that libvirt has not yet initialized usb devices
+ 
+  * Fix by back-porting small upstream change
+ 
+ [Test Case]
+ 
+  * Create a VM Guest (e.g. via uvtool)
+  * Shut down the guest
+  * virsh edit <guestname>
+  * Add a usb hostdev from your System (check lsusb for IDs)
+  * See the original description below for XML examples
+  * Starting the guest will create a wrong rule
+      "/dev/bus/usb/000/000" rw,
+    And due to that fails to start.
+ 
+ [Regression Potential]
+ 
+  * The change is small and only makes certain values available to
+ libvirt
+ 
+  * The only thing I could think of regressing is if that 
+    virHostdevFindUSBDevice would crash on some systems, but then it would 
+    fail later on in the lifecycle even without the patch - so we should be 
+    safe IMHO.
+ 
+ [Other Info]
+  
+  * I waited to be accepted upstream to be more confident which is 
+    partially why this took so long but provides some extra confidence.
+ 
+ 
+ ---
+ 
+ 
+ Libvirt-aa-helper seems to have a bug when adding usb passthrough devices 
statically.
  
  On hotplug with:
  $ cat sandisk-usb.xml
  <hostdev mode='subsystem' type='usb' managed='yes'>
-     <source>
-         <!--
-           idVendor           0x0781 SanDisk Corp.
-           idProduct          0x5580 SDCZ80 Flash Drive
-         -->
-         <vendor id='0x0781'/>
-         <product id='0x5580'/>
-     </source>
+     <source>
+         <!--
+           idVendor           0x0781 SanDisk Corp.
+           idProduct          0x5580 SDCZ80 Flash Drive
+         -->
+         <vendor id='0x0781'/>
+         <product id='0x5580'/>
+     </source>
  </hostdev>
  
  $ virsh attach-device z-test1 sandisk-usb.xml
  
  It generates correctly:
  "/dev/bus/usb/003/003" rw,
  
  But if adding the same XML part to the guest xml itself it generates:
  "/dev/bus/usb/000/000" rw,
  
  And as a follow on issue the guest start fails with:
  libusb: error [_get_usbfs_fd] libusb couldn't open USB device 
/dev/bus/usb/003/003: Permission denied
  Due to:
  apparmor="DENIED" operation="open" 
profile="libvirt-adc578cb-905f-41fc-9be2-9fb81f6a6073" 
name="/dev/bus/usb/003/003" pid=22879 comm="qemu-system-x86" 
requested_mask="wr" denied_mask="wr" fsuid=123 ouid=123

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1686324

Title:
  usb hostdev passthrough generates the wrong apparmor rules

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1686324/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to