On 11/15/2012 11:10 PM, Philipp Hahn wrote: > Hello Eric, hello List, > > As QEMU stores the snapshot data inside the qcow2 files, modifing them > directly might bring libvirts snapshot data out-of-sync. In my case a user > replaced a qcow2 with a new file re-using the old name. libvirt still thinks > that the snapshots are valid, while in reality the data is missing: > >> # virsh snapshot-revert snap-test foo >> error: internal error Child process (/usr/bin/qemu-img snapshot -a > foo /var/lib/libvirt/images/snap-test.qcow2) status unexpected: exit status 1 > > What would fix this scenario would be a validation mechanism within libvirt, > which walks all snapshots and checks, if each referenced qcow2 file actually > has the required snaphot data and mark the snapshot as invalid otherwise. > This would require an addition to the xml data to add such a flag. > > Or I could tell my users again not to re-use names still used by older > snapshots, but that doesn't work as you see ;-) Yes, and my plan has been to someday implement code in libvirt that reads actual qcow2 files (preferably reading the new qemu-img info JSON output mode of qemu 1.2) to learn all embedded snapshots in the image when requested by the user, and treat those as snapshots that have no libvirt metadata associated. Then we can use that to prevent collisions of pre-existing names, as well as flag libvirt snapshots that no longer make sense due to external edits to the qcow2 files. But someone has to do the work, and I haven't had time to look at it. Patches are welcome. -- Eric Blake eblake@xxxxxxxxxx +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list