Stefan Berger
2007-Jun-20 18:22 UTC
[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@lists.xensource.com
http://lists.xensource.com/xen-devel