| Summary: | qemu/qmp should report error and stop during block_stream to a non-enough-space block | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Qian Guo <qiguo> |
| Component: | qemu-kvm-rhev | Assignee: | Jeff Cody <jcody> |
| Status: | CLOSED NOTABUG | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 7.0 | CC: | acathrow, chayang, hhuang, juzhang, knoel, michen, shu, 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-07-29 19:19:52 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: | |
Most likely, the test 3G file was created with (mostly/all) zeros, and so the sectors were allocated in the qcow2 file as zero clusters. Especially since the md5sum matched the guest file, this doesn't appear to be an issue. Meant to close this as NOTABUG, rather than moving to MODIFIED. |
Description of problem: When test libiscsi backend virtual block, boot guest with a 5G real size data block and have more than 1G real data inside, then create a snapshot of it to a 1G real size libiscsi block, if block streaming to this snapshot, qemu/qmp can not report any error, and can finish successfully. Version-Release number of selected component (if applicable): # uname -r 3.10.0-57.el7.x86_64 ]# rpm -q qemu-kvm-rhev qemu-kvm-rhev-1.5.3-20.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1.Prepare 2 iscsi luns, one is 5G size block and another is 1G size. 5Gfile: 10.66.71.180:3260,1 iqn.10.66.71.180.target4 1Gfile: 10.66.71.180:3260,1 iqn.10.66.71.180.target8 2.Boot rhel7 guest with the 5G size data disk: # /usr/libexec/qemu-kvm -M pc -cpu Penryn,-kvm_pv_eoi -enable-kvm -m 4096 -smp 4,socket=1,cores=4,threads=1 -name rhel7 -nodefaults -nodefconfig -drive file=iscsi://10.66.71.180:3260/iqn.10.66.71.180.target1/1,if=none,id=drive-virtio-disk0,format=qcow2,werror=stop,rerror=stop,aio=native -device virtio-blk-pci,id=virtio-disk0,drive=drive-virtio-disk0 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -vnc :10 -vga qxl -global qxl-vga.vram_size=67108864 -monitor stdio -boot menu=on -netdev tap,id=netdev0,vhost=on,fd=7 -device virtio-net-pci,mac=46:c5:83:01:5f:4c,netdev=netdev0,id=net0 -device virtio-balloon-pci,id=b1 7<>/dev/tap7 -drive file=iscsi://10.66.71.180:3260/iqn.10.66.71.180.target4/1,if=none,id=drive-virtio-disk1,format=qcow2,werror=stop,rerror=stop,aio=native -device virtio-blk-pci,id=virtio-disk1,drive=drive-virtio-disk1 -qmp tcp:0:1111,server,nowait 3.Inside guest, in the data disk, create a 3G size file: # ll -h total 3.0G -rw-r--r--. 1 root root 3.0G Dec 5 17:06 3Gfile # md5sum 3Gfile 4322d422199eaccfbd36feb3da955b16 3Gfile 4.Create snapshot to the 1G size iscsi lun (qemu) snapshot_blkdev drive-virtio-disk1 iscsi://10.66.71.180:3260/iqn.10.66.71.180.target8/1 Formatting 'iscsi://10.66.71.180:3260/iqn.10.66.71.180.target8/1', fmt=qcow2 size=5368709120 backing_file='iscsi://10.66.71.180:3260/iqn.10.66.71.180.target4/1' backing_fmt='qcow2' encryption=off cluster_size=65536 lazy_refcounts=off (qemu) info block drive-virtio-disk0: removable=0 io-status=ok file=iscsi://10.66.71.180:3260/iqn.10.66.71.180.target1/1 ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0 drive-virtio-disk1: removable=0 io-status=ok file=iscsi://10.66.71.180:3260/iqn.10.66.71.180.target8/1 backing_file=iscsi://10.66.71.180:3260/iqn.10.66.71.180.target4/1 backing_file_depth=1 ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0 # qemu-img info iscsi://10.66.71.180:3260/iqn.10.66.71.180.target8/1 image: iscsi://10.66.71.180:3260/iqn.10.66.71.180.target8/1 file format: qcow2 virtual size: 5.0G (5368709120 bytes) disk size: unavailable cluster_size: 65536 backing file: iscsi://10.66.71.180:3260/iqn.10.66.71.180.target4/1 backing file format: qcow2 Format specific information: compat: 1.1 lazy refcounts: false 5.Block stream this device (qemu) snapshot_blkdev drive-virtio-disk1 iscsi://10.66.71.180:3260/iqn.10.66.71.180.target8/1 Actual results: 1.Block streaming can be finished successfully: (qemu) info block drive-virtio-disk0: removable=0 io-status=ok file=iscsi://10.66.71.180:3260/iqn.10.66.71.180.target1/1 ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0 drive-virtio-disk1: removable=0 io-status=ok file=iscsi://10.66.71.180:3260/iqn.10.66.71.180.target8/1 ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0 # qemu-img info iscsi://10.66.71.180:3260/iqn.10.66.71.180.target8/1 image: iscsi://10.66.71.180:3260/iqn.10.66.71.180.target8/1 file format: qcow2 virtual size: 5.0G (5368709120 bytes) disk size: unavailable cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: false 2.Boot guest agian with iscsi://10.66.71.180:3260/iqn.10.66.71.180.target8/1 The file is still existing, and md5sum value is same as above: # md5sum 3Gfile 4322d422199eaccfbd36feb3da955b16 3Gfile 3.But this physical block is only 1G size, this should be not right, I tried delete this file, and re-dd a more than 1G file, qemu/qmp report input/ouput io error, and guest access paused (this is the expected result). Expected results: Should not block stream successfully. Additional info: