2013-08-30 14:34:31 +02:00
|
|
|
QA output created by 060
|
|
|
|
|
|
|
|
=== Testing L2 reference into L1 ===
|
|
|
|
|
2014-12-09 08:38:03 +01:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2013-08-30 14:34:31 +02:00
|
|
|
ERROR cluster 3 refcount=1 reference=3
|
|
|
|
|
|
|
|
1 errors were found on the image.
|
|
|
|
Data may be corrupted, or further writes to the image may corrupt it.
|
2019-11-07 17:36:49 +01:00
|
|
|
incompatible_features []
|
2014-09-05 16:07:17 +02:00
|
|
|
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with active L1 table); further corruption events will be suppressed
|
2013-08-30 14:34:31 +02:00
|
|
|
write failed: Input/output error
|
2019-11-07 17:36:49 +01:00
|
|
|
incompatible_features [1]
|
2014-11-27 15:03:53 +01:00
|
|
|
image: TEST_DIR/t.IMGFMT
|
|
|
|
file format: IMGFMT
|
2019-04-17 19:11:01 +02:00
|
|
|
virtual size: 64 MiB (67108864 bytes)
|
2014-09-30 21:31:29 +02:00
|
|
|
cluster_size: 65536
|
|
|
|
Format specific information:
|
|
|
|
compat: 1.1
|
qcow2: introduce compression type feature
The patch adds some preparation parts for incompatible compression type
feature to qcow2 allowing the use different compression methods for
image clusters (de)compressing.
It is implied that the compression type is set on the image creation and
can be changed only later by image conversion, thus compression type
defines the only compression algorithm used for the image, and thus,
for all image clusters.
The goal of the feature is to add support of other compression methods
to qcow2. For example, ZSTD which is more effective on compression than ZLIB.
The default compression is ZLIB. Images created with ZLIB compression type
are backward compatible with older qemu versions.
Adding of the compression type breaks a number of tests because now the
compression type is reported on image creation and there are some changes
in the qcow2 header in size and offsets.
The tests are fixed in the following ways:
* filter out compression_type for many tests
* fix header size, feature table size and backing file offset
affected tests: 031, 036, 061, 080
header_size +=8: 1 byte compression type
7 bytes padding
feature_table += 48: incompatible feature compression type
backing_file_offset += 56 (8 + 48 -> header_change + feature_table_change)
* add "compression type" for test output matching when it isn't filtered
affected tests: 049, 060, 061, 065, 082, 085, 144, 182, 185, 198, 206,
242, 255, 274, 280
Signed-off-by: Denis Plotnikov <dplotnikov@virtuozzo.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
QAPI part:
Acked-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20200507082521.29210-2-dplotnikov@virtuozzo.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2020-05-07 10:25:18 +02:00
|
|
|
compression type: zlib
|
2014-09-30 21:31:29 +02:00
|
|
|
lazy refcounts: false
|
2015-02-10 21:28:44 +01:00
|
|
|
refcount bits: 16
|
2014-09-30 21:31:29 +02:00
|
|
|
corrupt: true
|
2019-04-28 17:54:44 +02:00
|
|
|
qemu-io: can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corrupt; cannot be opened read/write
|
qemu-io: Don't die on second open
Most callback commands in qemu-io return 0 to keep the interpreter
loop running, or 1 to quit immediately. However, open_f() just
passed through the return value of openfile(), which has different
semantics of returning 0 if a file was opened, or 1 on any failure.
As a result of mixing the return semantics, we are forcing the
qemu-io interpreter to exit early on any failures, which is rather
annoying when some of the failures are obviously trying to give
the user a hint of how to proceed (if we didn't then kill qemu-io
out from under the user's feet):
$ qemu-io
qemu-io> open foo
qemu-io> open foo
file open already, try 'help close'
$ echo $?
0
In general, we WANT openfile() to report failures, since it is the
function used in the form 'qemu-io -c "$something" no_such_file'
for performing one or more -c options on a single file, and it is
not worth attempting $something if the file itself cannot be opened.
So the solution is to fix open_f() to always return 0 (when we are
in interactive mode, even failure to open should not end the
session), and save the return value of openfile() for command line
use in main().
Note, however, that we do have some qemu-iotests that do 'qemu-io
-c "open file" -c "$something"'; such tests will now proceed to
attempt $something whether or not the open succeeded, the same way
as if the two commands had been attempted in interactive mode. As
such, the expected output for those tests has to be modified. But it
also means that it is now possible to use -c close and have a single
qemu-io command line operate on more than one file even without
using interactive mode. Although the '-c open' action is a subtle
change in behavior, remember that qemu-io is for debugging purposes,
so as long as it serves the needs of qemu-iotests while still being
reasonable for interactive use, it should not be a problem that we
are changing tests to the new behavior.
This has been awkward since at least as far back as commit
e3aff4f, in 2009.
Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2017-06-05 22:38:42 +02:00
|
|
|
no file open, try 'help open'
|
2013-08-30 14:34:31 +02:00
|
|
|
read 512/512 bytes at offset 0
|
|
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
|
|
|
|
=== Testing cluster data reference into refcount block ===
|
|
|
|
|
2014-12-09 08:38:03 +01:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2013-08-30 14:34:31 +02:00
|
|
|
ERROR refcount block 0 refcount=2
|
|
|
|
ERROR cluster 2 refcount=1 reference=2
|
|
|
|
|
|
|
|
2 errors were found on the image.
|
|
|
|
Data may be corrupted, or further writes to the image may corrupt it.
|
2019-11-07 17:36:49 +01:00
|
|
|
incompatible_features []
|
2014-09-05 16:07:17 +02:00
|
|
|
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with refcount block); further corruption events will be suppressed
|
2013-08-30 14:34:31 +02:00
|
|
|
write failed: Input/output error
|
2019-11-07 17:36:49 +01:00
|
|
|
incompatible_features [1]
|
2014-10-22 14:09:42 +02:00
|
|
|
ERROR refcount block 0 refcount=2
|
|
|
|
ERROR cluster 2 refcount=1 reference=2
|
|
|
|
Rebuilding refcount structure
|
|
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
|
|
Repairing cluster 2 refcount=2 reference=1
|
2013-08-30 14:34:31 +02:00
|
|
|
The following inconsistencies were found and repaired:
|
|
|
|
|
|
|
|
0 leaked clusters
|
2014-10-22 14:09:42 +02:00
|
|
|
2 corruptions
|
2013-08-30 14:34:31 +02:00
|
|
|
|
|
|
|
Double checking the fixed image now...
|
|
|
|
No errors were found on the image.
|
2019-11-07 17:36:49 +01:00
|
|
|
incompatible_features []
|
2013-08-30 14:34:31 +02:00
|
|
|
wrote 512/512 bytes at offset 0
|
|
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2019-11-07 17:36:49 +01:00
|
|
|
incompatible_features []
|
2013-10-11 14:02:11 +02:00
|
|
|
|
|
|
|
=== Testing cluster data reference into inactive L2 table ===
|
|
|
|
|
2014-12-09 08:38:03 +01:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2013-10-11 14:02:11 +02:00
|
|
|
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.
|
2019-11-07 17:36:49 +01:00
|
|
|
incompatible_features []
|
2014-09-05 16:07:17 +02:00
|
|
|
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with inactive L2 table); further corruption events will be suppressed
|
2013-10-11 14:02:11 +02:00
|
|
|
write failed: Input/output error
|
2019-11-07 17:36:49 +01:00
|
|
|
incompatible_features [1]
|
2014-10-22 14:09:42 +02:00
|
|
|
ERROR cluster 4 refcount=1 reference=2
|
|
|
|
Leaked cluster 9 refcount=1 reference=0
|
2013-10-11 14:02:11 +02:00
|
|
|
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.
|
2019-11-07 17:36:49 +01:00
|
|
|
incompatible_features []
|
2013-10-11 14:02:11 +02:00
|
|
|
wrote 512/512 bytes at offset 0
|
|
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2019-11-07 17:36:49 +01:00
|
|
|
incompatible_features []
|
2013-10-11 14:02:11 +02:00
|
|
|
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.
|
|
|
|
read 512/512 bytes at offset 0
|
|
|
|
512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2014-03-10 23:44:09 +01:00
|
|
|
|
|
|
|
=== Testing overlap while COW is in flight ===
|
|
|
|
|
2019-05-16 16:27:49 +02:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=1073741824
|
|
|
|
wrote 65536/65536 bytes at offset 0
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
iotests: Specify explicit backing format where sensible
There are many existing qcow2 images that specify a backing file but
no format. This has been the source of CVEs in the past, but has
become more prominent of a problem now that libvirt has switched to
-blockdev. With older -drive, at least the probing was always done by
qemu (so the only risk of a changed format between successive boots of
a guest was if qemu was upgraded and probed differently). But with
newer -blockdev, libvirt must specify a format; if libvirt guesses raw
where the image was formatted, this results in data corruption visible
to the guest; conversely, if libvirt guesses qcow2 where qemu was
using raw, this can result in potential security holes, so modern
libvirt instead refuses to use images without explicit backing format.
The change in libvirt to reject images without explicit backing format
has pointed out that a number of tools have been far too reliant on
probing in the past. It's time to set a better example in our own
iotests of properly setting this parameter.
iotest calls to create, rebase, and convert are all impacted to some
degree. It's a bit annoying that we are inconsistent on command line
- while all of those accept -o backing_file=...,backing_fmt=..., the
shortcuts are different: create and rebase have -b and -F, while
convert has -B but no -F. (amend has no shortcuts, but the previous
patch just deprecated the use of amend to change backing chains).
Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <20200706203954.341758-9-eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2020-07-06 22:39:52 +02:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1073741824 backing_file=TEST_DIR/t.IMGFMT.base backing_fmt=IMGFMT
|
2014-03-10 23:44:09 +01:00
|
|
|
wrote 65536/65536 bytes at offset 0
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
wrote 65536/65536 bytes at offset 536870912
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2014-09-05 16:07:17 +02:00
|
|
|
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with active L2 table); further corruption events will be suppressed
|
2014-03-10 23:44:09 +01:00
|
|
|
blkdebug: Suspended request '0'
|
|
|
|
write failed: Input/output error
|
|
|
|
blkdebug: Resuming request '0'
|
|
|
|
aio_write failed: No medium found
|
2014-08-07 22:47:54 +02:00
|
|
|
|
|
|
|
=== Testing unallocated image header ===
|
|
|
|
|
2014-12-09 08:38:03 +01:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2014-08-07 22:47:54 +02:00
|
|
|
wrote 65536/65536 bytes at offset 0
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2014-09-05 16:07:17 +02:00
|
|
|
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with qcow2_header); further corruption events will be suppressed
|
2014-08-07 22:47:54 +02:00
|
|
|
write failed: Input/output error
|
2014-09-05 16:07:19 +02:00
|
|
|
|
|
|
|
=== Testing unaligned L1 entry ===
|
|
|
|
|
2014-12-09 08:38:03 +01:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2014-09-05 16:07:19 +02:00
|
|
|
wrote 65536/65536 bytes at offset 0
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
qcow2: Marking image as corrupt: L2 table offset 0x42a00 unaligned (L1 index: 0); further corruption events will be suppressed
|
|
|
|
read failed: Input/output error
|
2015-01-19 21:49:04 +01:00
|
|
|
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)
|
|
|
|
qcow2: Marking image as corrupt: L2 table offset 0x42a00 unaligned (L1 index: 0); further corruption events will be suppressed
|
2018-05-09 23:00:18 +02:00
|
|
|
qemu-img: Failed to turn zero into data clusters: Input/output error
|
2014-09-05 16:07:19 +02:00
|
|
|
|
|
|
|
=== Testing unaligned L2 entry ===
|
|
|
|
|
2014-12-09 08:38:03 +01:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2014-09-05 16:07:19 +02:00
|
|
|
wrote 65536/65536 bytes at offset 0
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2017-05-07 02:05:46 +02:00
|
|
|
qcow2: Marking image as corrupt: Cluster allocation offset 0x52a00 unaligned (L2 offset: 0x40000, L2 index: 0); further corruption events will be suppressed
|
2014-09-05 16:07:19 +02:00
|
|
|
read failed: Input/output error
|
|
|
|
|
2015-01-19 21:49:04 +01:00
|
|
|
=== Testing unaligned pre-allocated zero cluster ===
|
|
|
|
|
|
|
|
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)
|
2017-05-08 19:13:02 +02:00
|
|
|
qcow2: Marking image as corrupt: Cluster allocation offset 0x52a00 unaligned (L2 offset: 0x40000, L2 index: 0); further corruption events will be suppressed
|
2018-05-09 23:00:18 +02:00
|
|
|
qemu-img: Failed to turn zero into data clusters: Input/output error
|
2015-01-19 21:49:04 +01:00
|
|
|
|
2014-09-05 16:07:19 +02:00
|
|
|
=== Testing unaligned reftable entry ===
|
|
|
|
|
2014-12-09 08:38:03 +01:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2014-09-05 16:07:19 +02:00
|
|
|
qcow2: Marking image as corrupt: Refblock offset 0x22a00 unaligned (reftable index: 0); further corruption events will be suppressed
|
|
|
|
write failed: Input/output error
|
|
|
|
|
|
|
|
=== Testing non-fatal corruption on freeing ===
|
|
|
|
|
2014-12-09 08:38:03 +01:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2014-09-05 16:07:19 +02:00
|
|
|
wrote 65536/65536 bytes at offset 0
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
qcow2: Image is corrupt: Cannot free unaligned cluster 0x52a00; further non-fatal corruption events will be suppressed
|
|
|
|
discard 65536/65536 bytes at offset 0
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
|
|
|
|
=== Testing read-only corruption report ===
|
|
|
|
|
2014-12-09 08:38:03 +01:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2014-09-05 16:07:19 +02:00
|
|
|
wrote 65536/65536 bytes at offset 0
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
2017-05-07 02:05:46 +02:00
|
|
|
qcow2: Image is corrupt: Cluster allocation offset 0x52a00 unaligned (L2 offset: 0x40000, L2 index: 0); further non-fatal corruption events will be suppressed
|
2014-09-05 16:07:19 +02:00
|
|
|
read failed: Input/output error
|
|
|
|
read failed: Input/output error
|
|
|
|
|
|
|
|
=== Testing non-fatal and then fatal corruption report ===
|
|
|
|
|
2014-12-09 08:38:03 +01:00
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2014-09-05 16:07:19 +02:00
|
|
|
wrote 131072/131072 bytes at offset 0
|
|
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
qcow2: Image is corrupt: Cannot free unaligned cluster 0x52a00; further non-fatal corruption events will be suppressed
|
2017-05-07 02:05:46 +02:00
|
|
|
qcow2: Marking image as corrupt: Cluster allocation offset 0x62a00 unaligned (L2 offset: 0x40000, L2 index: 0x1); further corruption events will be suppressed
|
2014-09-05 16:07:19 +02:00
|
|
|
discard 65536/65536 bytes at offset 0
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
read failed: Input/output error
|
2017-11-03 15:18:50 +01:00
|
|
|
|
2017-11-03 15:18:55 +01:00
|
|
|
=== Testing empty refcount table ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with refcount table); further corruption events will be suppressed
|
|
|
|
write failed: Input/output error
|
2017-11-08 13:13:06 +01:00
|
|
|
ERROR cluster 0 refcount=0 reference=1
|
|
|
|
ERROR cluster 1 refcount=0 reference=1
|
|
|
|
ERROR cluster 3 refcount=0 reference=1
|
|
|
|
Rebuilding refcount structure
|
|
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
|
|
The following inconsistencies were found and repaired:
|
|
|
|
|
|
|
|
0 leaked clusters
|
|
|
|
3 corruptions
|
|
|
|
|
|
|
|
Double checking the fixed image now...
|
|
|
|
No errors were found on the image.
|
2017-11-03 15:18:55 +01:00
|
|
|
|
2017-11-03 15:18:50 +01:00
|
|
|
=== Testing empty refcount table with valid L1 and L2 tables ===
|
|
|
|
|
|
|
|
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)
|
|
|
|
qcow2: Marking image as corrupt: Preventing invalid allocation of refcount block at offset 0; further corruption events will be suppressed
|
|
|
|
write failed: Input/output error
|
2017-11-08 13:13:06 +01:00
|
|
|
ERROR cluster 0 refcount=0 reference=1
|
|
|
|
ERROR cluster 1 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
|
|
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
|
|
The following inconsistencies were found and repaired:
|
|
|
|
|
|
|
|
0 leaked clusters
|
|
|
|
5 corruptions
|
|
|
|
|
|
|
|
Double checking the fixed image now...
|
|
|
|
No errors were found on the image.
|
2017-11-03 15:18:51 +01:00
|
|
|
|
|
|
|
=== Testing empty refcount block ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
qcow2: Marking image as corrupt: Preventing invalid allocation of L2 table at offset 0; further corruption events will be suppressed
|
|
|
|
write failed: Input/output error
|
2017-11-08 13:13:06 +01:00
|
|
|
ERROR cluster 0 refcount=0 reference=1
|
|
|
|
ERROR cluster 1 refcount=0 reference=1
|
|
|
|
ERROR cluster 2 refcount=0 reference=1
|
|
|
|
ERROR cluster 3 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
|
|
|
|
4 corruptions
|
|
|
|
|
|
|
|
Double checking the fixed image now...
|
|
|
|
No errors were found on the image.
|
2017-11-03 15:18:52 +01:00
|
|
|
|
|
|
|
=== Testing empty refcount block with compressed write ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
wrote 65536/65536 bytes at offset 65536
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
qcow2: Marking image as corrupt: Preventing invalid allocation of compressed cluster at offset 0; further corruption events will be suppressed
|
|
|
|
write failed: Input/output error
|
2017-11-08 13:13:06 +01:00
|
|
|
ERROR cluster 0 refcount=0 reference=1
|
|
|
|
ERROR cluster 1 refcount=0 reference=1
|
|
|
|
ERROR cluster 2 refcount=0 reference=1
|
|
|
|
ERROR cluster 3 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
|
|
|
|
4 corruptions
|
|
|
|
|
|
|
|
Double checking the fixed image now...
|
|
|
|
No errors were found on the image.
|
2017-11-03 15:18:53 +01:00
|
|
|
|
|
|
|
=== Testing zero refcount table size ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
2019-04-28 17:54:44 +02:00
|
|
|
qemu-io: can't open device TEST_DIR/t.IMGFMT: Image does not contain a reference count table
|
2017-11-08 13:13:06 +01:00
|
|
|
ERROR cluster 0 refcount=0 reference=1
|
|
|
|
ERROR cluster 3 refcount=0 reference=1
|
|
|
|
Rebuilding refcount structure
|
|
|
|
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.
|
2017-11-03 15:18:54 +01:00
|
|
|
|
|
|
|
=== Testing incorrect refcount table offset ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
qcow2: Marking image as corrupt: Preventing invalid allocation of L2 table at offset 0; further corruption events will be suppressed
|
|
|
|
write failed: Input/output error
|
2017-11-10 21:31:07 +01:00
|
|
|
|
|
|
|
=== Testing dirty corrupt image ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
ERROR refcount block 0 is not cluster aligned; refcount table entry corrupted
|
|
|
|
IMGFMT: Marking image as corrupt: Refblock offset 0xffff2a00 unaligned (reftable index: 0); further corruption events will be suppressed
|
|
|
|
Can't get refcount for cluster 0: Input/output error
|
|
|
|
Can't get refcount for cluster 1: Input/output error
|
|
|
|
Can't get refcount for cluster 2: Input/output error
|
|
|
|
Can't get refcount for cluster 3: Input/output error
|
|
|
|
Rebuilding refcount structure
|
|
|
|
Repairing cluster 1 refcount=1 reference=0
|
2019-04-28 17:54:44 +02:00
|
|
|
qemu-io: can't open device TEST_DIR/t.IMGFMT: Could not repair dirty image: Input/output error
|
2017-11-10 21:31:07 +01:00
|
|
|
--- Repairing ---
|
|
|
|
Leaked cluster 1 refcount=1 reference=0
|
|
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
|
|
The following inconsistencies were found and repaired:
|
|
|
|
|
|
|
|
1 leaked clusters
|
|
|
|
0 corruptions
|
|
|
|
|
|
|
|
Double checking the fixed image now...
|
|
|
|
No errors were found on the image.
|
2017-11-10 21:31:08 +01:00
|
|
|
|
|
|
|
=== Writing to an unaligned preallocated zero cluster ===
|
|
|
|
|
|
|
|
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)
|
|
|
|
discard 65536/65536 bytes at offset 0
|
|
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
qcow2: Marking image as corrupt: Preallocated zero cluster offset 0x2a00 unaligned (guest offset: 0); further corruption events will be suppressed
|
|
|
|
write failed: Input/output error
|
2017-11-10 21:37:59 +01:00
|
|
|
--- Repairing ---
|
|
|
|
Repairing offset=2a00: Preallocated zero cluster is not properly aligned; L2 entry corrupted.
|
|
|
|
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.
|
2017-11-10 21:31:09 +01:00
|
|
|
|
|
|
|
=== Discarding with an unaligned refblock ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
wrote 131072/131072 bytes at offset 0
|
|
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
qcow2: Marking image as corrupt: Refblock offset 0x2a00 unaligned (reftable index: 0); further corruption events will be suppressed
|
|
|
|
qcow2_free_clusters failed: Input/output error
|
|
|
|
discard failed: No medium found
|
|
|
|
--- Repairing ---
|
|
|
|
ERROR refcount block 0 is not cluster aligned; refcount table entry corrupted
|
|
|
|
qcow2: Marking image as corrupt: Refblock offset 0x2a00 unaligned (reftable index: 0); further corruption events will be suppressed
|
|
|
|
Can't get refcount for cluster 0: Input/output error
|
|
|
|
Can't get refcount for cluster 1: Input/output error
|
|
|
|
Can't get refcount for cluster 2: Input/output error
|
|
|
|
Can't get refcount for cluster 3: Input/output error
|
|
|
|
Can't get refcount for cluster 4: Input/output error
|
|
|
|
Can't get refcount for cluster 5: Input/output error
|
|
|
|
Can't get refcount for cluster 6: Input/output error
|
|
|
|
Rebuilding refcount structure
|
|
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
|
|
qemu-img: Check failed: No medium found
|
|
|
|
Leaked cluster 1 refcount=1 reference=0
|
|
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
|
|
The following inconsistencies were found and repaired:
|
|
|
|
|
|
|
|
1 leaked clusters
|
|
|
|
0 corruptions
|
|
|
|
|
|
|
|
Double checking the fixed image now...
|
|
|
|
No errors were found on the image.
|
2017-11-10 21:31:10 +01:00
|
|
|
|
|
|
|
=== Discarding an out-of-bounds refblock ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
qcow2: Marking image as corrupt: Refblock at 0xffffff00000000 is not covered by the refcount structures; further corruption events will be suppressed
|
|
|
|
qemu-img: Failed to discard unused refblocks: Input/output error
|
|
|
|
--- Checking and retrying ---
|
2019-04-17 19:11:01 +02:00
|
|
|
virtual size: 64 MiB (67108864 bytes)
|
2017-11-10 21:31:10 +01:00
|
|
|
No errors were found on the image.
|
|
|
|
Image resized.
|
2019-04-17 19:11:01 +02:00
|
|
|
virtual size: 32 MiB (33554432 bytes)
|
2017-11-10 21:31:10 +01:00
|
|
|
|
|
|
|
=== Discarding a non-covered in-bounds refblock ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
qcow2: Marking image as corrupt: Refblock at 0x1000000000 is not covered by the refcount structures; further corruption events will be suppressed
|
|
|
|
qemu-img: Failed to discard unused refblocks: Input/output error
|
|
|
|
--- Checking and retrying ---
|
2019-04-17 19:11:01 +02:00
|
|
|
virtual size: 64 MiB (67108864 bytes)
|
2017-11-10 21:31:10 +01:00
|
|
|
No errors were found on the image.
|
|
|
|
Image resized.
|
2019-04-17 19:11:01 +02:00
|
|
|
virtual size: 32 MiB (33554432 bytes)
|
2017-11-10 21:31:11 +01:00
|
|
|
|
|
|
|
=== Discarding a refblock covered by an unaligned refblock ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
qcow2: Marking image as corrupt: Cannot get entry from refcount block cache: Offset 0x200 is unaligned; further corruption events will be suppressed
|
|
|
|
qemu-img: Failed to discard unused refblocks: Input/output error
|
|
|
|
--- Repairing ---
|
|
|
|
Repairing refcount block 1 is outside image
|
|
|
|
ERROR refcount block 2 is not cluster aligned; refcount table entry corrupted
|
|
|
|
qcow2: Marking image as corrupt: Refblock offset 0x200 unaligned (reftable index: 0x2); further corruption events will be suppressed
|
|
|
|
Can't get refcount for cluster 1048576: Input/output error
|
|
|
|
Rebuilding refcount structure
|
|
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
|
|
Repairing cluster 2 refcount=1 reference=0
|
|
|
|
Repairing cluster 1048576 refcount=1 reference=0
|
|
|
|
qemu-img: Check failed: No medium found
|
|
|
|
Leaked cluster 1 refcount=1 reference=0
|
|
|
|
Leaked cluster 2 refcount=1 reference=0
|
|
|
|
Leaked cluster 1048576 refcount=1 reference=0
|
|
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
|
|
Repairing cluster 2 refcount=1 reference=0
|
|
|
|
Repairing cluster 1048576 refcount=1 reference=0
|
|
|
|
The following inconsistencies were found and repaired:
|
|
|
|
|
|
|
|
3 leaked clusters
|
|
|
|
0 corruptions
|
|
|
|
|
|
|
|
Double checking the fixed image now...
|
|
|
|
No errors were found on the image.
|
2017-11-06 15:53:45 +01:00
|
|
|
|
|
|
|
=== Testing the QEMU shutdown with a corrupted image ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with refcount table); further corruption events will be suppressed
|
|
|
|
QMP_VERSION
|
|
|
|
{"return": {}}
|
|
|
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_IMAGE_CORRUPTED", "data": {"device": "none0", "msg": "Preventing invalid write on metadata (overlaps with refcount table)", "offset": 65536, "node-name": "drive", "fatal": true, "size": 65536}}
|
|
|
|
write failed: Input/output error
|
|
|
|
{"return": ""}
|
|
|
|
{"return": {}}
|
2018-12-05 12:01:31 +01:00
|
|
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
|
2018-06-06 21:37:02 +02:00
|
|
|
|
|
|
|
=== Testing incoming inactive corrupted image ===
|
|
|
|
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
|
|
QMP_VERSION
|
|
|
|
{"return": {}}
|
|
|
|
qcow2: Image is corrupt: L2 table offset 0x2a2a2a00 unaligned (L1 index: 0); further non-fatal corruption events will be suppressed
|
|
|
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_IMAGE_CORRUPTED", "data": {"device": "", "msg": "L2 table offset 0x2a2a2a00 unaligned (L1 index: 0)", "node-name": "drive", "fatal": false}}
|
|
|
|
{"return": ""}
|
|
|
|
{"return": {}}
|
2018-12-05 12:01:31 +01:00
|
|
|
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
|
2018-06-06 21:37:02 +02:00
|
|
|
|
|
|
|
corrupt: false
|
2013-08-30 14:34:31 +02:00
|
|
|
*** done
|