Bug 974617 - qcow2 corruption bug in cluster allocation code
Summary: qcow2 corruption bug in cluster allocation code
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.5
Hardware: Unspecified
OS: Unspecified
Target Milestone: rc
: ---
Assignee: Kevin Wolf
QA Contact: Virtualization Bugs
: 993611 (view as bug list)
Depends On:
Blocks: 996151
TreeView+ depends on / blocked
Reported: 2013-06-14 15:44 UTC by Kevin Wolf
Modified: 2018-12-02 17:56 UTC (History)
15 users (show)

Fixed In Version: qemu-kvm-
Doc Type: Bug Fix
Doc Text:
* Previously, a counter variable was not correctly reset when restarting an allocating request for disk images using the qcow2 format, which resulted in corruption of these disk images in the cluster allocation code in some cases. This update changes the way that the number of available clusters are counted in the qcow2 format, and qcow2 disks are no longer corrupted in the described scenario.
Clone Of:
Last Closed: 2013-11-21 06:59:29 UTC
Target Upstream Version:

Attachments (Terms of Use)
Result - GOOD (183.10 KB, text/plain)
2013-06-16 08:13 UTC, Qunfang Zhang
no flags Details
Result - BAD (84.66 KB, text/plain)
2013-06-16 08:14 UTC, Qunfang Zhang
no flags Details

System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2013:1553 normal SHIPPED_LIVE Important: qemu-kvm security, bug fix, and enhancement update 2013-11-20 21:40:29 UTC

Description Kevin Wolf 2013-06-14 15:44:23 UTC
A counter variable isn't correctly reset when restarting an allocating request
in qcow2, resulting in corruption in some cases. For details, see
https://bugs.launchpad.net/ubuntu/quantal/+source/qemu-kvm/+bug/1189926 that
was opened against an Ubuntu release using the same code:

> [Impact]
> When using qemu-kvm-1.0 occasionally qcow2 disks will be corrupted.
> [Test Case]
> A test case can be downloaded here:
>     http://people.canonical.com/~arges/lp1189926/lnv-382.tgz
>     Extract the contents and run ./create-disk, then ./test-kvm to test the
>     currently installed KVM. Keep in mind that 100GB+ of disk is required to
>     run the test.
> [...]

This bug was introduced in RHEL 6 commit 73ea798d. The first release to contain
this commit is 6.3.

Comment 2 Qunfang Zhang 2013-06-16 08:11:39 UTC
Test this bug according to comment 0,on the following version[1] for twice, first time the result shows GOOD and the second time, the result shows BAD. Attachment will be uploaded.


Hi, Kevin
Could you help confirm my second log (BAD result), does this mean I reproduce the issue? 


Comment 3 Qunfang Zhang 2013-06-16 08:13:25 UTC
Created attachment 761775 [details]
Result - GOOD

Comment 4 Qunfang Zhang 2013-06-16 08:14:40 UTC
Created attachment 761776 [details]
Result - BAD

Comment 6 Kevin Wolf 2013-06-17 16:56:49 UTC
(In reply to Qunfang Zhang from comment #2)
> Hi, Kevin
> Could you help confirm my second log (BAD result), does this mean I
> reproduce the issue?

It's not my test case, so I have to guess the same as you have. But it looks to
me as if you reproduced the issue indeed. It also says:

*** localhost[0] Sun Jun 16 08:05:01 201 Error: Data corruption

Comment 10 Qunfang Zhang 2013-06-25 04:49:14 UTC
Reproduced again on qemu-kvm-rhev- on the first attempt. And then verified it for 3 times on qemu-kvm-rhev-, all the test pass. 

0. Make sure host has 100GB+ free disk. 
1. Download 
2. Uncompress the lnv-382.tgz
3. ./create-disk
4. Modified "test-kvm" and replace command "kvm" to "/usr/libexec/qemu-kvm".
5. ./test-kvm

Result: On the fixed version qemu-kvm-rhev-, the test passed. I tried 3 times and all passed. 

Return value: 0

Comment 17 errata-xmlrpc 2013-11-21 06:59:29 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.


Comment 18 Ademar Reis 2014-04-04 12:59:53 UTC
*** Bug 993611 has been marked as a duplicate of this bug. ***

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