Bug 572495

Summary: VM PXE boot broken in qemu-0.12.3
Product: [Fedora] Fedora Reporter: nochem <nicolas.ochem>
Component: qemuAssignee: Justin M. Forbes <jforbes>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: amit.shah, apevec, berrange, crobinso, dwmw2, ehabkost, gcosta, itamar, jaswinder, jforbes, knoel, markmc, nicolas.ochem, ovirt-bugs, ovirt-maint, scottt.tw, veillard, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-05-18 15:59:54 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Bug Depends On:    
Bug Blocks: 579714    

Description nochem 2010-03-11 06:42:49 EST
After upgrading to ovirt-node 1.9.0 with ovirt, I cannot pxe boot anymore.

In 1.9.0, libvirt was upgraded. In order to create nic cards in qemu-kvm guests, the parameter used by libvirt is now -device instead of -net nic. Patch here :

http://osdir.com/ml/libvir-list/2010-01/msg00173.html

However, qemu 0.12.2 complains at startup with such parameters :
Warning: vlan 0 with no nics

And when I try to boot from the network, qemu-kvm fails :
Cannot boot from non-existent NIC

I think this was fixed in qemu-kvm 0.12.3 :
http://permalink.gmane.org/gmane.comp.emulators.qemu/63509

But ovirt-node-image 1.9.0 ships with qemu-kvm 0.12.2
Comment 1 nochem 2010-03-11 08:50:24 EST
upgrading qemu-kvm to 0.12.3 did not solve the issue.
The lines "warning: vlan 0 with no nics" are gone but the failure is still there when giving -boot n :

Cannot boot from non-existent NIC
Comment 2 nochem 2010-03-11 09:18:55 EST
Observed with libvirt version : 0.7.6

Content of taskomatic.log :
INFO Thu Mar 11 15:03:33 +0100 2010 (3247) starting task_start_vm
INFO Thu Mar 11 15:03:35 +0100 2010 (3247) VM will be started on node node80.ovirt.priv
DEBUG Thu Mar 11 15:03:35 +0100 2010 (3247) Connecting volumes: 
DEBUG Thu Mar 11 15:03:36 +0100 2010 (3247) XML Domain definition: <domain type='kvm'><name>Dut-D</name><uuid>f7623dbf-2359-0d13-81ab-5b95a2457bc2</uuid><memory>1048576</memory><currentMemory></currentMemory><vcpu>1</vcpu><os><type>hvm</type><boot dev='network'/></os><clock offset='utc'/><on_poweroff>destroy</on_poweroff><on_reboot>restart</on_reboot><on_crash>destroy</on_crash><devices><emulator>/usr/bin/qemu-kvm</emulator><interface type='bridge'><model type='e1000'/><mac address='02:5A:3B:27:00:00'/><source bridge='breth0'/></interface><interface type='bridge'><model type='e1000'/><mac address='00:16:3e:49:23:fc'/><source bridge='brvp'/></interface><input bus='ps2' type='mouse'/><graphics type='vnc' port='-1' listen='0.0.0.0'/><serial type='tcp'><target port='0'/><protocol type='telnet'/><source mode='bind' service='5828' host='0.0.0.0'/></serial></devices><features><acpi/><apic/></features></domain>
ERROR Thu Mar 11 15:03:39 +0100 2010 (3247) Task action processing failed: RuntimeError: Error creating virtual machine: Error: Error creating new domain (virDomainCreate). Subsystem qemu: monitor socket did not show up.: Connection refused in DomainWrap.cpp:ManagementMethod:115
ERROR Thu Mar 11 15:03:39 +0100 2010 (3247) /usr/share/ovirt-server/task-omatic/taskomatic.rb:436:in `task_start_vm'/usr/share/ovirt-server/task-omatic/taskomatic.rb:937:in `mainloop'/usr/share/ovirt-server/task-omatic/taskomatic.rb:923:in `each'/usr/share/ovirt-server/task-omatic/taskomatic.rb:923:in `mainloop'/usr/share/ovirt-server/task-omatic/taskomatic.rb:889:in `loop'/usr/share/ovirt-server/task-omatic/taskomatic.rb:889:in `mainloop'/usr/share/ovirt-server/task-omatic/taskomatic.rb:990
INFO Thu Mar 11 15:03:39 +0100 2010 (3247) done



Content of /var/log/libvirt/qemu/Dut-D.log :

LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/bin/qemu-kvm -S -M pc-0.12 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name Dut-D -uuid f7623dbf-2359-0d13-81ab-5b95a2457bc2 -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/Dut-D.monitor,server,nowait -mon chardev=monitor,mode=readline -boot n -device e1000,vlan=0,id=net0,mac=02:5a:3b:27:00:00,bus=pci.0,addr=0x4 -net tap,fd=25,vlan=0,name=hostnet0 -device e1000,vlan=1,id=net1,mac=00:16:3e:49:23:fc,bus=pci.0,addr=0x5 -net tap,fd=26,vlan=1,name=hostnet1 -chardev socket,id=serial0,host=0.0.0.0,port=5828,telnet,server,nowait -device isa-serial,chardev=serial0 -usb -vnc 0.0.0.0:0 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 
Warning: vlan 0 with no nics
Warning: vlan 1 with no nics
Cannot boot from non-existent NIC
Comment 3 Daniel Veillard 2010-03-16 10:26:38 EDT
"Cannot boot from non-existent NIC"  while there is 2 e1000 network devices
defined on the command line.
Sounds like a qemu bug,

Daniel
Comment 4 Daniel Berrange 2010-03-16 10:33:49 EDT
It appears that PXE fails when disks are presented using '-device' instead of '-net nic'
Comment 5 nochem 2010-03-16 10:34:38 EDT
    Downgrading to libvirt 0.7.5 fixes the problem.

    To do this "live" :
    - download those rpms and copy them to the node :
    scp libvirt-0.7.5-1.fc12.x86_64.rpm libvirt-client-0.7.5-1.fc12.x86_64.rpm
    libvirt-python-0.7.5-1.fc12.x86_64.rpm root@node24:/tmp

    - in the node : 
    cd /tmp
    rpm -Uvh --oldpackage libvirt-python-0.7.5-1.fc12.x86_64.rpm
    libvirt-client-0.7.5-1.fc12.x86_64.rpm libvirt-0.7.5-1.fc12.x86_64.rpm
    /etc/init.d/libvirtd start
Comment 6 Alan Pevec 2010-03-25 06:46:56 EDT
workaround in ovirt-node 1.9.1 is to exclude F12 virt-preview repo.
With qemu-0.11.0-13.fc12 and libvirt-0.7.1-15.fc12 VM PXE boot works fine.
Comment 7 Eduardo Habkost 2010-04-13 11:58:59 EDT
Fix submitted upstream: http://marc.info/?l=qemu-devel&m=127059288329503
Comment 8 Cole Robinson 2010-05-18 15:59:54 EDT
Should be fixed in qemu-0.12.3-8.fc13

*** This bug has been marked as a duplicate of bug 577851 ***