d1402b5026
Looking at the qcow2 code that is riddled with error_report() calls, this is really how it should have been from the start. Along the way, turn the target_version/current_version comparisons at the beginning of qcow2_downgrade() into assertions (the caller has to make sure these conditions are met), and rephrase the error message on using compat=1.1 to get refcount widths other than 16 bits. Signed-off-by: Max Reitz <mreitz@redhat.com> Message-id: 20180509210023.20283-3-mreitz@redhat.com Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Max Reitz <mreitz@redhat.com>
492 lines
17 KiB
Plaintext
492 lines
17 KiB
Plaintext
QA output created by 061
|
|
|
|
=== Testing version downgrade with zero expansion ===
|
|
|
|
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)
|
|
magic 0x514649fb
|
|
version 3
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x10000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x0
|
|
compatible_features 0x1
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 104
|
|
|
|
Header extension:
|
|
magic 0x6803f857
|
|
length 144
|
|
data <binary>
|
|
|
|
magic 0x514649fb
|
|
version 2
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x10000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x0
|
|
compatible_features 0x0
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 72
|
|
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
|
|
=== Testing version downgrade with zero expansion and 4K cache entries ===
|
|
|
|
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)
|
|
wrote 131072/131072 bytes at offset 33554432
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
128 KiB (0x20000) bytes allocated at offset 0 bytes (0x0)
|
|
31.875 MiB (0x1fe0000) bytes not allocated at offset 128 KiB (0x20000)
|
|
128 KiB (0x20000) bytes allocated at offset 32 MiB (0x2000000)
|
|
31.875 MiB (0x1fe0000) bytes not allocated at offset 32.125 MiB (0x2020000)
|
|
magic 0x514649fb
|
|
version 3
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x10000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x0
|
|
compatible_features 0x1
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 104
|
|
|
|
Header extension:
|
|
magic 0x6803f857
|
|
length 144
|
|
data <binary>
|
|
|
|
magic 0x514649fb
|
|
version 2
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x10000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x0
|
|
compatible_features 0x0
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 72
|
|
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 131072/131072 bytes at offset 33554432
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
64 MiB (0x4000000) bytes not allocated at offset 0 bytes (0x0)
|
|
No errors were found on the image.
|
|
|
|
=== Testing dirty version downgrade ===
|
|
|
|
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)
|
|
./common.rc: Killed ( if [ "${VALGRIND_QEMU}" == "y" ]; then
|
|
exec valgrind --log-file="${VALGRIND_LOGFILE}" --error-exitcode=99 "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@";
|
|
else
|
|
exec "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@";
|
|
fi )
|
|
magic 0x514649fb
|
|
version 3
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x10000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x1
|
|
compatible_features 0x1
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 104
|
|
|
|
Header extension:
|
|
magic 0x6803f857
|
|
length 144
|
|
data <binary>
|
|
|
|
ERROR cluster 5 refcount=0 reference=1
|
|
ERROR cluster 6 refcount=0 reference=1
|
|
Rebuilding refcount structure
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
Repairing cluster 2 refcount=1 reference=0
|
|
magic 0x514649fb
|
|
version 2
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x80000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x0
|
|
compatible_features 0x0
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 72
|
|
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
|
|
=== Testing version downgrade with unknown compat/autoclear flags ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
magic 0x514649fb
|
|
version 3
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x10000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x0
|
|
compatible_features 0x40000000000
|
|
autoclear_features 0x40000000000
|
|
refcount_order 4
|
|
header_length 104
|
|
|
|
Header extension:
|
|
magic 0x6803f857
|
|
length 144
|
|
data <binary>
|
|
|
|
magic 0x514649fb
|
|
version 2
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x10000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x0
|
|
compatible_features 0x0
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 72
|
|
|
|
No errors were found on the image.
|
|
|
|
=== Testing version upgrade and resize ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
wrote 65536/65536 bytes at offset 44040192
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
magic 0x514649fb
|
|
version 2
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x10000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x0
|
|
compatible_features 0x0
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 72
|
|
|
|
magic 0x514649fb
|
|
version 3
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 134217728
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x10000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x0
|
|
compatible_features 0x1
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 104
|
|
|
|
Header extension:
|
|
magic 0x6803f857
|
|
length 144
|
|
data <binary>
|
|
|
|
read 65536/65536 bytes at offset 44040192
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
|
|
=== Testing dirty lazy_refcounts=off ===
|
|
|
|
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)
|
|
./common.rc: Killed ( if [ "${VALGRIND_QEMU}" == "y" ]; then
|
|
exec valgrind --log-file="${VALGRIND_LOGFILE}" --error-exitcode=99 "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@";
|
|
else
|
|
exec "$QEMU_IO_PROG" $QEMU_IO_ARGS "$@";
|
|
fi )
|
|
magic 0x514649fb
|
|
version 3
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x10000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x1
|
|
compatible_features 0x1
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 104
|
|
|
|
Header extension:
|
|
magic 0x6803f857
|
|
length 144
|
|
data <binary>
|
|
|
|
ERROR cluster 5 refcount=0 reference=1
|
|
ERROR cluster 6 refcount=0 reference=1
|
|
Rebuilding refcount structure
|
|
Repairing cluster 1 refcount=1 reference=0
|
|
Repairing cluster 2 refcount=1 reference=0
|
|
magic 0x514649fb
|
|
version 3
|
|
backing_file_offset 0x0
|
|
backing_file_size 0x0
|
|
cluster_bits 16
|
|
size 67108864
|
|
crypt_method 0
|
|
l1_size 1
|
|
l1_table_offset 0x30000
|
|
refcount_table_offset 0x80000
|
|
refcount_table_clusters 1
|
|
nb_snapshots 0
|
|
snapshot_offset 0x0
|
|
incompatible_features 0x0
|
|
compatible_features 0x0
|
|
autoclear_features 0x0
|
|
refcount_order 4
|
|
header_length 104
|
|
|
|
Header extension:
|
|
magic 0x6803f857
|
|
length 144
|
|
data <binary>
|
|
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
|
|
=== Testing backing file ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', 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)
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
|
|
=== Testing invalid configurations ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
qemu-img: Lazy refcounts only supported with compatibility level 1.1 and above (use compat=1.1 or greater)
|
|
qemu-img: Lazy refcounts only supported with compatibility level 1.1 and above (use compat=1.1 or greater)
|
|
qemu-img: Unknown compatibility level 0.42
|
|
qemu-img: Invalid parameter 'foo'
|
|
qemu-img: Changing the cluster size is not supported
|
|
qemu-img: Changing the encryption flag is not supported
|
|
qemu-img: Cannot change preallocation mode
|
|
|
|
=== Testing correct handling of unset value ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
Should work:
|
|
Should not work:
|
|
qemu-img: Changing the cluster size is not supported
|
|
|
|
=== Testing zero expansion on inactive clusters ===
|
|
|
|
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)
|
|
wrote 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Testing zero expansion on shared L2 table ===
|
|
|
|
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)
|
|
No errors were found on the image.
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Testing zero expansion on backed image ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', 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)
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.base
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 0
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
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)
|
|
read 65536/65536 bytes at offset 65536
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Testing zero expansion on backed inactive clusters ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', 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)
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 65536/65536 bytes at offset 0
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
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)
|
|
read 65536/65536 bytes at offset 65536
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Testing zero expansion on backed image with shared L2 table ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', 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)
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 backing_file=TEST_DIR/t.IMGFMT.base
|
|
wrote 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
read 131072/131072 bytes at offset 0
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Testing preallocated zero expansion on full image ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
|
wrote 67108864/67108864 bytes at offset 0
|
|
64 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 67108864/67108864 bytes at offset 0
|
|
64 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
No errors were found on the image.
|
|
read 67108864/67108864 bytes at offset 0
|
|
64 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
|
|
=== Testing progress report without snapshot ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=4294967296
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=4294967296 backing_file=TEST_DIR/t.IMGFMT.base
|
|
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 1073741824
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 2147483648
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 3221225472
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(0.00/100%)
|
|
(12.50/100%)
|
|
(25.00/100%)
|
|
(37.50/100%)
|
|
(50.00/100%)
|
|
(62.50/100%)
|
|
(75.00/100%)
|
|
(87.50/100%)
|
|
(100.00/100%)
|
|
(100.00/100%)
|
|
No errors were found on the image.
|
|
|
|
=== Testing progress report with snapshot ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=4294967296
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=4294967296 backing_file=TEST_DIR/t.IMGFMT.base
|
|
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 1073741824
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 2147483648
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 3221225472
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
(0.00/100%)
|
|
(6.25/100%)
|
|
(12.50/100%)
|
|
(18.75/100%)
|
|
(25.00/100%)
|
|
(31.25/100%)
|
|
(37.50/100%)
|
|
(43.75/100%)
|
|
(50.00/100%)
|
|
(56.25/100%)
|
|
(62.50/100%)
|
|
(68.75/100%)
|
|
(75.00/100%)
|
|
(81.25/100%)
|
|
(87.50/100%)
|
|
(93.75/100%)
|
|
(100.00/100%)
|
|
(100.00/100%)
|
|
No errors were found on the image.
|
|
*** done
|