There are certain cases where repairing a qcow2 image might actually damage it further (or rather, where repairing it has in fact damaged it further with the old qcow2 check implementation). This should not happen, so add a test for these cases. Furthermore, the repair function now repairs refblocks beyond the image end by resizing the image accordingly. Add several tests for this as well. Signed-off-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
111 lines
3.3 KiB
Plaintext
111 lines
3.3 KiB
Plaintext
QA output created by 108
|
|
|
|
=== Repairing an image without any refcount table ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
wrote 65536/65536 bytes at offset 0
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
ERROR cluster 0 refcount=0 reference=1
|
|
ERROR cluster 3 refcount=0 reference=1
|
|
ERROR cluster 4 refcount=0 reference=1
|
|
ERROR cluster 5 refcount=0 reference=1
|
|
Rebuilding refcount structure
|
|
The following inconsistencies were found and repaired:
|
|
|
|
0 leaked clusters
|
|
4 corruptions
|
|
|
|
Double checking the fixed image now...
|
|
No errors were found on the image.
|
|
read 65536/65536 bytes at offset 0
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Repairing unreferenced data cluster in new refblock area ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
wrote 111104/111104 bytes at offset 0
|
|
108.500 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
131072
|
|
wrote 512/512 bytes at offset 131072
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 512/512 bytes at offset 111104
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
ERROR cluster 256 refcount=0 reference=1
|
|
Rebuilding refcount structure
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
Repairing cluster 2 refcount=1 reference=0
|
|
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.
|
|
read 512/512 bytes at offset 111104
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Repairing refblock beyond the image end ===
|
|
|
|
|
|
--- Otherwise clean ---
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
Repairing refcount block 1 is outside image
|
|
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.
|
|
|
|
--- Refblock is unallocated ---
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
Repairing refcount block 1 is outside image
|
|
ERROR cluster 16 refcount=0 reference=1
|
|
Rebuilding refcount structure
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
Repairing cluster 2 refcount=1 reference=0
|
|
Repairing cluster 16 refcount=1 reference=0
|
|
The following inconsistencies were found and repaired:
|
|
|
|
0 leaked clusters
|
|
2 corruptions
|
|
|
|
Double checking the fixed image now...
|
|
No errors were found on the image.
|
|
|
|
--- Signed overflow after the refblock ---
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
Repairing refcount block 1 is outside image
|
|
ERROR could not resize image: Invalid argument
|
|
Rebuilding refcount structure
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
Repairing cluster 2 refcount=1 reference=0
|
|
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.
|
|
|
|
--- Unsigned overflow after the refblock ---
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
Repairing refcount block 1 is outside image
|
|
ERROR could not resize image: Invalid argument
|
|
Rebuilding refcount structure
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
Repairing cluster 2 refcount=1 reference=0
|
|
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.
|
|
*** done
|