
On 02/15/2013 07:13 AM, Philipp Hahn wrote:
If the running VM contains a writable raw image, creating snapshot fails internally in QEMU, but the error is not detected by libvirt. Success is still reported to the user, who will see the snapshot in libvirt, even they are NOT created by qemu.
Libvirt is supposed to already have code that refuses an internal snapshot on non-qcow2 files. We must have broken this somewhere in the recent past. It would be nice to figure out why qemuDomainSnapshotPrepare() is failing to do a proper job before we take this patch. :(
diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c index bc0a11d..5880ab9 100644 --- a/src/qemu/qemu_monitor_text.c +++ b/src/qemu/qemu_monitor_text.c @@ -2854,6 +2854,10 @@ int qemuMonitorTextCreateSnapshot(qemuMonitorPtr mon, const char *name) virReportError(VIR_ERR_OPERATION_FAILED, "%s", reply); goto cleanup; } + else if (strstr(reply, "does not support snapshots") != NULL) { + virReportError(VIR_ERR_OPERATION_FAILED, "%s", reply); + goto cleanup; + }
At any rate, this patch makes sense, once we _also_ solve the root cause of why we are getting here in the first place. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org