Bug 1031883 - qemu-io error prompt "Operation is supported" is not expected
Summary: qemu-io error prompt "Operation is supported" is not expected
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.5
Hardware: Unspecified
OS: Unspecified
medium
low
Target Milestone: rc
: ---
Assignee: Jeff Cody
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-11-19 04:39 UTC by xhan
Modified: 2014-10-14 06:54 UTC (History)
10 users (show)

Fixed In Version: qemu-kvm-0.12.1.2-2.425.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-10-14 06:54:33 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2014:1490 0 normal SHIPPED_LIVE qemu-kvm bug fix and enhancement update 2014-10-14 01:28:27 UTC

Description xhan 2013-11-19 04:39:52 UTC
Description of problem:

Trigger qemu-io error, the prompt "Operation is supported" is not expected.

Expected prompt is "Operation not permitted". 

Version-Release number of selected component (if applicable):
kernel-2.6.32-430.el6.x86_64
qemu-kvm-0.12.1.2-2.415.el6_5.2.x86_64


How reproducible:
100%

Steps to Reproduce:
1. create qcow2 image 
qemu-img create -f qcow2 -o cluster_size=512 blkdebug.qcow2 1G

2. create the cfg file 

cat blkdebug.cfg
[inject-error]
event = "refblock_update_part"
immediately = "off"
errno = "1"


3. open qemu-io session
qemu-io blkdebug:blkdebug.cfg:blkdebug.qcow2
4. trigger the error
write -b 0 1G
 
Actual results:
qemu-io> write -b 0 1G
write failed: Operation not supported


Expected results:
#define EPERM            1      /* Operation not permitted */



Additional info:

Comment 2 Qunfang Zhang 2013-11-19 08:59:56 UTC
Hi, Xiangming

Is this a regressioin?  Thanks.

Comment 3 xhan 2013-11-19 09:41:20 UTC
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.

Comment 4 xhan 2013-11-19 09:57:54 UTC
After downgradation test, found the version which import this issue. 

qemu-kvm-390: pass
qemu-kvm-391: fail

Comment 11 Jeff Cody 2014-04-14 20:14:11 UTC
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.

Comment 12 Jeff Cody 2014-04-14 20:34:39 UTC
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

Comment 14 Miroslav Rezanina 2014-04-29 06:01:33 UTC
Fix included in qemu-kvm-0.12.1.2-2.425.el6

Comment 17 Shaolong Hu 2014-06-20 05:19:30 UTC
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.

Comment 18 errata-xmlrpc 2014-10-14 06:54: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.

http://rhn.redhat.com/errata/RHBA-2014-1490.html


Note You need to log in before you can comment on or make changes to this bug.