Hide Forgot
Description of problem: I/O error after "Save/Restore" using qemu-kvm command line not using virsh. I didn't met this issue with virsh for "save/restore". Version-Release number of selected component (if applicable): qemu-kvm-0.12.1.2-2.192.el6.x86_64 kernel-2.6.32-202.el6.x86_64 libvirt-0.9.4-12.el6.x86_64 virt-manager-0.9.0-6.el6.x86_64 How reproducible: 100% Steps to Reproduce: 1.create a guest: /usr/libexec/qemu-kvm -smp 2 -m 1024 -hda /var/lib/libvirt/imgages/rhel6u2.img 2.save the guest using qemu monitor command line: migrate "exec:dd of=/root/save.img" 3.restore the saved img:/usr/libexec/qemu-kvm -smp 2 -m 1024 -incoming /root/save.img 4.do any thing which needs to write disk, e.g. vi temp.txt (you cannot save anything to disk.) Actual results: You'll meet the following I/O error in guest dmesg. ------------ ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 ata1.00: BMDMA stat 0x5 ata1.00: failed command: READ DMA ata1.00: cmd c8/00:20:40:4f:84/00:00:00:00:00/e0 tag 0 dma 16384 in res 00/00:00:00:00:00/00:00:00:00:00/00 Emask 0x2 (HSM violation) ata1.00: revalidation failed (errno=-2) ata1.00: revalidation failed (errno=-2) ata1.00: revalidation failed (errno=-2) end_request: I/O error, dev sda, sector 8671040 end_request: I/O error, dev sda, sector 8671040 end_request: I/O error, dev sda, sector 10249208 Buffer I/O error on device sda1, logical block 1280895 end_request: I/O error, dev sda, sector 4459584 Aborting journal on device sda1-8. end_request: I/O error, dev sda, sector 4458496 Buffer I/O error on device sda1, logical block 557056 EXT4-fs error (device sda1): ext4_journal_start_sb: Detected aborted journal EXT4-fs (sda1): Remounting filesystem read-only JBD2: I/O error detected when updating journal superblock for sda1-8. end_request: I/O error, dev sda, sector 8671040 Expected results: no I/O error. Additional info: I also met this issue in qemu upstream and filed a bug several months ago. see: https://bugs.launchpad.net/qemu/+bug/739088
(In reply to comment #0) > Steps to Reproduce: > 1.create a guest: /usr/libexec/qemu-kvm -smp 2 -m 1024 -hda > /var/lib/libvirt/imgages/rhel6u2.img > 2.save the guest using qemu monitor command line: migrate "exec:dd > of=/root/save.img" > 3.restore the saved img:/usr/libexec/qemu-kvm -smp 2 -m 1024 -incoming > /root/save.img You're not specifying a disk to use on the restore, what happens if you restore as: /usr/libexec/qemu-kvm -smp 2 -m 1024 \ -hda /var/lib/libvirt/imgages/rhel6u2.img \ -incoming /root/save.img By not specifying the disk image you're changing the virtual machine, removing the disk. The restored guest state expects a disk, tries to access it, and errors result. This is expected.
> You're not specifying a disk to use on the restore, what happens if you restore > as: > > /usr/libexec/qemu-kvm -smp 2 -m 1024 \ > -hda /var/lib/libvirt/imgages/rhel6u2.img \ > -incoming /root/save.img > > By not specifying the disk image you're changing the virtual machine, removing > the disk. The restored guest state expects a disk, tries to access it, and > errors result. This is expected. Thanks for your indication. My "Restore" command line has something wrong. It works with the following command line. Please close the bug. /usr/libexec/qemu-kvm -smp 2 -m 1024 -hda /var/lib/libvirt/imgages/rhel6u2.img -incoming "exec:dd if=/root/save.img"