On 07/07/2011 05:34 PM, Jiri Denemark wrote:
Query commands are safe to be called during long running jobs (such as migration). This patch makes them all work without the need to special-case every single one of them.
Git bisect says that this was the culprit commit that broke 'virsh managedsave'.
+static int qemuDomainObjEnterMonitorInternal(struct qemud_driver *driver, virDomainObjPtr obj) { qemuDomainObjPrivatePtr priv = obj->privateData; + if (priv->job.active == QEMU_JOB_NONE&& priv->job.asyncJob) { + if (qemuDomainObjBeginNestedJob(obj)< 0) + return -1; + if (!virDomainObjIsActive(obj)) { + qemuReportError(VIR_ERR_OPERATION_FAILED, "%s", + _("domain is no longer running")); + return -1; + } + }
I think this is the problem. Doing a managed save will eventually make the qemu process go away, so we reach a point where we cannot issue a query monitor command to see how the save is progressing. But this function only checks that vm is still active for QEMU_JOB_NONE, not for QEMU_ASYNC_JOB_SAVE.
I'm trying out a patch now... -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list