The qcow2_make_empty() function is reached during 'qemu-img commit', in order to clear out ALL clusters of an image. However, if the image cannot use the fast code path (true if the image is format 0.10, or if the image contains a snapshot), the cluster size is larger than 512, and the image is larger than 2G in size, then our choice of sector_step causes problems. Since it is not cluster aligned, but qcow2_discard_clusters() silently ignores an unaligned head or tail, we are leaving clusters allocated. Enhance the testsuite to expose the flaw, and patch the problem by ensuring our step size is aligned. Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: John Snow <jsnow@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
237 lines
11 KiB
Plaintext
237 lines
11 KiB
Plaintext
QA output created by 097
|
|
|
|
=== Test pass 0.0 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=2202009600
|
|
Formatting 'TEST_DIR/t.IMGFMT.itmd', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.base
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.itmd
|
|
wrote 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 131072/131072 bytes at offset 2147352576
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Image committed.
|
|
read 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147287040
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147352576
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Offset Length File
|
|
0x7ffd0000 0x30000 TEST_DIR/t.IMGFMT.base
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x20000 TEST_DIR/t.IMGFMT.itmd
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x20000 TEST_DIR/t.IMGFMT.itmd
|
|
|
|
=== Test pass 0.1 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=2202009600
|
|
Formatting 'TEST_DIR/t.IMGFMT.itmd', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.base
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.itmd
|
|
wrote 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 131072/131072 bytes at offset 2147352576
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Image committed.
|
|
read 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147287040
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147352576
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Offset Length File
|
|
0x7ffd0000 0x30000 TEST_DIR/t.IMGFMT.base
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x20000 TEST_DIR/t.IMGFMT.itmd
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x20000 TEST_DIR/t.IMGFMT.itmd
|
|
|
|
=== Test pass 1.0 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=2202009600
|
|
Formatting 'TEST_DIR/t.IMGFMT.itmd', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.base
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.itmd
|
|
wrote 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 131072/131072 bytes at offset 2147352576
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Image committed.
|
|
read 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147287040
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147352576
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Offset Length File
|
|
0x7ffd0000 0x30000 TEST_DIR/t.IMGFMT.base
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x20000 TEST_DIR/t.IMGFMT.itmd
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x10000 TEST_DIR/t.IMGFMT.itmd
|
|
0x7fff0000 0x10000 TEST_DIR/t.IMGFMT
|
|
|
|
=== Test pass 1.1 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=2202009600
|
|
Formatting 'TEST_DIR/t.IMGFMT.itmd', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.base
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.itmd
|
|
wrote 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 131072/131072 bytes at offset 2147352576
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Image committed.
|
|
read 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147287040
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147352576
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Offset Length File
|
|
0x7ffd0000 0x30000 TEST_DIR/t.IMGFMT.base
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x20000 TEST_DIR/t.IMGFMT.itmd
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x10000 TEST_DIR/t.IMGFMT.itmd
|
|
0x7fff0000 0x10000 TEST_DIR/t.IMGFMT
|
|
|
|
=== Test pass 2.0 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=2202009600
|
|
Formatting 'TEST_DIR/t.IMGFMT.itmd', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.base
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.itmd
|
|
wrote 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 131072/131072 bytes at offset 2147352576
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Image committed.
|
|
read 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147287040
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147352576
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Offset Length File
|
|
0x7ffd0000 0x30000 TEST_DIR/t.IMGFMT.base
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x20000 TEST_DIR/t.IMGFMT.itmd
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x10000 TEST_DIR/t.IMGFMT.itmd
|
|
0x7fff0000 0x10000 TEST_DIR/t.IMGFMT
|
|
|
|
=== Test pass 2.1 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=2202009600
|
|
Formatting 'TEST_DIR/t.IMGFMT.itmd', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.base
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.itmd
|
|
wrote 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 131072/131072 bytes at offset 2147352576
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Image committed.
|
|
read 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147287040
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147352576
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Offset Length File
|
|
0x7ffd0000 0x30000 TEST_DIR/t.IMGFMT.base
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x20000 TEST_DIR/t.IMGFMT.itmd
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x10000 TEST_DIR/t.IMGFMT.itmd
|
|
0x7fff0000 0x10000 TEST_DIR/t.IMGFMT
|
|
|
|
=== Test pass 3.0 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=2202009600
|
|
Formatting 'TEST_DIR/t.IMGFMT.itmd', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.base
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.itmd
|
|
wrote 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 131072/131072 bytes at offset 2147352576
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Image committed.
|
|
read 65536/65536 bytes at offset 2147287040
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147352576
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Offset Length File
|
|
0x7ffd0000 0x30000 TEST_DIR/t.IMGFMT.base
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x20000 TEST_DIR/t.IMGFMT.itmd
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x10000 TEST_DIR/t.IMGFMT.itmd
|
|
0x7fff0000 0x10000 TEST_DIR/t.IMGFMT
|
|
|
|
=== Test pass 3.1 ===
|
|
|
|
Formatting 'TEST_DIR/t.IMGFMT.base', fmt=IMGFMT size=2202009600
|
|
Formatting 'TEST_DIR/t.IMGFMT.itmd', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.base
|
|
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2202009600 backing_file=TEST_DIR/t.IMGFMT.itmd
|
|
wrote 196608/196608 bytes at offset 2147287040
|
|
192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 131072/131072 bytes at offset 2147352576
|
|
128 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
wrote 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Image committed.
|
|
read 65536/65536 bytes at offset 2147287040
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147352576
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
read 65536/65536 bytes at offset 2147418112
|
|
64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
|
Offset Length File
|
|
0x7ffd0000 0x30000 TEST_DIR/t.IMGFMT.base
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x20000 TEST_DIR/t.IMGFMT.itmd
|
|
Offset Length File
|
|
0x7ffd0000 0x10000 TEST_DIR/t.IMGFMT.base
|
|
0x7ffe0000 0x10000 TEST_DIR/t.IMGFMT.itmd
|
|
0x7fff0000 0x10000 TEST_DIR/t.IMGFMT
|
|
*** done
|