[libvirt-users] VM dies with error regarding "virConnectNumOfInterfaces"

Hi! I ran into a problem using a USB device and was wondering if you could help me. I'm running a Win XP SP3 in a VM with libvirt on a Xubuntu 11.10. I configured it to talk to several USB devices. With one particular device (a Phonak Compilot[1], admittedly a probably rather unusual device), the VM dies with the following error in the libvirtd.log: 2012-07-20 21:04:19.591+0000: 1282: error : virConnectNumOfInterfaces:9803 : this function is not supported by the connection driver: virConnectNumOfInterfaces 2012-07-20 21:05:05.762+0000: 1276: error : qemuMonitorIO:603 : internal error End of file from monitor This happens no matter if is it the only configured USB device or if there is another USB device present in the config or not. I configured it doing the following steps: - I looked up the vendor / product ID using lsub Bus 001 Device 003: ID 180f:1002 (Interestingly, it does not show a name of the device here.) - I added it to the VM's xml configuration using virsh / edit $vmname <domain> ... <devices> ... <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x180f'/> <product id='0x1002'/> </source> </hostdev> ... </devices> </domain> - I run the VM using the virt-manager UI. Any ideas what the problem could be? Do I need to run/configure differently than how I did it? To me it sounds as if there is some implementation missing? Is there a workaround for it? I hope you can give me some clues. Thank you! Helga [1] http://www.phonak.com/com/b2c/en/products/accessories/compilot-tvlink-s/over...

On 07/20/2012 05:12 PM, Helga Velroyen wrote:
Hi!
I ran into a problem using a USB device and was wondering if you could help me.
I'm running a Win XP SP3 in a VM with libvirt on a Xubuntu 11.10. I configured it to talk to several USB devices.
With one particular device (a Phonak Compilot[1], admittedly a probably rather unusual device), the VM dies with the following error in the libvirtd.log:
2012-07-20 21:04:19.591+0000: 1282: error : virConnectNumOfInterfaces:9803 : this function is not supported by the connection driver: virConnectNumOfInterfaces
This message is guaranteed unrelated to your guest dying. It means that some management program (for example virt-manager) is trying out the "virInterface" part of libvirt's API, and discovering that your platform does not support that part of the API. the virInterface functions deal with configuring and reporting the status of the host's network devices (physical ethernets, bridges, bonds), are only supported on platforms that have the "netcf" library, and are optional. Ubuntu is only just now getting netcf support into their distro, do Xubuntu 11.10 will certainly not have it. TL;DR ignore the error about virConnectNumOfInterfaces.
2012-07-20 21:05:05.762+0000: 1276: error : qemuMonitorIO:603 : internal error End of file from monitor
This just means that the qemu process terminated abruptly. If you look in /var/log/libvirt/qemu/${guestname}.log, you may find a more specific error message issued by qemu itself. In the meantime, it would be helpful when reporting problems to tell us the version of libvirt and qemu that are installed.
This happens no matter if is it the only configured USB device or if there is another USB device present in the config or not.
I configured it doing the following steps:
- I looked up the vendor / product ID using lsub
Bus 001 Device 003: ID 180f:1002
(Interestingly, it does not show a name of the device here.)
- I added it to the VM's xml configuration using virsh / edit $vmname
<domain> ... <devices> ... <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x180f'/> <product id='0x1002'/> </source> </hostdev> ... </devices> </domain>
- I run the VM using the virt-manager UI.
Any ideas what the problem could be? Do I need to run/configure differently than how I did it?
The XML looks fine to me (the "managed='no'" part would only be relevant for PCI devices, not USB, but it would be ignored in this case, so that's not a problem). To help figure out what may be the problem, do this: 1) try starting the guest from the shell with "virsh start ${guestname}", and send any error message that produces. Also let us know the versions of libvirt ("virsh -v" will give you that) and qemu (or kvm - different platforms have different names for the packages) - various older versions of libvirt have various bugs, and knowing the version helps us to narrow down possibilities. 2) After virsh start fails, look at the end of /var/log/libvirt/qemu/${guestname}.log - send everything starting from the last qemu (or maybe it's kvm in your distro) commandline to the end of the file. 3) Just to verify that the problem really is in the USB device definition, use virsh edit to remove it, then retry the start.

