john.levon@sun.com
2007-May-29 15:42 UTC
[Xen-devel] [PATCH] Don''t destroy domains on shutdown timeout
# HG changeset patch # User john.levon@sun.com # Date 1180453350 25200 # Node ID f9a32255575593805ccd9cd2ce481e89aec891cc # Parent 169ed8c1e7c79bd55d07110d9e784945b60da561 Don''t destroy domains on shutdown timeout Do not destroy domains on shutdown timeout: the administrator needs to be able to decide what to do if a domain does not shut down. Bump the timeout so a message is logged after no response to the request for five minutes. Signed-off-by: John Levon <john.levon@sun.com> diff --git a/tools/python/xen/xend/XendConstants.py b/tools/python/xen/xend/XendConstants.py --- a/tools/python/xen/xend/XendConstants.py +++ b/tools/python/xen/xend/XendConstants.py @@ -79,7 +79,7 @@ STATE_DOM_OK = 1 STATE_DOM_OK = 1 STATE_DOM_SHUTDOWN = 2 -SHUTDOWN_TIMEOUT = 30.0 +SHUTDOWN_TIMEOUT = (5 * 60.0) ZOMBIE_PREFIX = ''Zombie-'' diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -1112,8 +1112,8 @@ class XendDomainInfo: # failed. Ignore this domain. pass else: - # Domain is alive. If we are shutting it down, then check - # the timeout on that, and destroy it if necessary. + # Domain is alive. If we are shutting it down, log a message + # if it seems unresponsive. if xeninfo[''paused'']: self._stateSet(DOM_STATE_PAUSED) else: @@ -1122,11 +1122,11 @@ class XendDomainInfo: if self.shutdownStartTime: timeout = (SHUTDOWN_TIMEOUT - time.time() + self.shutdownStartTime) - if timeout < 0: + if (timeout < 0 and not self.readDom(''xend/unresponsive'')): log.info( "Domain shutdown timeout expired: name=%s id=%s", self.info[''name_label''], self.domid) - self.destroy() + self.storeDom(''xend/unresponsive'', ''True'') finally: self.refresh_shutdown_lock.release() _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel