xend: Fix destruction of VMMetrics objects for managed domains
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 16 Jul 2008 10:12:36 +0000 (11:12 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 16 Jul 2008 10:12:36 +0000 (11:12 +0100)
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 :-):

Signed-off-by: Jim Fehlig <jfehlig@novell.com>
tools/python/xen/xend/XendDomainInfo.py

index b6514cde0c19a194aed11a8771557aa74fa2afb1..505200915863b2ce6f47e2671be071fed7709439 100644 (file)
@@ -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: