The RFC version [1] was ACKed, but I have found out that we could then cause inconsistency by calling virDomainCreateXML() or Restore() calls etc. This series is basically the same apart from the fact that it is rebased on current master and then one simple diff [2] is added to PATCH 5/8. [1] https://www.redhat.com/archives/libvir-list/2015-September/msg00698.html [2] diff to the previous version: diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 16f26acf4839..c8291be2b7b5 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2875,6 +2875,14 @@ virDomainObjListAddLocked(virDomainObjListPtr doms, } } + if (vm->def->parseError) { + virReportError(VIR_ERR_XML_ERROR, + _("domain '%s' was not loaded due to an XML error " + "(%s), please redefine it"), + vm->def->name, vm->def->parseError); + virDomainObjEndAPI(&vm); + } + virDomainObjAssignDef(vm, def, !!(flags & VIR_DOMAIN_OBJ_LIST_ADD_LIVE), -- Martin Kletzander (8): conf, virsh: Add new domain shutoff reason qemu: Few whitespace cleanups conf: Extract name-parsing into its own function conf: Extract UUID parsing into its own function conf: Optionally keep domains with invalid XML, but don't allow starting them qemu: Don't lookup invalid domains unless specified otherwise qemu: Prepare basic APIs to handle invalid defs qemu: Load domains with invalid XML on start include/libvirt/libvirt-domain.h | 2 + src/bhyve/bhyve_driver.c | 2 + src/conf/domain_conf.c | 191 +++++++++++++++++++++++++++++++++------ src/conf/domain_conf.h | 5 + src/libxl/libxl_driver.c | 3 + src/lxc/lxc_driver.c | 3 + src/qemu/qemu_driver.c | 64 ++++++++++--- src/uml/uml_driver.c | 2 + tools/virsh-domain-monitor.c | 3 +- 9 files changed, 234 insertions(+), 41 deletions(-) -- 2.6.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list