The UML inotify handler would kill off guests when certain conditions arise, but it forgot to remove transient guests from the list of domains * src/uml/uml_driver.c: Cleanup transient guests --- src/uml/uml_driver.c | 18 +++++++++++++++++- 1 files changed, 17 insertions(+), 1 deletions(-) diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index b2d11b3..91591f1 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -311,6 +311,11 @@ reread: umlShutdownVMDaemon(NULL, driver, dom, VIR_DOMAIN_SHUTOFF_SHUTDOWN); virDomainAuditStop(dom, "shutdown"); + if (!dom->persistent) { + virDomainRemoveInactive(&driver->domains, + dom); + dom = NULL; + } } else if (e->mask & (IN_CREATE | IN_MODIFY)) { VIR_DEBUG("Got inotify domain startup '%s'", name); if (virDomainObjIsActive(dom)) { @@ -332,14 +337,25 @@ reread: umlShutdownVMDaemon(NULL, driver, dom, VIR_DOMAIN_SHUTOFF_FAILED); virDomainAuditStop(dom, "failed"); + if (!dom->persistent) { + virDomainRemoveInactive(&driver->domains, + dom); + dom = NULL; + } } else if (umlIdentifyChrPTY(driver, dom) < 0) { VIR_WARN("Could not identify charater devices for new domain"); umlShutdownVMDaemon(NULL, driver, dom, VIR_DOMAIN_SHUTOFF_FAILED); virDomainAuditStop(dom, "failed"); + if (!dom->persistent) { + virDomainRemoveInactive(&driver->domains, + dom); + dom = NULL; + } } } - virDomainObjUnlock(dom); + if (dom) + virDomainObjUnlock(dom); } cleanup: -- 1.7.4.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list