Bug 1067319

Summary: dst guest core dump and image was corrupt when doing ping-pong migration while guest is doing iozone
Product: Red Hat Enterprise Linux 7 Reporter: lijin <lijin>
Component: qemu-kvmAssignee: Virtualization Maintenance <virt-maint>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: medium    
Version: 7.0CC: acathrow, bcao, huding, juzhang, qzhang, sluo, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-02-20 08:51:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description lijin 2014-02-20 08:40:12 UTC
Description of problem:
while guest is doing iozone,do ping-pong migration,guest core dump and guest image was corrupt.

Version-Release number of selected component (if applicable):
Red Hat Enterprise Linux Server release 7.0 Beta (Maipo)
qemu-kvm-rhev-1.5.3-47.el7.x86_64
kernel-3.10.0-86.el7.x86_64
virtio-win-1.6.8-4.el6.noarch
spice-server-0.12.4-5.el7.x86_64
guest:en_windows_7_ultimate_with_sp1_x86_dvd_u_677460.iso

How reproducible:
3/3

Steps to Reproduce:
1.boot src gust with:
/usr/libexec/qemu-kvm -M pc -m 2G -smp 2,cores=2 -drive file=win7-32.qcow2,format=qcow2,media=disk,if=none,cache=none,id=drive-scsi,serial=scsi1 -device virtio-scsi-pci,id=scsi0 -device scsi-hd,bus=scsi0.0,drive=drive-scsi,id=ide-scsi-pci1,bootindex=1 -rtc base=localtime,clock=host,driftfix=slew -no-kvm-pit-reinjection -name win7-32-scsi -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -usb -device usb-tablet -monitor stdio -spice disable-ticketing,port=5901 -vga qxl -global qxl-vga.revision=3 -netdev tap,id=hostnet1,script=/etc/qemu-ifup,downscript=no -device e1000,netdev=hostnet1,id=net1,mac=00:52:22:16:54:48,bus=pci.0 -cdrom /usr/share/virtio-win/virtio-win.iso -fda /usr/share/virtio-win/virtio-win_x86.vfd -device virtio-scsi-pci,id=scsi1 -drive file=data1.raw,format=raw,media=disk,if=none,id=drive,cache=none -device scsi-hd,bus=scsi1.0,drive=drive,id=scsi-disk

2.run iozone in guest:
  iozone.exe -az -b c:\aaaa -g 2g -y 32k -i 1 -i 0
 
3.boot dst gust with:
/usr/libexec/qemu-kvm -M pc -m 2G -smp 2,cores=2 -drive file=win7-32.qcow2,format=qcow2,media=disk,if=none,cache=none,id=drive-scsi,serial=scsi1 -device virtio-scsi-pci,id=scsi0 -device scsi-hd,bus=scsi0.0,drive=drive-scsi,id=ide-scsi-pci1,bootindex=1 -rtc base=localtime,clock=host,driftfix=slew -no-kvm-pit-reinjection -name win7-32-scsi -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -usb -device usb-tablet -monitor stdio -spice disable-ticketing,port=5902 -vga qxl -global qxl-vga.revision=3 -netdev tap,id=hostnet1,script=/etc/qemu-ifup,downscript=no -device e1000,netdev=hostnet1,id=net1,mac=00:52:22:16:54:48,bus=pci.0 -cdrom /usr/share/virtio-win/virtio-win.iso -fda /usr/share/virtio-win/virtio-win_x86.vfd -device virtio-scsi-pci,id=scsi1 -drive file=data1.raw,format=raw,media=disk,if=none,id=drive,cache=none -device scsi-hd,bus=scsi1.0,drive=drive,id=scsi-disk -incoming tcp::5888

4.do ping-pong migration:
migrate -d tcp:localhos:5888
migrate_set_downtime 3

Actual results:
1.after about 4 times migration,core dump occurred.

2.qemu error message as following:
(qemu) qcow2: Preventing invalid write on metadata (overlaps with refcount block); image marked as corrupt.
block I/O error in device 'drive-scsi': Input/output error (5)

3.guest image corrupt,cannot be reused.
1)while try to boot guest with command in step2,error displayed:
qemu-kvm: -drive file=win7-32.qcow2,format=qcow2,media=disk,if=none,cache=none,id=drive-scsi,serial=scsi1: could not open disk image win7-32.qcow2: qcow2: Image is corrupt; cannot be opened read/write
2).# qemu-img check win7-32.qcow2
No errors were found on the image.
103633/819200 = 12.65% allocated, 26.75% fragmented, 0.00% compressed clusters
Image end offset: 6793330688

Expected results:
ping-pong migration can be finished successfully,no core dump,no errors.

Additional info:
I will upload the core dump file later
(gdb) bt
#0  0x00007fe2709b47f7 in copy_sectors (n_end=<optimized out>, n_start=0, cluster_offset=<optimized out>, start_sect=<optimized out>, 
    bs=0x7fe27201f150) at block/qcow2-cluster.c:377
#1  perform_cow (bs=bs@entry=0x7fe27201f150, r=r@entry=0x7fe2722b6080, m=0x7fe2722b6050, m=0x7fe2722b6050) at block/qcow2-cluster.c:664
#2  0x00007fe2709b4d53 in qcow2_alloc_cluster_link_l2 (bs=bs@entry=0x7fe27201f150, m=0x7fe2722b6050) at block/qcow2-cluster.c:696
#3  0x00007fe2709ba578 in qcow2_co_writev (bs=0x7fe27201f150, sector_num=21109512, remaining_sectors=280, qiov=0x7fe272792bf8)
    at block/qcow2.c:1085
#4  0x00007fe2709a400a in bdrv_aligned_pwritev (flags=0, qiov=0x7fe272792bf8, bytes=143360, offset=<optimized out>, req=0x7fe272bc88f0, 
    bs=0x7fe27201f150) at block.c:3018
#5  bdrv_co_do_pwritev (bs=0x7fe27201f150, offset=<optimized out>, bytes=143360, qiov=<optimized out>, flags=(unknown: 0)) at block.c:3147
#6  0x00007fe2709a4a94 in bdrv_co_do_writev (flags=<optimized out>, qiov=<optimized out>, nb_sectors=<optimized out>, 
    sector_num=<optimized out>, bs=<optimized out>) at block.c:3171
#7  bdrv_co_do_rw (opaque=0x7fe272793520) at block.c:4470
#8  0x00007fe2709db1aa in coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at coroutine-ucontext.c:118
#9  0x00007fe26b58b570 in ?? () from /lib64/libc.so.6
#10 0x00007fff61781120 in ?? ()
#11 0x0000000000000000 in ?? ()
(gdb)

Comment 2 Mike Cao 2014-02-20 08:51:41 UTC

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