[libvirt-users] problem when using qemu 2.0.0 + libvirt 1.2.6

Hi I got a problem when using qemu 2.0.0 + libvirt 1.2.6 . It just can not define a kvm vm successfully , errors like this : # virsh define 5ab4f49c-c99f-4dbd-9d7d-17a946b4c5a7.xml error: Failed to define domain from 5ab4f49c-c99f-4dbd-9d7d-17a946b4c5a7.xml error: unknown OS type hvm After several tries, i found that Qemu2.0 /qemu-kvm1.2+ libvirt1.0.2 and lower version is ok Qemu2.0 /qemu-kvm1.2+ libvirt1.0.3 and higher version is failed I have checked system as bellows: 1 kvm,kvm_intel modules are loaded(centos 6.2 /kernel 2.6.32) 2 bios is ok for hvm 3 qemu is installed and emulator path in xml config file is correct 4 I also tried to install glusterfs-devel-3.2.7-1.el6.x86_64 and rebuild qemu , no use. 5 virsh capabilities can not get guest capabilities in the failure scenario so ,why Qemu2.0 /qemu-kvm1.2+ libvirt1.0.3 and above version could not work? thanks, weiwei

On 07/29/2014 08:39 PM, weiwei li wrote:
Hi I got a problem when using qemu 2.0.0 + libvirt 1.2.6 . It just can not define a kvm vm successfully , errors like this :
# virsh define 5ab4f49c-c99f-4dbd-9d7d-17a946b4c5a7.xml error: Failed to define domain from 5ab4f49c-c99f-4dbd-9d7d-17a946b4c5a7.xml error: unknown OS type hvm
Can you show the actual contents of that .xml file?
After several tries, i found that
Qemu2.0 /qemu-kvm1.2+ libvirt1.0.2 and lower version is ok Qemu2.0 /qemu-kvm1.2+ libvirt1.0.3 and higher version is failed
I wonder if you are seeing the result of tightening the parse; the old versions were silently ignoring an impossible request, and the new version is diagnosing the bug. It may be as simple as modifying whatever line requested "hvm" in your .xml file to instead request something valid. Then again, I have <os> <type arch='i686' machine='pc-i440fx-1.5'>hvm</type> in a guest that is booting just fine for me on Fedora 20 with qemu 2.0 and libvirt 1.2.7-rc1. In upstream libvirt.git, that error message is only possible from this code in domain_conf.c: if (!virCapabilitiesSupportsGuestOSType(caps, def->os.type)) { virReportError(VIR_ERR_OS_TYPE, "%s", def->os.type); but I'm not sure why that function would be failing, unless your qemu binary is not reporting features correctly. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

I tried on another machine with qemu 2.0.0 + libvirt 1.2.6 is ok, maybe it is related to some system environment ? But i have not found what's impacted of this yet. The xml file is as fallows: " <domain type="kvm"> <name>5ab4f49c-c99f-4dbd-9d7d-17a946b4c5a7</name> <uuid>5ab4f49c-c99f-4dbd-9d7d-17a946b4c5a7</uuid> <memory>15360000</memory> <vcpu cpuset="0,1,2,3,8,9,10,11" placement="static">4</vcpu> <os> <type>hvm</type> <boot dev="hd"/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset="localtime"/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/bin/qemu-system-x86_64</emulator> <disk device="disk" type="file"> <driver name="qemu" type="qcow2"/> <source file="/mnt/kvm/tlinux_sles12_com-v3-2.qcow2"/> <target bus="virtio" dev="vda"/> </disk> <interface type="bridge"> <source bridge="kvmbr11"/> <mac address="00:16:3E:0A:0A:FA"/> <model type="virtio"/> </interface> <serial type="pty"> <target port="0"/> </serial> <console type="pty"> <target port="0" type="serial"/> </console> <input bus="ps2" type="mouse"/> <graphics autoport="yes" listen="0.0.0.0" port="-1" type="vnc"/> </devices> </domain> " Another clue,there are some error messages in libvirtd.log "2014-07-29 02:10:32.230+0000: 13226: error : virCommandWait:2426 : internal error: Child process (LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin HOME=/root USER=tvcadmin LOGNAME=tvcadmin /usr/bin/qemu-system-x86_64 -help) unexpected exit status 125: libvirt: error : internal error: cannot apply process capabilities -1 2014-07-29 02:10:32.230+0000: 13226: warning : virQEMUCapsLogProbeFailure:3300 : Failed to probe capabilities for /usr/bin/qemu-system-x86_64: internal error: Child process (LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin HOME=/root USER=tvcadmin LOGNAME=tvcadmin /usr/bin/qemu-system-x86_64 -help) unexpected exit status 125: libvirt: error : internal error: cannot apply process capabilities -1 2014-07-29 02:10:32.232+0000: 13226: error : virCommandWait:2426 : internal error: Child process (LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin HOME=/root USER=tvcadmin LOGNAME=tvcadmin /usr/bin/qemu-system-xtensa -help) unexpected exit status 125: libvirt: error : internal error: cannot apply process capabilities -1 " 2014-07-30 21:07 GMT+08:00 Eric Blake <eblake@redhat.com>:
On 07/29/2014 08:39 PM, weiwei li wrote:
Hi I got a problem when using qemu 2.0.0 + libvirt 1.2.6 . It just can not define a kvm vm successfully , errors like this :
# virsh define 5ab4f49c-c99f-4dbd-9d7d-17a946b4c5a7.xml error: Failed to define domain from 5ab4f49c-c99f-4dbd-9d7d-17a946b4c5a7.xml error: unknown OS type hvm
Can you show the actual contents of that .xml file?
After several tries, i found that
Qemu2.0 /qemu-kvm1.2+ libvirt1.0.2 and lower version is ok Qemu2.0 /qemu-kvm1.2+ libvirt1.0.3 and higher version is failed
I wonder if you are seeing the result of tightening the parse; the old versions were silently ignoring an impossible request, and the new version is diagnosing the bug. It may be as simple as modifying whatever line requested "hvm" in your .xml file to instead request something valid. Then again, I have <os> <type arch='i686' machine='pc-i440fx-1.5'>hvm</type> in a guest that is booting just fine for me on Fedora 20 with qemu 2.0 and libvirt 1.2.7-rc1. In upstream libvirt.git, that error message is only possible from this code in domain_conf.c:
if (!virCapabilitiesSupportsGuestOSType(caps, def->os.type)) { virReportError(VIR_ERR_OS_TYPE, "%s", def->os.type);
but I'm not sure why that function would be failing, unless your qemu binary is not reporting features correctly.
-- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
participants (2)
-
Eric Blake
-
weiwei li