From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Fehlig Subject: [PATCH] Fix destruction of VMMetrics objects for managed domains Date: Tue, 15 Jul 2008 12:22:28 -0600 Message-ID: <487CEAE4.3030405@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010203070804010208000306" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------010203070804010208000306 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit While plugging a xend memory lead (c/s 18030), I introduced a bug in the case of managed domains. Managed domains continue to exist after shutdown and thus should not have their associated VMMetrics object destroyed until deleted. The bug actually manifested by a new -> start -> shutdown -> delete sequence of operations. Shutdown destroyed the VMMetrics object and delete tried to do the same :-): xen65:~/jim # xm del opensuse-10.3 Error: ('fa5160c0-bc7a-1459-974b-d3e023c717dd', 'VM_metrics') Usage: xm delete Initially, I was simply going to clean up exception handling but decided to go with the attached hack (*cough* ..., I mean patch) since users may be interested in VMMetrics even when the vm is powered-off. Regards, Jim Signed-off-by: Jim Fehlig --------------010203070804010208000306 Content-Type: text/x-patch; name="xend-vmmetrics-delete.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xend-vmmetrics-delete.patch" diff -r 750eee596adf tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Tue Jul 15 13:19:26 2008 +0100 +++ b/tools/python/xen/xend/XendDomainInfo.py Tue Jul 15 11:59:32 2008 -0600 @@ -2618,7 +2618,9 @@ class XendDomainInfo: def _cleanupVm(self): """Cleanup VM resources. Idempotent. Nothrow guarantee.""" - self.metrics.destroy() + from xen.xend import XendDomain + if not XendDomain.instance().is_domain_managed(self): + self.metrics.destroy() self._unwatchVm() try: --------------010203070804010208000306 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------010203070804010208000306--