qemuDomainObjEnterMonitor{,WithDriver} should not be called from async
jobs, only EnterMonitorAsync variant is allowed.
---
src/qemu/qemu_domain.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 7f1f8ee..4dda2e0 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -975,6 +975,9 @@ qemuDomainObjEnterMonitorInternal(struct qemud_driver *driver,
_("unexpected async job %d"), asyncJob);
return -1;
}
+ if (priv->job.asyncOwner != virThreadSelfID())
+ VIR_WARN("This thread doesn't seem to be the async job owner:
%d",
+ priv->job.asyncOwner);
if (qemuDomainObjBeginJobInternal(driver, driver_locked, obj,
QEMU_JOB_ASYNC_NESTED,
QEMU_ASYNC_JOB_NONE) < 0)
@@ -986,6 +989,9 @@ qemuDomainObjEnterMonitorInternal(struct qemud_driver *driver,
ignore_value(qemuDomainObjEndJob(driver, obj));
return -1;
}
+ } else if (priv->job.asyncOwner == virThreadSelfID()) {
+ VIR_WARN("This thread seems to be the async job owner; entering"
+ " monitor without asking for a nested job is dangerous");
}
qemuMonitorLock(priv->mon);
--
1.7.8.5