Bug 607500 - An unexpected error occurs during winxp installation with virtio disk.
An unexpected error occurs during winxp installation with virtio disk.
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: seabios (Show other bugs)
6.0
All Linux
low Severity high
: rc
: ---
Assigned To: Gleb Natapov
Virtualization Bugs
:
Depends On:
Blocks: 599016
  Show dependency treegraph
 
Reported: 2010-06-24 05:30 EDT by Johnny Liu
Modified: 2013-12-08 19:49 EST (History)
13 users (show)

See Also:
Fixed In Version: seabios-0.5.1-3.el6
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-11-10 16:33:49 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
winxp installation failed on virtio disk (22.57 KB, image/png)
2010-06-24 05:30 EDT, Johnny Liu
no flags Details

  None (edit)
Description Johnny Liu 2010-06-24 05:30:01 EDT
Description of problem:
When installing windows XP on a guest with virtio disk, installation failed with an unexpected error.
Screen-shot has been attached.

Version-Release number of selected component (if applicable):
libvirt-0.8.1-10.el6.x86_64
qemu-kvm-0.12.1.2-2.80.el6.x86_64
seabios-0.5.1-0.15.20100108git669c991.el6.x86_64
Driver from: http://download.lab.bos.redhat.com/devel/RHEV/virtio-win/1.1.5-0/virtio-win-1.1.5-0.vfd

How reproducible:
Always

Steps to Reproduce:
1. Download driver from http://download.lab.bos.redhat.com/devel/RHEV/virtio-win/1.1.5-0/virtio-win-1.1.5-0.vfd.

2. Create guest image.
# qemu-img create -f raw /var/lib/libvirt/images/winxp-virtio.img 5G
Formatting '/var/lib/libvirt/images/winxp-virtio.img', fmt=raw size=5368709120

3. Prepare a domain config xml file:
# cat winxp-virtio.xml
<domain type='kvm'>
  <name>winxp-virtio</name>
  <uuid>903a3b5a-f3b0-b970-58d6-4a6513ce8f52</uuid>
  <memory>4096000</memory>
  <currentMemory>4096000</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='rhel6.0.0'>hvm</type>
    <boot dev='cdrom'/>
  </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/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source file='/var/lib/libvirt/images/winxp-virtio.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
    <disk type='file' device='floppy'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/virtio-win-1.1.5-0.vfd'/>
      <target dev='fda' bus='fdc'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
    <controller type='fdc' index='0'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:54:0e:e9'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target port='0'/>
    </console>
    <input type='tablet' bus='usb'/>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
    <sound model='ac97'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </sound>
    <video>
      <model type='vga' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
  </devices>
</domain>

4. Define the domain, and start it successfully.

5. Use virt-manager to watch installation process.
  
Actual results:
After load the virtio driver for disk, an unexpected error occured.

If I specify disk type to "ide", the vm is installed successfully.

Expected results:
winxp should be installed successfully with virtio disk.

Additional info:
Comment 1 Johnny Liu 2010-06-24 05:30:48 EDT
Created attachment 426505 [details]
winxp installation failed on virtio disk
Comment 2 Johnny Liu 2010-06-24 05:33:40 EDT
qemu-kvm command line:
# ps -ef|grep qemu
qemu      2613     1 43 13:10 ?        00:00:03 /usr/libexec/qemu-kvm -S -M rhel6.0.0 -enable-kvm -m 4000 -smp 1,sockets=1,cores=1,threads=1 -name winxp-virtio -uuid 903a3b5a-f3b0-b970-58d6-4a6513ce8f52 -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/winxp-virtio.monitor,server,nowait -mon chardev=monitor,mode=control -rtc base=localtime -boot d -drive file=/var/lib/libvirt/images/winxp-virtio.img,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0 -drive file=/var/lib/libvirt/images/virtio-win-1.1.5-0.vfd,if=none,id=drive-fdc0-0-0,format=raw -global isa-fdc.driveA=drive-fdc0-0-0 -drive file=/var/lib/libvirt/images/en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso,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=20,id=hostnet0,vhost=on,vhostfd=21 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:54:0e:e9,bus=pci.0,addr=0x4 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:0 -k en-us -vga std -device AC97,id=sound0,bus=pci.0,addr=0x5 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
Comment 4 RHEL Product and Program Management 2010-06-24 05:53:00 EDT
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.
Comment 5 Daniel Berrange 2010-06-24 05:53:38 EDT
I've never considered installing Windows + virtIO in this manner before. Did this approach work successfully using RHEL-5 in the past ? ie is this a regression from RHEL5 ? I don't see any problem with the QEMU command that libvirt's run, so if this is a regression I think it'll probably be QEMU/virtio driver fault.
Comment 6 Johnny Liu 2010-06-28 22:07:35 EDT
Actually this scenario is existing in qemu testing, so I added it into libvirt test plan, this is also my first time to do this testing.
Maybe u are right, it probably be QEMU/virtio-win driver issue.
Comment 7 Vadim Rozenfeld 2010-07-05 06:04:56 EDT
Could you please recheck with "cache=writethrough" instead of "none"

