From 75a5c8225b2e9c16cc785c4b31dc45b0b186a17c Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 30 Apr 2012 15:48:57 +0100 Subject: [PATCH] Ensure libvirt_lxc process loads the live XML config Currently the libvirt_lxc process uses VIR_DOMAIN_XML_INACTIVE when loading the XML for the container. This means it loses any dynamic data such as the, just allocated, SELinux label. Further there is an inconsistency in the libvirt LXC driver whereby it saves the live config XML and then later overwrites the file with the live status XML instead. Add a comment about this for future reference. * src/lxc/lxc_controller.c: Remove VIR_DOMAIN_XML_INACTIVE when loading XML * src/lxc/lxc_driver.c: Add comment about inconsistent config file formats Signed-off-by: Daniel P. Berrange (cherry picked from commit eb06375a84c841b769ba4ca89f060ea72a66f1f8) --- src/lxc/lxc_controller.c | 2 +- src/lxc/lxc_driver.c | 14 ++++++-------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index 26174232da..1e3ec30d56 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -1781,7 +1781,7 @@ int main(int argc, char *argv[]) if ((def = virDomainDefParseFile(caps, configFile, 1 << VIR_DOMAIN_VIRT_LXC, - VIR_DOMAIN_XML_INACTIVE)) == NULL) + 0)) == NULL) goto cleanup; if (def->nnets != nveths) { diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 7e7affd75a..ffdd4ac5ac 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -1955,17 +1955,15 @@ static int lxcVmStart(virConnectPtr conn, lxcProcessAutoDestroyAdd(driver, vm, conn) < 0) goto error; - /* - * Again, need to save the live configuration, because the function - * requires vm->def->id != -1 to save tty info surely. - */ - if (virDomainSaveConfig(driver->stateDir, vm->def) < 0) - goto error; - if (virDomainObjSetDefTransient(driver->caps, vm, false) < 0) goto error; - /* Write domain status to disk. */ + /* Write domain status to disk. + * + * XXX: Earlier we wrote the plain "live" domain XML to this + * location for the benefit of libvirt_lxc. We're now overwriting + * it with the live status XML instead. This is a (currently + * harmless) inconsistency we should fix one day */ if (virDomainSaveStatus(driver->caps, driver->stateDir, vm) < 0) goto error; -- GitLab