[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Problem after destroying domain when xm is configured to use Xen-API




Domain with ID '12' is destroyed. When VM.get_all_records() is called, the XendDomainInfo object of that domain seems to still be around. It fails when calling xc.sched_credit_domain_get(12).

[2007-06-20 13:12:08 7786] INFO (XendDomainInfo:2186) self.getDomid()= 0
[2007-06-20 13:12:08 7786] INFO (XendDomainInfo:2186) self.getDomid()= 12
[2007-06-20 13:12:15 7786] DEBUG (XendDomainInfo:1674) XendDomainInfo.destroy: domid=12
[2007-06-20 13:12:15 7786] DEBUG (XendDomainInfo:1692) XendDomainInfo.destroyDomain(12)
[2007-06-20 13:12:15 7786] DEBUG (XendDomainInfo:1342) Removing vbd/51713
[2007-06-20 13:12:15 7786] DEBUG (XendDomainInfo:559) dev = 51713
[2007-06-20 13:12:15 7786] DEBUG (XendDomainInfo:1342) Removing console/0
[2007-06-20 13:12:15 7786] DEBUG (XendDomainInfo:559) dev = 0
[2007-06-20 13:12:18 7786] INFO (XendDomainInfo:2186) self.getDomid()= 0
[2007-06-20 13:12:18 7786] INFO (XendDomainInfo:2186) self.getDomid()= 12
[2007-06-20 13:12:18 7786] ERROR (xmlrpclib2:166) Internal error handling VM.get_all_records
Traceback (most recent call last):
 File "//usr/lib64/python/xen/util/xmlrpclib2.py", line 131, in _marshaled_dispatch
   response = self._dispatch(method, params)
 File "/usr/lib64/python2.4/SimpleXMLRPCServer.py", line 406, in _dispatch
   return func(*params)
 File "//usr/lib64/python/xen/xend/XendAPI.py", line 221, in f
   return func(self, *args, **kwargs)
 File "//usr/lib64/python/xen/xend/XendAPI.py", line 256, in check_session
   return func(self, session, *args, **kwargs)
 File "//usr/lib64/python/xen/xend/XendAPI.py", line 561, in <lambda>
   return lambda s, session: \
 File "//usr/lib64/python/xen/xend/XendAPI.py", line 221, in f
   return func(self, *args, **kwargs)
 File "//usr/lib64/python/xen/xend/XendAPI.py", line 256, in check_session
   return func(self, session, *args, **kwargs)
 File "//usr/lib64/python/xen/xend/XendAPI.py", line 312, in <lambda>
   'VM', func, *args, **kwargs)
 File "//usr/lib64/python/xen/xend/XendAPI.py", line 268, in _check_ref
   return func(api, session, ref, *args, **kwargs)
 File "//usr/lib64/python/xen/xend/XendAPI.py", line 1643, in VM_get_record
   record = {
 File "//usr/lib64/python/xen/xend/XendDomainInfo.py", line 2187, in get_vcpus_params
   retval = xc.sched_credit_domain_get(self.getDomid())
Error: (3, 'No such process')

My fix for this problem is to reset the domid in cleanupDomain() so later on it does not call xc.sched_credit_domain_get() in get_vcpus_params, though I don't see that the same line was removed through some patch.

diff -r 739d698986e9 tools/python/xen/xend/XendDomainInfo.py
--- a/tools/python/xen/xend/XendDomainInfo.py                 Wed Jun 20 10:55:37 2007 +0100
+++ b/tools/python/xen/xend/XendDomainInfo.py                 Wed Jun 20 14:18:45 2007 -0400
@@ -1572,6 +1581,7 @@ class XendDomainInfo:
                log.exception("Removing domain path failed.")

            self._stateSet(DOM_STATE_HALTED)
+            self.domid = None
        finally:
            self.refresh_shutdown_lock.release()


 Stefan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.