Thanks.
Comment 8 Johnny Liu 2010-07-05 06:40:59 EDT
Recheck with "cache=writethrough" instead of "none", but this issue still occurs.



# virsh dumpxml winxp-virtio
<domain type='kvm'>
  <name>winxp-virtio</name>
  <uuid>903a3b5a-f3b0-b970-58d6-4a6513ce8f52</uuid>
  <memory>4096000</memory>
  <currentMemory>4096000</currentMemory>
  <vcpu>1</vcpu>
  <os>
    <type arch='x86_64' machine='rhel6.0.0'>hvm</type>
    <boot dev='cdrom'/>
  </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/libexec/qemu-kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writethrough'/>
      <source file='/var/lib/libvirt/images/winxp-virtio.img'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='floppy'>
      <driver name='qemu' type='raw' cache='writethrough'/>
      <source file='/var/lib/libvirt/images/virtio-win-1.1.6-1.vfd'/>
      <target dev='fda' bus='fdc'/>
      <address type='drive' controller='0' bus='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw' cache='writethrough'/>
      <source file='/var/lib/libvirt/images/en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
    <controller type='fdc' index='0'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:54:0e:e9'/>
      <source network='default'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target port='0'/>
    </console>
    <input type='tablet' bus='usb'/>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/>
    <sound model='ac97'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </sound>
    <video>
      <model type='vga' vram='9216' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
  </devices>
</domain>


# ps -ef|grep qemu
qemu     20313     1 65 01:42 ?        00:00:09 /usr/libexec/qemu-kvm -S -M rhel6.0.0 -enable-kvm -m 4000 -smp 1,sockets=1,cores=1,threads=1 -name winxp-virtio -uuid 903a3b5a-f3b0-b970-58d6-4a6513ce8f52 -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/winxp-virtio.monitor,server,nowait -mon chardev=monitor,mode=control -rtc base=localtime -boot d -drive file=/var/lib/libvirt/images/winxp-virtio.img,if=none,id=drive-virtio-disk0,format=raw,cache=writethrough -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -drive file=/var/lib/libvirt/images/virtio-win-1.1.6-1.vfd,if=none,id=drive-fdc0-0-0,format=raw,cache=writethrough -global isa-fdc.driveA=drive-fdc0-0-0 -drive file=/var/lib/libvirt/images/en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw,cache=writethrough -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 -netdev tap,fd=24,id=hostnet0,vhost=on,vhostfd=25 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:54:0e:e9,bus=pci.0,addr=0x5 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb -device usb-tablet,id=input0 -vnc 127.0.0.1:0 -k en-us -vga std -device AC97,id=sound0,bus=pci.0,addr=0x6 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
Comment 9 Vadim Rozenfeld 2010-07-15 08:26:46 EDT
can you please re-check this bug with the latest drivers from
http://download.lab.bos.redhat.com/devel/RHEV/virtio-win/1.1.8-0/
Comment 10 Johnny Liu 2010-07-15 23:46:08 EDT
Re-test this bug with the latest drivers (virtio-win-1.1.8-0.vfd), this bug still reproduced.
Comment 11 RHEL Product and Program Management 2010-07-15 23:57:51 EDT
This issue has been proposed when we are only considering blocker
issues in the current Red Hat Enterprise Linux release. It has
been denied for the current Red Hat Enterprise Linux release.

** If you would still like this issue considered for the current
release, ask your support representative to file as a blocker on
your behalf. Otherwise ask that it be considered for the next
Red Hat Enterprise Linux release. **
Comment 13 Dor Laor 2010-07-27 04:37:12 EDT
Can you please retest with latest qemu and latest host kernel?
It does work for us.
Comment 17 Dor Laor 2010-08-04 04:54:58 EDT
How can you install windows with virtio but without the .vfd floppy that contains the drivers?. It's not possible.
Comment 18 Johnny Liu 2010-08-04 05:37:18 EDT
I just debug this issue to check wether the bug is relative with win-virtio.

