| Summary: | Backport qcow2 corruption prevention patches | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Kevin Wolf <kwolf> | |
| Component: | qemu-kvm | Assignee: | Hanna Czenczek <hreitz> | |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Virtualization Bugs <virt-bugs> | |
| Severity: | unspecified | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 7.0 | CC: | acathrow, chayang, hhuang, hreitz, huding, juzhang, michen, mrezanin, qzhang, sluo, virt-maint | |
| Target Milestone: | rc | |||
| Target Release: | --- | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | qemu-kvm-1.5.3-34.el7 | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1004420 (view as bug list) | Environment: | ||
| Last Closed: | 2014-06-13 10:08:46 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: | 1004420 | |||
Fix included in qemu-kvm-1.5.3-16.el7 Hi Max, Would you please answer the question of comment #3 ? Best regards Huiqing Hi Huding, Could you have a look and update the result in the bz? Best Regards, Junyi Fix included in qemu-kvm-1.5.3-34.el7 Reproduce this bug using the following version:
qemu-kvm-1.5.3-15.el7.x86_64
kernel-3.10.0-64.el7.x86_64
Run test 060 of qemu-iotests and the result is as following:
# ./check -qcow2 060
QEMU -- /usr/libexec/qemu-kvm
QEMU_IMG -- /usr/bin/qemu-img
QEMU_IO -- /usr/bin/qemu-io
IMGFMT -- qcow2 (compat=1.1)
IMGPROTO -- file
PLATFORM -- Linux/x86_64 dhcp-8-151 3.10.0-64.el7.x86_64
060 1s ... - output mismatch (see 060.out.bad)
--- 060.out 2014-01-13 11:34:39.458489446 +0800
+++ 060.out.bad 2014-01-13 17:18:26.944998958 +0800
@@ -8,10 +8,13 @@
1 errors were found on the image.
Data may be corrupted, or further writes to the image may corrupt it.
incompatible_features 0x0
-qcow2: Preventing invalid write on metadata (overlaps with active L1 table); image marked as corrupt.
-write failed: Input/output error
-incompatible_features 0x2
-qemu-io: can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corrupt; cannot be opened read/write
+open: invalid option -- 'o'
+no file open, try 'help open'
+open [-Crsn] [path] -- open the file specified by path
+incompatible_features 0x0
+open: invalid option -- 'o'
+no file open, try 'help open'
+open [-Crsn] [path] -- open the file specified by path
read 512/512 bytes at offset 0
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
@@ -24,58 +27,55 @@
2 errors were found on the image.
Data may be corrupted, or further writes to the image may corrupt it.
incompatible_features 0x0
-qcow2: Preventing invalid write on metadata (overlaps with refcount block); image marked as corrupt.
-write failed: Input/output error
-incompatible_features 0x2
-Repairing refcount block 0 refcount=2
+open: invalid option -- 'o'
+no file open, try 'help open'
+open [-Crsn] [path] -- open the file specified by path
+incompatible_features 0x0
+ERROR refcount block 0 refcount=2
+Repairing cluster 2 refcount=1 reference=2
+ERROR OFLAG_COPIED: offset=8000000000020000 refcount=2
+ERROR refcount block 0 refcount=2
The following inconsistencies were found and repaired:
0 leaked clusters
1 corruptions
Double checking the fixed image now...
-No errors were found on the image.
+
+2 errors were found on the image.
+Data may be corrupted, or further writes to the image may corrupt it.
incompatible_features 0x0
-wrote 512/512 bytes at offset 0
-512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+open: invalid option -- 'o'
+no file open, try 'help open'
+open [-Crsn] [path] -- open the file specified by path
incompatible_features 0x0
=== Testing cluster data reference into inactive L2 table ===
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
-wrote 512/512 bytes at offset 0
-512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 512/512 bytes at offset 0
-512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-ERROR cluster 4 refcount=1 reference=2
-Leaked cluster 9 refcount=1 reference=0
-
-1 errors were found on the image.
-Data may be corrupted, or further writes to the image may corrupt it.
-
-1 leaked clusters were found on the image.
-This means waste of disk space, but no harm to data.
+open: invalid option -- 'o'
+no file open, try 'help open'
+open [-Crsn] [path] -- open the file specified by path
+open: invalid option -- 'o'
+no file open, try 'help open'
+open [-Crsn] [path] -- open the file specified by path
+No errors were found on the image.
+incompatible_features 0x0
+open: invalid option -- 'o'
+no file open, try 'help open'
+open [-Crsn] [path] -- open the file specified by path
incompatible_features 0x0
-qcow2: Preventing invalid write on metadata (overlaps with inactive L2 table); image marked as corrupt.
-write failed: Input/output error
-incompatible_features 0x2
-Repairing cluster 4 refcount=1 reference=2
-Repairing cluster 9 refcount=1 reference=0
-Repairing OFLAG_COPIED data cluster: l2_entry=8000000000040000 refcount=2
-The following inconsistencies were found and repaired:
-
- 1 leaked clusters
- 2 corruptions
-
-Double checking the fixed image now...
No errors were found on the image.
incompatible_features 0x0
-wrote 512/512 bytes at offset 0
-512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+open: invalid option -- 'o'
+no file open, try 'help open'
+open [-Crsn] [path] -- open the file specified by path
incompatible_features 0x0
+Pattern verification failed at offset 0, 512 bytes
read 512/512 bytes at offset 0
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
No errors were found on the image.
+Pattern verification failed at offset 0, 512 bytes
read 512/512 bytes at offset 0
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
*** done
Failures: 060
Failed 1 of 1 tests
Reproduce this bug using the following version: qemu-kvm-1.5.3-35.el7.x86_64 kernel-3.10.0-64.el7.x86_64 Run test 060 of qemu-iotests and the result is as following: # ./check -qcow2 060 QEMU -- /usr/libexec/qemu-kvm QEMU_IMG -- /usr/bin/qemu-img QEMU_IO -- /usr/bin/qemu-io IMGFMT -- qcow2 (compat=1.1) IMGPROTO -- file PLATFORM -- Linux/x86_64 dhcp-8-151 3.10.0-64.el7.x86_64 060 1s ... Passed all 1 tests Based on the above result, I think this bug is fixed. (In reply to huiqingding from comment #11) > Reproduce this bug using the following version: Sorry, it should "Verify this bug using the following version" > qemu-kvm-1.5.3-35.el7.x86_64 > kernel-3.10.0-64.el7.x86_64 > > Run test 060 of qemu-iotests and the result is as following: > # ./check -qcow2 060 > QEMU -- /usr/libexec/qemu-kvm > QEMU_IMG -- /usr/bin/qemu-img > QEMU_IO -- /usr/bin/qemu-io > IMGFMT -- qcow2 (compat=1.1) > IMGPROTO -- file > PLATFORM -- Linux/x86_64 dhcp-8-151 3.10.0-64.el7.x86_64 > > 060 1s ... > Passed all 1 tests > > Based on the above result, I think this bug is fixed. This request was resolved in Red Hat Enterprise Linux 7.0. Contact your manager or support representative in case you have further questions about the request. |
Upstream commits d4ca092a to ca0eca91 implements sanity checks for writes to a qcow2 image as follows: > If a qcow2 image file becomes corrupted, any write may inadvertently > overwrite important metadata structures such as the L1 table. This > series adds functionality for detecting, preventing and (to some extent) > repairing such collisions. This is something that we'll want to have in RHEL 7.