Bug 1238585

Summary: drive-mirror has spurious failures with low 'granularity' values
Product: Red Hat Enterprise Linux 7 Reporter: Stefan Hajnoczi <stefanha>
Component: qemu-kvm-rhevAssignee: Stefan Hajnoczi <stefanha>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 7.2CC: dyuan, famz, huding, jcody, juzhang, knoel, mrezanin, mzhan, pezhang, pkrempa, rbalakri, shyu, stefanha, virt-bugs, virt-maint, xfu, xuzhang, yanyang
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.3.0-17.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1233826 Environment:
Last Closed: 2015-12-04 16:48:30 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:
Bug Depends On:    
Bug Blocks: 1233115, 1233826    

Comment 2 Miroslav Rezanina 2015-08-12 09:03:26 UTC
Fix included in qemu-kvm-rhev-2.3.0-17.el7

Comment 4 Shaolong Hu 2015-08-17 02:58:01 UTC
Verification of this bug is blocked by bug:

Bug 1251487 - qemu core dump when do drive mirror

Comment 7 Pei Zhang 2015-09-08 10:44:24 UTC
Summary: Verified this bug on x86_64. The block mirror job works well with granularity=8192, and guest also works well. So the verification results can prove that this bug has been fixed.

Verified:
Host versions:
kernel:3.10.0-314.el7.x86_64
qemu-kvm-rhev:qemu-kvm-rhev-2.3.0-22.el7.x86_64

Guest image info:
# qemu-img info iscsi://10.66.9.120:3260/iscsi.disk1/1
image: iscsi://10.66.9.120:3260/iscsi.disk1/1
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: unavailable
cluster_size: 65536
Format specific information:
    compat: 0.10
    refcount bits: 16

Steps:
1.boot guest
/usr/libexec/qemu-kvm -name rhel7.2 -machine pc-i440fx-rhel7.2.0,accel=kvm \
-cpu SandyBridge -m 2G,slots=256,maxmem=40G -numa node \
-smp 4,sockets=2,cores=2,threads=1 \
-uuid 82b1a01e-5f6c-4f5f-8d27-3855a74e6b61 \
-netdev tap,id=hostnet0 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=12:54:00:5c:88:61 \
-device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=16 \
-spice port=5900,addr=0.0.0.0,disable-ticketing,image-compression=off,seamless-migration=on \
-monitor stdio \
-serial unix:/tmp/monitor,server,nowait \
-qmp tcp:0:5555,server,nowait \
-drive file=iscsi://10.66.9.120:3260/iscsi.disk1/1,if=none,id=drive-scsi-disk0,format=qcow2,cache=none,werror=stop,rerror=stop \
-device virtio-scsi-pci,id=scsi0 \
-device scsi-hd,drive=drive-scsi-disk0,bus=scsi0.0,scsi-id=0,lun=0,id=scsi-disk0,bootindex=0 \


2.start mirror job,set granularity=8192, the mirror job works well.
{"execute":"drive-mirror","arguments":{"device":"drive-scsi-disk0","target":"/home/mirror1.qcow2","granularity":8192,"sync":"full","mode":"absolute-paths","format":"qcow2"}}
{"return": {}}
{"timestamp": {"seconds": 1441707774, "microseconds": 512686}, "event": "BLOCK_JOB_READY", "data": {"device": "drive-scsi-disk0", "len": 1127940096, "offset": 1127940096, "speed": 0, "type": "mirror"}}


3.check mirror job
{"execute":"query-block-jobs"}
{"return": [{"io-status": "ok", "device": "drive-scsi-disk0", "busy": false, "len": 1128046592, "offset": 1128046592, "paused": false, "speed": 0, "ready": true, "type": "mirror"}]}


4. dd 1G file in guest, and check disk size of mirror device. The mirror device also increase 1G which is expected.
#dd if=/dev/zero of=/home/test1 bs=1M count=1024

before dd
# qemu-img info /home/mirror1.qcow2 
image: /home/mirror1.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 1.1G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    refcount bits: 16
    corrupt: false

after dd
# qemu-img info /home/mirror1.qcow2 
image: /home/mirror1.qcow2
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 2.1G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false
    refcount bits: 16
    corrupt: false


So this bug has been fixed.

Comment 8 juzhang 2015-09-09 09:02:12 UTC
According to comment7, set this issue as verified.

Comment 10 errata-xmlrpc 2015-12-04 16:48:30 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-2015-2546.html