If I do not give the .vfd floppy, the installation should be stop, and prompt user to load disk driver. 

But now, the installation has been broken before the prompt came out.
Comment 19 Vadim Rozenfeld 2010-08-04 06:01:37 EDT
Hi Johnny.

Just narrowing down the problem, could you try 
a virtio block as a secondary disk, while the boot disk is IDE.

Thanks,
Vadim.
Comment 20 cshao 2010-08-04 06:30:04 EDT
It also occur in win2003.

Installing windows 2003 with virtio disk by virt-manager, installation will fail with the same error.
Comment 21 Dor Laor 2010-08-04 07:30:02 EDT
Please try with ide and virtio as secondary disk
Comment 22 Johnny Liu 2010-08-04 08:09:02 EDT
IDE block as boot disk + virtio block as secondary disk still reproduced:

# virt-install -n winxp-virtio -r 1024 --disk path=/var/lib/libvirt/images/winxp-virtio.img,size=5 --disk path=/var/lib/libvirt/images/second.img,size=1,bus=virtio --disk path=/var/lib/libvirt/images/en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso,device=cdrom

If only have a IDE block as boot disk, it works fine.
# virt-install -n winxp-virtio -r 1024 --disk path=/var/lib/libvirt/images/winxp-virtio.img,size=5  --disk path=/var/lib/libvirt/images/en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso,device=cdrom
Comment 23 Vadim Rozenfeld 2010-08-04 08:23:00 EDT
so, you get the same error message while installing OS on IDE and the 
secondary disk is virtio, right?
Comment 24 Dor Laor 2010-08-04 17:24:33 EDT
Please retest that since that's weird that viostor whql tests did not report an error. We need to realize what's the difference. 

The command runs w/o boot=on for virtio. That's weird. Can you test it manually with it?

