Bug 1249740

Summary: Segfault occurred at Dst VM while completed migration upon ENOSPC
Product: Red Hat Enterprise Linux 6 Reporter: Stefan Hajnoczi <stefanha>
Component: qemu-kvmAssignee: Stefan Hajnoczi <stefanha>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.8CC: amit.shah, chayang, coli, hhuang, jen, juzhang, michen, mkenneth, mrezanin, qizhu, rbalakri, scui, shuang, virt-bugs, virt-maint, xfu, xuhan
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-0.12.1.2-2.487.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1160169 Environment:
Last Closed: 2016-05-10 20:59:33 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:
Bug Depends On: 1160169    
Bug Blocks: 1249718    

Comment 6 Jeff Nelson 2016-01-29 17:28:03 UTC
Fix included in qemu-kvm-0.12.1.2-2.487.el6

Comment 8 Qianqian Zhu 2016-03-02 10:16:41 UTC
Reproduced with:
qemu-kvm-0.12.1.2-2.479.el6.x86_64
kernel-2.6.32-573.el6.x86_64

Steps:
1. Launch src qemu:
[root@hp-dl388g7-02 ~]# qemu-kvm -enable-kvm -m 1024 -cpu host -drive file=/mnt/RHEL-Server-6.8-64-virtio.qcow2,snapshot=off,cache=none,if=none,id=drive-virtio-disk0,format=qcow2 -device virtio-blk-pci,bus=pci.0,addr=0x7,id=test1,drive=drive-virtio-disk0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0 -drive file=/dev/mapper/vgtest-lvtest512,snapshot=off,cache=none,if=none,id=drive-virtio-disk1,format=qcow2,werror=enospc -device virtio-scsi-pci,bus=pci.0,addr=0xe,id=scsi1 -device scsi-hd,drive=drive-virtio-disk1,bus=scsi1.0 -monitor stdio -spice port=5901,disable-ticketing -vga qxl
2. Lauch dst qemu on remote host
3. trigger ENOSPC with the scsi disk within guest.
4. migrate guest to dst.

Result:
(gdb) r
Starting program: /usr/bin/qemu-kvm -enable-kvm -m 1024 -cpu host -drive file=/mnt/RHEL-Server-6.8-64-virtio.qcow2,snapshot=off,cache=none,if=none,id=drive-virtio-disk0,format=qcow2 -device virtio-blk-pci,bus=pci.0,addr=0x7,id=test1,drive=drive-virtio-disk0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0 -drive file=/dev/mapper/vgtest-lvtest512,snapshot=off,cache=none,if=none,id=drive-virtio-disk1,format=qcow2,werror=enospc -device virtio-scsi-pci,bus=pci.0,addr=0xe,id=scsi1 -device scsi-hd,drive=drive-virtio-disk1,bus=scsi1.0 -monitor stdio -spice port=5902,disable-ticketing -vga qxl -incoming tcp:0:1234
[Thread debugging using libthread_db enabled]
[New Thread 0x7fffee737700 (LWP 3086)]
[New Thread 0x7fffecba3700 (LWP 3087)]
[New Thread 0x7fffe7fb6700 (LWP 3088)]
QEMU 0.12.1 monitor - type 'help' for more information
(qemu) [Thread 0x7fffee737700 (LWP 3086) exited]
[New Thread 0x7fffee737700 (LWP 3105)]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7dcbe2c in virtio_scsi_command_complete (r=0x7ffff8f6ec90, status=0, resid=0) at /usr/src/debug/qemu-kvm-0.12.1.2/hw/virtio-scsi.c:495
495         req->resp.cmd->response = VIRTIO_SCSI_S_OK;

Verified with:
qemu-kvm-0.12.1.2-2.487.el6.x86_64
kernel-2.6.32-573.el6.x86_64

Steps:
Same as above.

Result:
dst qemu does not crash, and VM paused after a while
[root@hp-dl388g7-03 qemu487]# qemu-kvm -enable-kvm -m 1024 -cpu host -drive file=/mnt/RHEL-Server-6.8-64-virtio.qcow2,snapshot=off,cache=none,if=none,id=drive-virtio-disk0,format=qcow2 -device virtio-blk-pci,bus=pci.0,addr=0x7,id=test1,drive=drive-virtio-disk0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0 -drive file=/dev/mapper/vgtest-lvtest512,snapshot=off,cache=none,if=none,id=drive-virtio-disk1,format=qcow2,werror=enospc -device virtio-scsi-pci,bus=pci.0,addr=0xe,id=scsi1 -device scsi-hd,drive=drive-virtio-disk1,bus=scsi1.0 -monitor stdio -spice port=5902,disable-ticketing -vga qxl -incoming tcp:0:1234
QEMU 0.12.1 monitor - type 'help' for more information 
(qemu) info status 
VM status: running
(qemu) block I/O error in device 'drive-virtio-disk1': No space left on device (28)
info status
VM status: paused (io-error)

Comment 11 errata-xmlrpc 2016-05-10 20:59:33 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2016-0815.html