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

Re: [Xen-devel] [patch]Make xend to take care of dead qemu-dm process


  • To: shawn <xiaowei.hu@xxxxxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
  • Date: Mon, 26 May 2008 08:35:26 +0100
  • Delivery-date: Mon, 26 May 2008 00:35:33 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: Aci/AxBWTtF2oSr2Ed2kDQAWy6hiGQ==
  • Thread-topic: [Xen-devel] [patch]Make xend to take care of dead qemu-dm process

Please re-send with a changeset comment and a signed-off-by line.

 -- Keir

On 26/5/08 08:28, "shawn" <xiaowei.hu@xxxxxxxxxx> wrote:

> Hi all,
> 
> I changed this patch ,put the domain into  crashed domains,the called
> refreshShutdown immediately.
> Yes,this works fine now ,could do what specified ïon crashed in the
> domain config file.
> 
> Resending this patch ,Please review it again!
> 
> Thanks Keir for your suggestion:)
> 
> Thanks all.
> 
> Regards,
> xiaowei
> 
> 
> --- ./tools/python/xen/xend/server/SrvServer.py.org 2008-05-21
> 13:53:08.000000000 +0800
> +++ ./tools/python/xen/xend/server/SrvServer.py 2008-05-26
> 15:16:39.000000000 +0800
> @@ -44,6 +44,7 @@
>  import re
>  import time
>  import signal
> +import os
>  from threading import Thread
>  
>  from xen.web.httpserver import HttpServer, UnixHttpServer
> @@ -148,14 +149,27 @@
>  
>              # Reaching this point means we can auto start domains
>              try:
> -                xenddomain().autostart_domains()
> +                dom = xenddomain()
> +                dom.autostart_domains()
>              except Exception, e:
>                  log.exception("Failed while autostarting domains")
>  
>              # loop to keep main thread alive until it receives a
> SIGTERM
>              self.running = True
>              while self.running:
> -                time.sleep(100000000)
> +                # loop to destroy those hvm domain that whoes DM has
> dead unexpectedly.
> +                for item in dom.domains.values():
> +                    if item.info.is_hvm():
> +                        device_model_pid =
> item.gatherDom(('image/device-model-pid', str))
> +                        dm_stat_cmd = "ps -o stat --no-headers
> -p"+device_model_pid
> +                        dm_stat =
> os.popen(dm_stat_cmd).readline().rstrip()
> +                        if dm_stat == 'Z':
> +                            log.warn("Devices Model for domain " +
> str(item.domid) + "was killed unexpectedly")
> +                            item.info['crashed'] = 1
> +                            item.refreshShutdown(item.info)
> +                        else:
> +                            continue
> +                time.sleep(30)
>                  
>              if self.reloadingConfig:
>                  log.info("Restarting all XML-RPC and Xen-API
> servers...")
> 



_______________________________________________
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®.