Hi All,
Here is the change I made to address the SIGSEGV we were seeing in libvirtd when attempting to create a new VM via virt-install:
-
We call virDomainDefFree after xenDaemonCreateXML returns to xenUnifiedDomainCreateXML.
-
xenUnifiedDomainCreateXML passes def to virGetDomain after XenDaemonCreateXML returns and before it calls virGetDomain.
-
xenUnifiedDomainCreateXML calls virDomainDefFree(def) when it’s done with def, so no need to free inside xenUnifiedDomainCreateXML.
------------------------ patch -------------------------
--- /tmp/xend_internal.c 2013-08-07 12:03:03.000000000 -0600
+++ src/xen/xend_internal.c 2013-08-07 08:51:49.000000000 -0600
@@ -2171,7 +2171,9 @@
if (xenDaemonDomainResume(conn, def) < 0)
goto error;
- virDomainDefFree(def);
+ // We call this a little later and still want to use def, so
+ // don't free it just yet.
+ //virDomainDefFree(def);
return 0;