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(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org