Description of problem: Receiving "Cannot determine QEMU argv syntax" on kvm-85 with latest libvirt git as of 20090422. This is occurring when defining a new VM and with already created VMs. Version-Release number of selected component (if applicable): libvirt-git How reproducible: Create new VM through virt-manager 0.7 Actual results: Unable to complete install '<class 'libvirt.libvirtError'> internal error Cannot determine QEMU argv syntax /usr/bin/kvm Traceback (most recent call last): File "/usr/local/share/virt-manager/virtManager/create.py", line 1485, in do_install dom = guest.start_install(False, meter = meter) File "/usr/local/lib/python2.6/dist-packages/virtinst/Guest.py", line 541, in start_install return self._do_install(consolecb, meter, removeOld, wait) File "/usr/local/lib/python2.6/dist-packages/virtinst/Guest.py", line 633, in _do_install self.domain = self.conn.createLinux(install_xml, 0) File "/usr/lib/python2.6/libvirt.py", line 974, in createLinux if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self) libvirtError: internal error Cannot determine QEMU argv syntax /usr/bin/kvm ' Expected results: Functional. Additional info:
We're probably being tripped up by a change in help output format. Can you run '/usr/bin/kvm -help' save the output to a file, and attach to this BZ ticket
QEMU PC emulator version 0.10.0 (kvm-85), Copyright (c) 2003-2008 Fabrice Bellard usage: qemu [options] [disk_image] 'disk_image' is a raw hard image image for IDE hard disk 0 Standard options: -h or -help display this help and exit -M machine select emulated machine (-M ? for list) -cpu cpu select CPU (-cpu ? for list) -smp n set the number of CPUs to 'n' [default=1] -fda/-fdb file use 'file' as floppy disk 0/1 image -hda/-hdb file use 'file' as IDE hard disk 0/1 image -hdc/-hdd file use 'file' as IDE hard disk 2/3 image -cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master) -drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i] [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off] [,cache=writethrough|writeback|none][,format=f][,serial=s] use 'file' as a drive image -mtdblock file use 'file' as on-board Flash memory image -sd file use 'file' as SecureDigital card image -pflash file use 'file' as a parallel flash image -boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n) -snapshot write to temporary files instead of disk image files -m megs set virtual RAM size to megs MB [default=128] -k language use keyboard layout (for example 'fr' for French) -audio-help print list of audio drivers and their options -soundhw c1,... enable audio support and only specified sound cards (comma separated list) use -soundhw ? to get the list of supported cards use -soundhw all to enable all of them -usb enable the USB driver (will be the default soon) -usbdevice name add the host or guest USB device 'name' -name string set the name of the guest -uuid %08x-%04x-%04x-%04x-%012x specify machine UUID Display options: -nographic disable graphical output and redirect serial I/Os to console -curses use a curses/ncurses interface instead of SDL -portrait rotate graphical output 90 deg left (only PXA LCD) -vga [std|cirrus|vmware|none] select video card type -full-screen start in full screen -vnc display start a VNC server on display i386 target only: -win2k-hack use it when installing Windows 2000 to avoid a disk full bug -rtc-td-hack use it to fix time drift in Windows ACPI HAL -no-fd-bootchk disable boot signature checking for floppy disks -no-acpi disable ACPI -no-hpet disable HPET -acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,data=file1[:file2]...] ACPI table description Network options: -net nic[,vlan=n][,macaddr=addr][,model=type][,name=str] create a new Network Interface Card and connect it to VLAN 'n' -net user[,vlan=n][,name=str][,hostname=host] connect the user mode network stack to VLAN 'n' and send hostname 'host' to DHCP clients -net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile] connect the host TAP network interface to VLAN 'n' and use the network scripts 'file' (default=/etc/qemu-ifup) and 'dfile' (default=/etc/qemu-ifdown); use '[down]script=no' to disable script execution; use 'fd=h' to connect to an already opened TAP interface -net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port] connect the vlan 'n' to another VLAN using a socket connection -net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port] connect the vlan 'n' to multicast maddr and port -net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode] connect the vlan 'n' to port 'n' of a vde switch running on host and listening for incoming connections on 'socketpath'. Use group 'groupname' and mode 'octalmode' to change default ownership and permissions for communication port. -net none use it alone to have zero network devices; if no -net option is provided, the default is '-net nic -net user' -tftp dir allow tftp access to files in dir [-net user] -bootp file advertise file in BOOTP replies -smb dir allow SMB access to files in 'dir' [-net user] -redir [tcp|udp]:host-port:[guest-host]:guest-port redirect TCP or UDP connections from host to guest [-net user] -bt hci,null dumb bluetooth HCI - doesn't respond to commands -bt hci,host[:id] use host's HCI with the given name -bt hci[,vlan=n] emulate a standard HCI in virtual scatternet 'n' -bt vhci[,vlan=n] add host computer to virtual scatternet 'n' using VHCI -bt device:dev[,vlan=n] emulate a bluetooth device 'dev' in scatternet 'n' Linux boot specific: -kernel bzImage use 'bzImage' as kernel image -append cmdline use 'cmdline' as kernel command line -initrd file use 'file' as initial ram disk Debug/Expert options: -serial dev redirect the serial port to char device 'dev' -parallel dev redirect the parallel port to char device 'dev' -monitor dev redirect the monitor to char device 'dev' -pidfile file write PID to 'file' -singlestep always run in singlestep mode -S freeze CPU at startup (use 'c' to start execution) -gdb dev wait for gdb connection on 'dev' -s shorthand for -gdb tcp::1234 -d item1,... output log to /tmp/qemu.log (use -d ? for a list of log items) -hdachs c,h,s[,t] force hard disk 0 physical geometry and the optional BIOS translation (t=none or lba) (usually qemu can guess them) -L path set the directory for the BIOS, VGA BIOS and keymaps -bios file set the filename for the BIOS -no-reboot exit instead of rebooting -no-shutdown stop before shutdown -loadvm [tag|id] start right away with a saved state (loadvm in monitor) -daemonize daemonize QEMU after initializing -option-rom rom load a file, rom, into the option ROM space -clock force the use of the given methods for timer alarm. To see what timers are available use -clock ? -localtime set the real time clock to local time [default=utc] -startdate select initial date of the clock -icount [N|auto] enable virtual instruction counter with 2^N clock ticks per instruction -echr chr set terminal escape character instead of ctrl-a -virtioconsole c set virtio console -show-cursor show cursor -tb-size n set TB size -incoming p prepare for incoming migration, listen on port p -chroot dir Chroot to dir just before starting the VM. -runas user Change to user id user just before starting the VM. -no-kvm disable KVM hardware virtualization -no-kvm-irqchip disable KVM kernel mode PIC/IOAPIC/LAPIC -no-kvm-pit disable KVM kernel mode PIT -no-kvm-pit-reinjection disable KVM kernel mode PIT interrupt reinjection -pcidevice host=bus:dev.func[,dma=none][,name=string] expose a PCI device to the guest OS. dma=none: don't perform any dma translations (default is to use an iommu) 'string' is used in log output. -enable-nesting enable support for running a VM inside the VM (AMD only) -cpu-vendor STRING override the cpuid vendor string -nvram FILE provide ia64 nvram contents -tdf enable guest time drift compensation -kvm-shadow-memory MEGABYTES allocate MEGABYTES for kvm mmu shadowing -mempath FILE provide backing storage for guest RAM -mem-prealloc preallocate guest memory (use with -mempath) During emulation, the following keys are useful: ctrl-alt-f toggle full screen ctrl-alt-n switch to virtual console 'n' ctrl-alt toggle mouse and keyboard grab When using -nographic, press 'ctrl-a h' to get some help.
today i play with the new kvm (85) and this bug, and i found 2 things. 1) I save kvm -help (version 84) to file (kvm.84) i create a script kvm.sh for injecting this kvm.84 file when i try to start kvm -help with the new version and it works very well. 2) what is the difference between this 2 command version 84 -> kvm -help version 85 -> kvm -help answer: some little change, but nothing explain the bug, except when we look and analyze the size of the output of these command. version 84 => kvm -help | wc => 157 1044 8051 version 85 => kvm -help | wc => 161 1057 8286 and when we change the output of kvm -help (85) for a size less then 8192 Octects in conclusion wee need to change the size of MAX_HELP_OUTPUT_SIZE from 8192 to 16384 in the qemu_conf.c file
Created attachment 343226 [details] update the MAX_HELP_OUTPUT_SIZE to 16384 for kvm-85 and above (i hope)
Created attachment 343453 [details] Fix command line arg parsing for newer KVM & improve error reporting Patch from upstream http://www.redhat.com/archives/libvir-list/2009-May/msg00194.html
This was addressed in the 0.6.4 release