This patch adds a check in xend that prevents a user from trying to

destroy Dom0.  Currently, xm does not return an error for this case.
Xend tries to destroy dom0 and leaves the system in an unstable
state.  Subsequent attempts to create a domain result in the following
error message:

  Error: Error creating domain: (106, 'Transport endpoint is already \
  connected')

This will fix bugzilla bug #243

Signed-off-by: Dan Smith <danms@us.ibm.com>
This commit is contained in:
emellor@ewan committed 2005-09-22 11:35:35 +01:00
1 parent 79e2c4bff3
commit 3f69932eed
1 file changed
+7 -2
+7 -2
View File
@@ -42,6 +42,7 @@ from xen.xend.xenstore.xsutil import GetDomainPath
__all__ = [ "XendDomain" ]
SHUTDOWN_TIMEOUT = 30
PRIV_DOMAIN = 0
def is_dead(dom):
return dom['crashed'] or dom['shutdown'] or (
@@ -163,7 +164,7 @@ class XendDomain:
self.domain_restarts()
def dom0_setup(self):
dom0 = self.domain_lookup(0)
dom0 = self.domain_lookup(PRIV_DOMAIN)
if not dom0:
dom0 = self.dom0_unknown()
dom0.dom0_init_store()
@@ -331,7 +332,7 @@ class XendDomain:
return self.domains.get(id)
def dom0_unknown(self):
dom0 = 0
dom0 = PRIV_DOMAIN
uuid = None
info = self.xen_domain(dom0)
dompath = GetDomainPath(dom0)
@@ -499,6 +500,10 @@ class XendDomain:
@param domid: domain id
"""
if domid == PRIV_DOMAIN:
raise XendError("Cannot destroy priviliged domain %i" % domid)
self.domain_restart_schedule(domid, reason, force=True)
dominfo = self.domain_lookup(domid)
if dominfo:
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.