qcow2-refcount: qemu-io crashes on 'discard' command

Bug #1349972 reported by Maria Kustova
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

qemu-io is killed by SIGIOT at the 'discard' command on the image having no refcount information.

Sequence:
1. Unpack test.img and backing_img.qed in the same directory (see the attached archives for images)
2. Make a copy of test.img to copy.img (qemu-io modifies the image before being kill, therefore the image backup is necessary)
3. Run the command

qemu-io copy.img -c 'discard 2210816 2856448'

Result: qemu-io is killed by SIGIOT with the reason:

qemu-io: block/qcow2-refcount.c:468: update_refcount_discard: Assertion `d->bytes + length == new_end - new_start' failed.

The image was generated by the image fuzzer.

qemu.git HEAD: 1d80eb7a680d

Revision history for this message
Maria Kustova (maria-k-o) wrote :
Revision history for this message
Sam Azer (samazer) wrote :

FWIW:

While trying to restore (apply) a snapshot on a Windows VM (ie: qemu-img snapshot -a snapshotname windows.qcow2 where the image file is 150gb in size,) I got the above error:

qemu-img: /build/buildd/qemu-2.0.0+dfsg/block/qcow2-refcount.c:467: update_refcount_discard: Assertion `d->bytes + length == new_end - new_start' failed.

(My VM is now broken.)

This is the only reference that I found using Google.

HTH

Revision history for this message
Kevin Wolf (kwolf-redhat) wrote :

I sent a patch that fixes the original problem that Maria reported. It's hard to say whether this is the same problem as you saw, Sam, but it's quite possible.

Changed in qemu:
status: New → In Progress
Revision history for this message
Thomas Huth (th-huth) wrote :

Fix has been included here:
http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ecbda7a22576591a84
... so I think it should be OK now to mark this ticket as fixed.

Changed in qemu:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.