Hi! thanks for your mail! See my answers inline.
I ran into a problem using a USB device and was wondering if
you could help me.
I'm running a Win XP SP3 in a VM with libvirt on a Xubuntu 11.10. I configured it to talk to several USB devices.
With one particular device (a Phonak Compilot[1], admittedly a probably rather unusual device), the VM dies with the following error in the libvirtd.log:
2012-07-20 21:04:19.591+0000: 1282: error : virConnectNumOfInterfaces:9803 : this function is not supported by the connection driver: virConnectNumOfInterfaces
This message is guaranteed unrelated to your guest dying. It means that some management program (for example virt-manager) is trying out the "virInterface" part of libvirt's API, and discovering that your platform does not support that part of the API. the virInterface functions deal with configuring and reporting the status of the host's network devices (physical ethernets, bridges, bonds), are only supported on platforms that have the "netcf" library, and are optional. Ubuntu is only just now getting netcf support into their distro, do Xubuntu 11.10 will certainly not have it.
TL;DR ignore the error about virConnectNumOfInterfaces.
Okay, thanks for the explanation! I appreciate it.
2012-07-20 21:05:05.762+0000: 1276: error : qemuMonitorIO:603 : internal error End of file from monitor
This just means that the qemu process terminated abruptly. If you look in /var/log/libvirt/qemu/${guestname}.log, you may find a more specific error message issued by qemu itself.
Okay, I did that and here is the full log of my try to start it up: 2012-07-23 09:30:37.761+0000: starting up LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -name toddler -uuid 1e9ada35-5681-5060-476e-7a9e615fcb5c -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/toddler.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -drive file=/media/frog/vms/toddler_storage.img,if=none,id=drive-ide0-0-0,format=qcow2 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-0-1,readonly=on,format=raw -device ide-drive,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=19,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:49:f6:46,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:0 -vga std -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device usb-host,hostbus=1,hostaddr=3,id=hostdev0 -device usb-host,hostbus=1,hostaddr=4,id=hostdev1 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 char device redirected to /dev/pts/4 kvm: usb-linux.c:1211: usb_linux_update_endp_table: Assertion `epd->type == 255' failed. 2012-07-23 09:31:58.723+0000: shutting down Any idea what this assertion means? Googling did not really help me here. In the meantime, it would be helpful when reporting problems to tell us
the version of libvirt and qemu that are installed.
virsh -v gives me version 0.9.8, version of my qemu-kvm package is "1.0+noroms-0ubuntu13" I installed those simply by using aptitude, I did not do anything special here.
This happens no matter if is it the only configured USB device or if there is another USB device present in the config or not.
I configured it doing the following steps:
- I looked up the vendor / product ID using lsub
Bus 001 Device 003: ID 180f:1002
(Interestingly, it does not show a name of the device here.)
- I added it to the VM's xml configuration using virsh / edit $vmname
<domain> ... <devices> ... <hostdev mode='subsystem' type='usb' managed='no'> <source> <vendor id='0x180f'/> <product id='0x1002'/> </source> </hostdev> ... </devices> </domain>
- I run the VM using the virt-manager UI.
Any ideas what the problem could be? Do I need to run/configure differently than how I did it?
The XML looks fine to me (the "managed='no'" part would only be relevant for PCI devices, not USB, but it would be ignored in this case, so that's not a problem).
To help figure out what may be the problem, do this:
1) try starting the guest from the shell with "virsh start ${guestname}", and send any error message that produces. Also let us know the versions of libvirt ("virsh -v" will give you that) and qemu (or kvm - different platforms have different names for the packages) - various older versions of libvirt have various bugs, and knowing the version helps us to narrow down possibilities.
Versions as mentioned above: libvirt 0.9.8 and kvm-qemu 1.0+noroms-0ubuntu13 I tried to run the guest from the shell, but it does not show much:
virsh start $guestname WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-hiKzI0/pkcs11: No such file or directory Domain $guestname started
(I guess the keyring warning does not matter since it also appears when I run the vm without the troublesome USB device and then the guest does not die.) Other than that, nothing happens here. At the same time I observed the log of the guest. The result is the same as mentioned in this email further up.
2) After virsh start fails, look at the end of /var/log/libvirt/qemu/${guestname}.log - send everything starting from the last qemu (or maybe it's kvm in your distro) commandline to the end of the file.
See above. Same as before. 3) Just to verify that the problem really is in the USB device
definition, use virsh edit to remove it, then retry the start.
Did so, the guest starts without any problems. I checked the log which looks the same with the exception that the line with the failed assertion is not there. Thanks for your help so far, I hope you can give me a hint what the problem is! Cheers, Helga

On 07/23/2012 05:59 AM, Helga Velroyen wrote:
Hi!
thanks for your mail! See my answers inline.
> I ran into a problem using a USB device and was wondering if > you could help me. > > I'm running a Win XP SP3 in a VM with libvirt on a Xubuntu 11.10. > I configured it to talk to several USB devices. > > With one particular device (a Phonak Compilot[1], admittedly a probably > rather unusual device), the VM dies with the following error in the > libvirtd.log: > > 2012-07-20 21:04:19.591+0000: 1282: error : > virConnectNumOfInterfaces:9803 : this function is not supported by the > connection driver: virConnectNumOfInterfaces
This message is guaranteed unrelated to your guest dying. It means that some management program (for example virt-manager) is trying out the "virInterface" part of libvirt's API, and discovering that your platform does not support that part of the API. the virInterface functions deal with configuring and reporting the status of the host's network devices (physical ethernets, bridges, bonds), are only supported on platforms that have the "netcf" library, and are optional. Ubuntu is only just now getting netcf support into their distro, do Xubuntu 11.10 will certainly not have it.
TL;DR ignore the error about virConnectNumOfInterfaces.
Okay, thanks for the explanation! I appreciate it.
> 2012-07-20 21:05:05.762+0000: 1276: error : qemuMonitorIO:603 : internal > error End of file from monitor
This just means that the qemu process terminated abruptly. If you look in /var/log/libvirt/qemu/${guestname}.log, you may find a more specific error message issued by qemu itself.
Okay, I did that and here is the full log of my try to start it up:
2012-07-23 09:30:37.761+0000: starting up LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -name toddler -uuid 1e9ada35-5681-5060-476e-7a9e615fcb5c -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/toddler.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -drive file=/media/frog/vms/toddler_storage.img,if=none,id=drive-ide0-0-0,format=qcow2 -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-0-1,readonly=on,format=raw -device ide-drive,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=19,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:49:f6:46,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:0 <http://127.0.0.1:0> -vga std -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device usb-host,hostbus=1,hostaddr=3,id=hostdev0 -device usb-host,hostbus=1,hostaddr=4,id=hostdev1 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 char device redirected to /dev/pts/4 kvm: usb-linux.c:1211: usb_linux_update_endp_table: Assertion `epd->type == 255' failed.
This is some internal problem in qemu-1.0. You'll need to ask about it on a qemu mailing list or irc channel - the commandline and error above, along with telling them your exact version of qemu should be enough to get them going. (I looked it up in the source and one thing I can tell you is that the *entire file* containing this assertion ("assert edp->type == INVALID_EP_TYPE") was removed between qemu-1.0 and qemu-1.1. It may be that the simplest way to eliminate the problem is to get a build of qemu-1.1)

