 cbc4ae2d1a
			
		
	
	
		cbc4ae2d1a
		
	
	
	
	
		
			
			In my Out-Of-Band test, "check -qcow2 060" fail with this:
  --- /home/peterx/git/qemu/tests/qemu-iotests/060.out
  +++ /home/peterx/git/qemu/bin/tests/qemu-iotests/060.out.bad
  @@ -427,8 +427,8 @@
  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 0x2a2a2a0
  0 unaligned (L1 index: 0)", "node-name": "drive", "fatal": false}}
  read failed: Input/output error
  +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_IMAGE_CORRUPTED", "data": {"device": "", "msg": "L2 table offset 0x2a2a2a0
  0 unaligned (L1 index: 0)", "node-name": "drive", "fatal": false}}
  {"return": ""}
  {"return": {}}
  {"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP},
  "event": "SHUTDOWN", "data": {"guest": false}}
The order of the event and the in/out error line is swapped.  I didn't
dig up the reason, but AFAIU what we want to verify is the event rather
than stderr.  Let's drop the stderr line directly for this test.
Signed-off-by: Peter Xu <peterx@redhat.com>
Message-Id: <20180620073223.31964-5-peterx@redhat.com>
[Commit message touched up]
Signed-off-by: Markus Armbruster <armbru@redhat.com>
		
	
			
		
			
				
	
	
		
			437 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			437 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| QA output created by 060
 | |
| 
 | |
| === Testing L2 reference into L1 ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| 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.
 | |
| incompatible_features     0x0
 | |
| qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with active L1 table); further corruption events will be suppressed
 | |
| write failed: Input/output error
 | |
| incompatible_features     0x2
 | |
| image: TEST_DIR/t.IMGFMT
 | |
| file format: IMGFMT
 | |
| virtual size: 64M (67108864 bytes)
 | |
| cluster_size: 65536
 | |
| Format specific information:
 | |
|     compat: 1.1
 | |
|     lazy refcounts: false
 | |
|     refcount bits: 16
 | |
|     corrupt: true
 | |
| can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corrupt; cannot be opened read/write
 | |
| no file open, try 'help open'
 | |
| 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 ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| 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.
 | |
| incompatible_features     0x0
 | |
| qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with refcount block); further corruption events will be suppressed
 | |
| write failed: Input/output error
 | |
| incompatible_features     0x2
 | |
| 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
 | |
| 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.
 | |
| 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)
 | |
| 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.
 | |
| incompatible_features     0x0
 | |
| qcow2: Marking image as corrupt: Preventing invalid write on metadata (overlaps with inactive L2 table); further corruption events will be suppressed
 | |
| write failed: Input/output error
 | |
| incompatible_features     0x2
 | |
| ERROR cluster 4 refcount=1 reference=2
 | |
| Leaked cluster 9 refcount=1 reference=0
 | |
| 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)
 | |
| incompatible_features     0x0
 | |
| 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)
 | |
| 
 | |
| === Testing overlap while COW is in flight ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', 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)
 | |
| wrote 65536/65536 bytes at offset 536870912
 | |
| 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: Preventing invalid write on metadata (overlaps with active L2 table); further corruption events will be suppressed
 | |
| blkdebug: Suspended request '0'
 | |
| write failed: Input/output error
 | |
| blkdebug: Resuming request '0'
 | |
| aio_write failed: No medium found
 | |
| 
 | |
| === Testing unallocated image header ===
 | |
| 
 | |
| 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 write on metadata (overlaps with qcow2_header); further corruption events will be suppressed
 | |
| write failed: Input/output error
 | |
| 
 | |
| === Testing unaligned L1 entry ===
 | |
| 
 | |
| 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
 | |
| read failed: Input/output error
 | |
| 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
 | |
| qemu-img: Failed to turn zero into data clusters: Input/output error
 | |
| 
 | |
| === Testing unaligned L2 entry ===
 | |
| 
 | |
| 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: Cluster allocation offset 0x52a00 unaligned (L2 offset: 0x40000, L2 index: 0); further corruption events will be suppressed
 | |
| read failed: Input/output error
 | |
| 
 | |
| === 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)
 | |
| qcow2: Marking image as corrupt: Cluster allocation offset 0x52a00 unaligned (L2 offset: 0x40000, L2 index: 0); further corruption events will be suppressed
 | |
| qemu-img: Failed to turn zero into data clusters: Input/output error
 | |
| 
 | |
| === Testing unaligned reftable entry ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| 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 ===
 | |
| 
 | |
| 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: 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 ===
 | |
| 
 | |
| 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: Image is corrupt: Cluster allocation offset 0x52a00 unaligned (L2 offset: 0x40000, L2 index: 0); further non-fatal corruption events will be suppressed
 | |
| read failed: Input/output error
 | |
| read failed: Input/output error
 | |
| 
 | |
| === Testing non-fatal and then fatal corruption report ===
 | |
| 
 | |
| 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: Image is corrupt: Cannot free unaligned cluster 0x52a00; further non-fatal corruption events will be suppressed
 | |
| qcow2: Marking image as corrupt: Cluster allocation offset 0x62a00 unaligned (L2 offset: 0x40000, L2 index: 0x1); further 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)
 | |
| read failed: Input/output error
 | |
| 
 | |
| === 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
 | |
| 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.
 | |
| 
 | |
| === 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
 | |
| 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.
 | |
| 
 | |
| === 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
 | |
| 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.
 | |
| 
 | |
| === 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
 | |
| 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.
 | |
| 
 | |
| === Testing zero refcount table size ===
 | |
| 
 | |
| Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
 | |
| can't open device TEST_DIR/t.IMGFMT: Image does not contain a reference count table
 | |
| 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.
 | |
| 
 | |
| === 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
 | |
| 
 | |
| === 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
 | |
| can't open device TEST_DIR/t.IMGFMT: Could not repair dirty image: Input/output error
 | |
| --- 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.
 | |
| 
 | |
| === 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
 | |
| --- 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.
 | |
| 
 | |
| === 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.
 | |
| 
 | |
| === 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 ---
 | |
| virtual size: 64M (67108864 bytes)
 | |
| No errors were found on the image.
 | |
| Image resized.
 | |
| virtual size: 32M (33554432 bytes)
 | |
| 
 | |
| === 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 ---
 | |
| virtual size: 64M (67108864 bytes)
 | |
| No errors were found on the image.
 | |
| Image resized.
 | |
| virtual size: 32M (33554432 bytes)
 | |
| 
 | |
| === 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.
 | |
| 
 | |
| === 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": {}}
 | |
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}}
 | |
| 
 | |
| === 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": {}}
 | |
| {"timestamp": {"seconds":  TIMESTAMP, "microseconds":  TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}}
 | |
| 
 | |
|     corrupt: false
 | |
| *** done
 |