Package: libvirt-daemon Version: 2.4.0-1+b1 Severity: important Dear Maintainer,
I have a custom udev rule used to implement usb-hotplug support for the a guest, whose name is dgw. This is the contents of /etc/udev/rules.d/91-hotplug.rules: --- ACTION=="add", \ SUBSYSTEM=="usb", \ ENV{ID_VENDOR_ID}=="18ec", \ ENV{ID_MODEL_ID}=="3399", \ RUN+="/usr/bin/virsh attach-device dgw /home/david/udev/david-webcam-dgw.xml" ACTION=="remove", \ SUBSYSTEM=="usb", \ ENV{ID_VENDOR_ID}=="18ec", \ ENV{ID_MODEL_ID}=="3399", \ RUN+="/usr/bin/virsh detach-device dgw /home/david/udev/david-webcam-dgw.xml" --- This is the content of david-webcam-dgw.xml: --- <hostdev mode='subsystem' type='usb'> <source> <vendor id='0x18ec'/> <product id='0x3399'/> </source> </hostdev> --- The rule is correctly activated when the device is plugged in, but with udev logging set to debug level, the syslog trace is as follows: --- Nov 26 14:48:27 dgh systemd-udevd[8692]: Process 'mtp-probe /sys/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.1 1 67' succeeded. Nov 26 14:48:27 dgh systemd-udevd[8692]: RUN '/usr/bin/virsh attach-device dgw /home/david/udev/david-webcam-dgw.xml' /etc/udev/rules.d/91-dg-webcam-dgw-hotplug.rules:10 Nov 26 14:48:27 dgh systemd-udevd[8692]: handling device node '/dev/bus/usb/001/067', devnum=c189:66, mode=0664, uid=0, gid=100 Nov 26 14:48:27 dgh systemd-udevd[8692]: set permissions /dev/bus/usb/001/067, 020664, uid=0, gid=100 Nov 26 14:48:27 dgh systemd-udevd[8692]: creating symlink '/dev/char/189:66' to '../bus/usb/001/067' Nov 26 14:48:27 dgh systemd-udevd[8692]: created db file '/run/udev/data/c189:66' for '/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.1' Nov 26 14:48:27 dgh systemd-udevd[8694]: starting '/usr/bin/virsh attach-device dgw /home/david/udev/david-webcam-dgw.xml' Nov 26 14:48:27 dgh libvirtd[3841]: internal error: unable to execute QEMU command 'device_add': failed to find host usb device 1:67 Nov 26 14:48:27 dgh systemd-udevd[8692]: '/usr/bin/virsh attach- device dgw /home/david/udev/david-webcam-dgw.xml'(err) 'error: ' Nov 26 14:48:27 dgh systemd-udevd[8692]: '/usr/bin/virsh attach-device dgw /home/david/udev/david- webcam-dgw.xml'(err) 'Failed to attach device from /home/david/udev/david-webcam-dgw.xml' Nov 26 14:48:27 dgh systemd-udevd[8692]: '/usr/bin/virsh attach-device dgw /home/david/udev/david- webcam-dgw.xml'(err) 'error: internal error: unable to execute QEMU command 'device_add': failed to find host usb device 1:67' Nov 26 14:48:27 dgh systemd-udevd[8692]: '/usr/bin/virsh attach-device dgw /home/david/udev/david- webcam-dgw.xml'(out) '' Nov 26 14:48:27 dgh systemd-udevd[8692]: Process '/usr/bin/virsh attach-device dgw /home/david/udev/david-webcam-dgw.xml' failed with exit code 1. --- As you can see, the error is that QEMU device_add fails, complaining it cannot find the usb device that was indeed created. Additional detail: The above log was generated after the addition of another rules file Thinking it might be a permission problem,I added another rules file 50-myusb.rules as follows: --- SUBSYSTEMS=="usb", GROUP="users", MODE="0666" --- but with or without this rules file the error reported is the same. Intrestingly, the commands virsh attach-devcice dgw /home/david/udev/david-webcam-dgw.xml and virsh detach-devcice dgw /home/david/udev/david-webcam-dgw.xml both work and successfully attach the device to the guest if the device is connected - but the udev script fails. USB hotplug on this host was working normally as recently as a couple of months ago; possibly a stretch update caused a regression. As of now, I am unable to make USB hotplug to guests work. Thanks so much for looking into this. -- System Information: Debian Release: stretch/sid APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.8.0-1-amd64 (SMP w/8 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages libvirt-daemon depends on: ii libapparmor1 2.10.95-6 ii libaudit1 1:2.6.7-1 ii libavahi-client3 0.6.32-1 ii libavahi-common3 0.6.32-1 ii libblkid1 2.29-1 ii libc6 2.24-5 ii libcap-ng0 0.7.7-3 ii libdbus-1-3 1.10.12-1 ii libdevmapper1.02.1 2:1.02.136-1 ii libfuse2 2.9.7-1 ii libgnutls30 3.5.6-4 ii libnetcf1 1:0.2.8-1+b1 ii libnl-3-200 3.2.27-1 ii libnl-route-3-200 3.2.27-1 ii libnuma1 2.0.11-2 ii libparted2 3.2-16+b1 ii libpcap0.8 1.8.1-3 ii libpciaccess0 0.13.4-1 ii librados2 0.80.11-1.1 ii librbd1 0.80.11-1.1 ii libsasl2-2 2.1.27~72-g88d82a3+dfsg-1 ii libselinux1 2.6-3 ii libssh2-1 1.7.0-1 ii libudev1 232-3 ii libvirt0 2.4.0-1+b1 ii libxen-4.8 4.8.0~rc5-1 ii libxenstore3.0 4.8.0~rc5-1 ii libxml2 2.9.4+dfsg1-2.1 ii libyajl2 2.1.0-2 Versions of packages libvirt-daemon recommends: ii libxml2-utils 2.9.4+dfsg1-2.1 ii netcat-openbsd 1.105-7 ii qemu-kvm 1:2.7+dfsg-3+b1 Versions of packages libvirt-daemon suggests: ii libvirt-daemon-system 2.4.0-1+b1 -- no debconf information