[Bug 1190387] Re: attach-device of usb falsely declares device in use by other domain
Serge Hallyn
1190387 at bugs.launchpad.net
Mon Jun 17 14:43:46 UTC 2013
** Also affects: libvirt (Ubuntu Precise)
Importance: Undecided
Status: New
** Changed in: libvirt (Ubuntu Precise)
Status: New => In Progress
** Changed in: libvirt (Ubuntu Precise)
Importance: Undecided => Medium
** Changed in: libvirt (Ubuntu Precise)
Assignee: (unassigned) => Serge Hallyn (serge-hallyn)
** Changed in: libvirt (Ubuntu)
Status: In Progress => Fix Released
** Description changed:
+ =================================
+ SRU Justification
+ 1. Impact: cannot attach host usb device to domain 2 after attaching it to domain 1 and shutting down domain 1.
+ 2. Development fix: Reattach usb device to host when domain shuts down
+ 3. Stable fix: same as development fix backport of upstream patch.
+ 4. test case:
+ To test inside a precise kvm guest,
+ 1. create a nested libvirt domain as per https://wiki.ubuntu.com/SergeHallyn_libvirtnest
+ 2. Create usb.xml file containing:
+ <hostdev mode='subsystem' type='usb' managed='yes'>
+ <source>
+ <vendor id='0x1d6b'/>
+ <product id='0x0001'/>
+ </source>
+ </hostdev>
+ 3. start cdboot, and attach the device to it
+ virsh start cdboot
+ virsh attach-device cdboot usb.xml
+ 4. stop cdboot, restart it, and try to attach the device again
+ virsh destroy cdboot
+ virsh start cdboot
+ virsh attach-device cdboot usb.xml
+ Without this fix, the second attach-device will fail.
+ 5. Regression potential:
+ This adds new code to the domain shutdown and libvirt start sequences. However they
+ only affect the list of usb devices, so any regressions should be caught at usb
+ device add/remove and libvirtd start/stop.
+
+ =================================
+
Running Ubuntu 12.04 x86_64
libvirt0 and libvirt-bin 0.9.8-2ubuntu17.8 causes a regression.
I am using QEMU/KVM virtual machines.
To reproduce:
- use virsh to create/start a vm
- use virsh to attach-device a host usb device
- use virsh to stop/destroy the vm
- use virsh to create vm again
- use virsh to attach the usb device again
-
+ use virsh to create/start a vm
+ use virsh to attach-device a host usb device
+ use virsh to stop/destroy the vm
+ use virsh to create vm again
+ use virsh to attach the usb device again
+
I get:
virsh attach-device vm1 /var/lib/libvirt/hotplug/usb-serial.xml
error: Failed to attach device from /var/lib/libvirt/hotplug/usb-serial.xml
error: Requested operation is not valid: USB device 002:005 is in use by domain ..
Note the ".." characters. That is literal. It is printing garbage characters.
The failure is not 100% of the time but is pretty high (50% ?)
usb-serial.xml:
- <hostdev mode='subsystem' type='usb' managed='yes'>
- <source>
- <vendor id='0x067b'/>
- <product id='0x2303'/>
- </source>
- </hostdev>
+ <hostdev mode='subsystem' type='usb' managed='yes'>
+ <source>
+ <vendor id='0x067b'/>
+ <product id='0x2303'/>
+ </source>
+ </hostdev>
-
- backing up libvirt0 and libvirt-bin to 0.9.8-2ubuntu17.7 makes this problem go away.
+ backing up libvirt0 and libvirt-bin to 0.9.8-2ubuntu17.7 makes this
+ problem go away.
While looking at this I found a Fedora bug that looks similar. The upstream patches they identified may be of interest.
https://bugzilla.redhat.com/show_bug.cgi?id=814866
--
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to libvirt in Ubuntu.
https://bugs.launchpad.net/bugs/1190387
Title:
attach-device of usb falsely declares device in use by other domain
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1190387/+subscriptions
More information about the Ubuntu-server-bugs
mailing list