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;