From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [PATCH] Prevent xend from destroying Dom0 Date: Wed, 21 Sep 2005 17:25:34 -0500 Message-ID: <4331DDDE.50903@us.ibm.com> References: <87ek7icfl1.fsf@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <87ek7icfl1.fsf@us.ibm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Dan Smith Cc: Xen Developers List-Id: xen-devel@lists.xenproject.org Is it possible to pass DOMID_SELF to domain_lookup? Regards, Anthony Liguori Dan Smith wrote: >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 > > >------------------------------------------------------------------------ > >diff -r 9776d03bf108 tools/python/xen/xend/XendDomain.py >--- a/tools/python/xen/xend/XendDomain.py Tue Sep 20 13:07:10 2005 >+++ b/tools/python/xen/xend/XendDomain.py Wed Sep 21 13:01:41 2005 >@@ -45,6 +45,7 @@ > __all__ = [ "XendDomain" ] > > SHUTDOWN_TIMEOUT = 30 >+PRIV_DOMAIN = 0 > > def is_dead(dom): > return dom['crashed'] or dom['shutdown'] or ( >@@ -168,7 +169,7 @@ > 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() >@@ -337,7 +338,7 @@ > return self.domains.get(id) > > def dom0_unknown(self): >- dom0 = 0 >+ dom0 = PRIV_DOMAIN > uuid = None > info = self.xen_domain(dom0) > dompath = GetDomainPath(dom0) >@@ -505,6 +506,10 @@ > > @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: > > >------------------------------------------------------------------------ > > > > >------------------------------------------------------------------------ > >_______________________________________________ >Xen-devel mailing list >Xen-devel@lists.xensource.com >http://lists.xensource.com/xen-devel > >