drive_mirror crashes on full disk copy of a resized disk with a backing file

Bug #1103868 reported by Vish Ishaya
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Vish Ishaya

Bug Description

This bug was discovered using libvirt on ubuntu with a build of qemu 1.3 but it is trivailly reproducible with the curent git version.

Repro steps:

qemu-img create -f qcow2 base 32M
qemu-img create -f qcow2 -o backing_file=base disk
qemu-img resize /home/vishvananda/disk 64M
qemu-system-x86_64 -drive file=disk,id=vda -vnc :1 -monitor stdio
QEMU 1.3.0 monitor - type 'help' for more information
(qemu) drive_mirror -f vda test
Formatting 'test', fmt=qcow2 size=67108864 encryption=off cluster_size=65536 lazy_refcounts=off
qemu-system-x86_64: /build/buildd/qemu-1.3.0+dfsg/block/mirror.c:129: mirror_run: Assertion `n > 0' failed.
Aborted

Note that the command works just fine if the front image is not resized:

qemu-img create -f qcow2 base 32M
qemu-img create -f qcow2 -o backing_file=base disk
qemu-system-x86_64 -drive file=disk,id=vda -vnc :1 -monitor stdio

or if the backing file is resized as well:

qemu-img create -f qcow2 base 32M
qemu-img create -f qcow2 -o backing_file=base disk
qemu-img resize /home/vishvananda/disk 64M
qemu-img resize /home/vishvananda/base 64M
qemu-system-x86_64 -drive file=disk,id=vda -vnc :1 -monitor stdio

or if we don't use -f when creating the mirror:

QEMU 1.3.0 monitor - type 'help' for more information
(qemu) drive_mirror vda test
Formatting 'test', fmt=qcow2 size=33554432 backing_file='base' backing_fmt='qcow2' encryption=off cluster_size=65536 lazy_refcounts=off

although in this final case the mirror is created the same size as the backing file which seems wrong:

qemu-img info test
image: test
file format: qcow2
virtual size: 32M (33554432 bytes)
disk size: 196K
cluster_size: 65536
backing file: base
backing file format: qcow2

summary: - drive_mirror broken on full disk copy of a resized disk with a backing
+ drive_mirror crashes on full disk copy of a resized disk with a backing
file
Revision history for this message
Vish Ishaya (vishvananda) wrote :

separated the final size issue into a separate bug here:

https://bugs.launchpad.net/qemu/+bug/1103903

Revision history for this message
Vish Ishaya (vishvananda) wrote :

Haven't found a good workaround for this. Best I've come up with is to use the workaround described in the other bug and then coalesce the files afterwards via qemu-img convert

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

Patch has been included here:
http://git.qemu.org/?p=qemu.git;a=commitdiff;h=63ba17d39f1a8d262b31e
... so I think it's OK to close this bug now.

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.