Bug 1031883
| Summary: | qemu-io error prompt "Operation is supported" is not expected | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | xhan |
| Component: | qemu-kvm | Assignee: | Jeff Cody <jcody> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | low | Docs Contact: | |
| Priority: | medium | ||
| Version: | 6.5 | CC: | bsarathy, chayang, jcody, juzhang, michen, mkenneth, qzhang, rbalakri, shu, virt-maint |
| Target Milestone: | rc | Keywords: | Regression |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | qemu-kvm-0.12.1.2-2.425.el6 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2014-10-14 06:54: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: | |||
|
Description
xhan
2013-11-19 04:39:52 UTC
Hi, Xiangming Is this a regressioin? Thanks. Have tested this issue on qemu-kvm-0.12.1.2-2.415.el6.x86_64. The issue exists on the version. So this is not regression imported on Z stream. After downgradation test, found the version which import this issue. qemu-kvm-390: pass qemu-kvm-391: fail It turns out this issue is a bit more complex than just an incorrect error message. This started to occur after commit f0d6b82: 'block: Produce zeros when protocols reading beyond end of file'. In that commit, rather than always calling the driver bdrv_co_readv() method, the length is checked by a call to bdrv_getlength(), and the number of sectors computed. If there are 0 sectors in the BDS file, the read is short circuited and the function returns success. When using a blkdebug filter, the initial length as recorded in the BDS is 0 after bdrv_open(). bdrv_getlength() will call the driver .bdrv_getlength() method, however in the current codebase the blkdebug driver did not have a .bdrv_getlength() method. The solution is to backport commit e130225587cb0d48b2c0b7c04b6bf9c95fe75ac9: 'blkdebug: pass getlength to underlying file', which implements .bdrv_getlength() by passing it along to its underlying file format. This will manifest itself also by incorrectly identifying the file as 'raw' rather than 'qcow2': ./qemu-img info blkdebug:blkdebug.cfg:blkdebug.qcow2 image: blkdebug:blkdebug.cfg:blkdebug.qcow2 file format: raw virtual size: 0 (0 bytes) disk size: 260K After the fix (backport of e130225): ./qemu-img info blkdebug:blkdebug.cfg:blkdebug.qcow2 image: blkdebug:blkdebug.cfg:blkdebug.qcow2 file format: qcow2 virtual size: 1.0G (1073741824 bytes) disk size: 260K cluster_size: 512 Fix included in qemu-kvm-0.12.1.2-2.425.el6 Verified on qemu-kvm-rhev-0.12.1.2-2.427.el6.x86_64: with steps in comment 0, after step 4: qemu-io> write -b 0 1G write failed: Operation not permitted Verified. 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. http://rhn.redhat.com/errata/RHBA-2014-1490.html |