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

RE: [Xen-devel] XenDomainInfo.py: Can hang in _releaseDevices.


  • To: "Petersson, Mats" <Mats.Petersson@xxxxxxx>, "xen devel" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: "Petersson, Mats" <Mats.Petersson@xxxxxxx>
  • Date: Mon, 14 May 2007 15:52:28 +0200
  • Delivery-date: Mon, 14 May 2007 06:51:23 -0700
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AceWKlV1RY33IpcAR/Ww59bULilUvgABFOmQ
  • Thread-topic: [Xen-devel] XenDomainInfo.py: Can hang in _releaseDevices.

Attached patch fixes the problem I described a while back where some
"stuff" gets left in xenstore when a domain is destroyed, and also fixes
the below described hang case by trying 100 times before it gives up. 

This may not be the right way to fix this, so I'm happy to fix/update as
necessary. [This is also my first "python patch" where code is added, so
excuse me if there's something wrong there...]

Signed off by: mats.petersson@xxxxxxx

--
Mats

> -----Original Message-----
> From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx 
> [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Petersson, Mats
> Sent: 14 May 2007 14:18
> To: xen devel
> Subject: [Xen-devel] XenDomainInfo.py: Can hang in _releaseDevices.
> 
> A section of code does: 
> 
>          while True:
>             t = xstransact("%s/device" % self.dompath)
>             for devclass in XendDevices.valid_devices():
>                 for dev in t.list(devclass):
>                     try:
>                         t.remove(dev)
>                     except:
>                         # Log and swallow any exceptions in removal --
>                         # there's nothing more we can do.
>                         log.exception(
>                            "Device release failed: %s; %s; %s",
>                            self.info['name_label'], devclass, dev)
>             if t.commit():
>                 break
> 
> If commit() doesn't work because (for example) the device has already
> been removed or not correctly created, it will hang xend forever. [I
> managed to create such a case when adding some extra case to 
> remove some
> other stuff]. 
> 
> Wouldn't it be a good idea to make a "best attempt" of doing 
> this, say,
> 10 or 100 times, then give up?
> 
> --
> Mats
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
> 
> 
> 

Attachment: patch.remove_console_backpath
Description: patch.remove_console_backpath

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