Hi!
Okay, I did that and here is the full log of my try to start it up:
2012-07-23 09:30:37.761+0000: starting up LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-1.0 -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -name toddler -uuid 1e9ada35-5681-5060-476e-7a9e615fcb5c -nodefconfig -nodefaults -chardev
socket,id=charmonitor,path=/var/lib/libvirt/qemu/toddler.monitor,server,nowait
-mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime -no-shutdown -drive
file=/media/frog/vms/toddler_storage.img,if=none,id=drive-ide0-0-0,format=qcow2
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -drive if=none,media=cdrom,id=drive-ide0-0-1,readonly=on,format=raw -device ide-drive,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=19,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:49:f6:46,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:0 <http://127.0.0.1:0> -vga std -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device usb-host,hostbus=1,hostaddr=3,id=hostdev0 -device usb-host,hostbus=1,hostaddr=4,id=hostdev1 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5 char device redirected to /dev/pts/4 kvm: usb-linux.c:1211: usb_linux_update_endp_table: Assertion `epd->type == 255' failed.
This is some internal problem in qemu-1.0. You'll need to ask about it on a qemu mailing list or irc channel - the commandline and error above, along with telling them your exact version of qemu should be enough to get them going. (I looked it up in the source and one thing I can tell you is that the *entire file* containing this assertion ("assert edp->type == INVALID_EP_TYPE") was removed between qemu-1.0 and qemu-1.1. It may be that the simplest way to eliminate the problem is to get a build of qemu-1.1)
Okay, thanks for checking that for me! I will follow up with the qemu project. Cheers and thanks! Helga
participants (2)
-
Helga Velroyen
-
Laine Stump