Daniel/Cole how did that happen?
Comment 25 Dor Laor 2010-08-04 17:37:19 EDT
Also please test with latest drivers - http://download.lab.bos.redhat.com/devel/RHEV/virtio-win/1.1.10-0/
Comment 26 cshao 2010-08-04 22:08:14 EDT
(In reply to comment #23)
> so, you get the same error message while installing OS on IDE and the 
> secondary disk is virtio, right?    

I get the same error message with first disk is virtio.
Comment 27 Johnny Liu 2010-08-04 23:38:22 EDT
(In reply to comment #23)
> so, you get the same error message while installing OS on IDE and the 
> secondary disk is virtio, right?    

Yes, the same error is seen.
Comment 28 Johnny Liu 2010-08-04 23:44:02 EDT
(In reply to comment #25)
> Also please test with latest drivers -
> http://download.lab.bos.redhat.com/devel/RHEV/virtio-win/1.1.10-0/    

The error still is seen.

# virt-install -n winxp-virtio -r 1024 --disk path=/var/lib/libvirt/images/winxp-virtio.img,size=5,bus=virtio --disk path=/var/lib/libvirt/images/virtio-win-1.1.10-0.vfd,device=floppy --disk path=/var/lib/libvirt/images/en_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-73974.iso,device=cdrom
Comment 29 Vadim Rozenfeld 2010-08-05 05:15:17 EDT
(In reply to comment #20)
> It also occur in win2003.
> 
> Installing windows 2003 with virtio disk by virt-manager, installation will
> fail with the same error.    

I cannot reproduce it yet, as well as XP problem. 
Can you try W2K8 please, to get the full picture.
Thanks,
Vadim.
Comment 33 Vadim Rozenfeld 2010-08-05 11:19:23 EDT
After updateing, I can reproduce this problem on my 2.6.32-54.el6.x86_64
system

Here is the yum update/install history. At least one of these updates leads
to the problem. 

Transaction ID : 15
Begin time     : Thu Aug  5 17:04:38 2010
Begin rpmdb    : 1562:64f6098ff48172590f1cace43b1a3f5bfbbe92c3
End time       :            17:04:42 2010 (4 seconds)
End rpmdb      : 1562:f456e444e5e73b46b7f80bce0a127969ffe3f9ec
User           : vrozenfe <vrozenfe>
Return-Code    : Success
Transaction performed with:
    Installed    rpm-4.8.0-8.el6.x86_64
    Installed    yum-3.2.27-8.el6.noarch
Packages Altered:
    Updated      seabios-0.5.1-0.9.20100108git669c991.el6.x86_64
    Update               0.5.1-2.el6.x86_64
history info

Transaction ID : 14
Begin time     : Thu Aug  5 17:03:45 2010
Begin rpmdb    : 1562:6d53ea438589d5ff19b73298bfec694cb564c04a
End time       :            17:03:55 2010 (10 seconds)
End rpmdb      : 1562:64f6098ff48172590f1cace43b1a3f5bfbbe92c3
User           : vrozenfe <vrozenfe>
Return-Code    : Success
Transaction performed with:
    Installed    rpm-4.8.0-8.el6.x86_64
    Installed    yum-3.2.27-8.el6.noarch
Packages Altered:
    Updated      virt-manager-0.8.4-3.el6.noarch
    Update                    0.8.4-7.el6.noarch
history info

Transaction ID : 13
Begin time     : Thu Aug  5 17:03:10 2010
Begin rpmdb    : 1562:8add1296bdf9ab6995eab833bd233a421c420b29
End time       :            17:03:17 2010 (7 seconds)
End rpmdb      : 1562:6d53ea438589d5ff19b73298bfec694cb564c04a
User           : vrozenfe <vrozenfe>
Return-Code    : Success
Transaction performed with:
    Installed    rpm-4.8.0-8.el6.x86_64
    Installed    yum-3.2.27-8.el6.noarch
Packages Altered:
    Updated      python-virtinst-0.500.3-2.el6.noarch
    Update                       0.500.3-7.el6.noarch
history info


Transaction ID : 12
Begin time     : Thu Aug  5 17:02:20 2010
Begin rpmdb    : 1561:230a1fa65561ff054c18beea8102794542d420fc
End time       :            17:02:23 2010 (3 seconds)
End rpmdb      : 1562:8add1296bdf9ab6995eab833bd233a421c420b29
User           : vrozenfe <vrozenfe>
Return-Code    : Success
Transaction performed with:
    Installed    rpm-4.8.0-8.el6.x86_64
    Installed    yum-3.2.27-8.el6.noarch
Packages Altered:
    Install      qemu-kvm-tools-2:0.12.1.2-2.107.el6.x86_64
history info

Transaction ID : 11
Begin time     : Thu Aug  5 17:01:08 2010
Begin rpmdb    : 1561:7c75770b57e0f3302a47c5ccae4c35adfef7cf00
End time       :            17:01:30 2010 (22 seconds)
End rpmdb      : 1561:230a1fa65561ff054c18beea8102794542d420fc
User           : vrozenfe <vrozenfe>
Return-Code    : Success
Transaction performed with:
    Installed    rpm-4.8.0-8.el6.x86_64
    Installed    yum-3.2.27-8.el6.noarch
Packages Altered:
    Updated      qemu-img-2:0.12.1.2-2.106.el6.x86_64
    Update                2:0.12.1.2-2.107.el6.x86_64
    Updated      qemu-kvm-2:0.12.1.2-2.106.el6.x86_64
    Update                2:0.12.1.2-2.107.el6.x86_64
history info
Comment 34 Daniel Berrange 2010-08-06 05:11:14 EDT
> The command runs w/o boot=on for virtio. That's weird. Can you test it manually
> with it?

Virt-install configures the guest to boot off the CDROM the first time, hence boot=no is not required.
Comment 35 Dor Laor 2010-08-08 23:19:49 EDT
(In reply to comment #34)
> > The command runs w/o boot=on for virtio. That's weird. Can you test it manually
> > with it?
> 
> Virt-install configures the guest to boot off the CDROM the first time, hence
> boot=no is not required.    

But what will happen when the installation is finished and will automatically reboot the guest?
Comment 36 Daniel Berrange 2010-08-11 08:34:48 EDT
virt-install sets  on_reboot=destroy, so the guest is killed. virt-install then restarts it manually with different boot settings.
Comment 37 Vadim Rozenfeld 2010-08-16 09:17:23 EDT
Dor, please see my comment #33
https://bugzilla.redhat.com/show_bug.cgi?id=607500#c33

I really don't believe that this problem is somehow related to the driver itself.

Vadim.
Comment 38 Dor Laor 2010-08-18 10:30:59 EDT
Gleb analysed it and it's because seabios does not have virtio write support.
Not clear why windows needs it, but can't argue.
Comment 44 lihuang 2010-08-19 12:16:22 EDT
moving to verified
Comment 45 releng-rhel@redhat.com 2010-11-10 16:33:49 EST
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.

Note You need to log in before you can comment on or make changes to this bug.