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

[Xen-devel] reports of xend not starting



Hi,

I received reports of xend not starting with following traceback:

[2010-03-22 14:11:56 4943] ERROR (SrvDaemon:349) Exception starting xend (ord()
expected a character, but string of length 0 found)
Traceback (most recent call last):
  File "/usr/lib64/python2.6/site-packages/xen/xend/server/SrvDaemon.py", line
341, in run
    servers = SrvServer.create()
  File "/usr/lib64/python2.6/site-packages/xen/xend/server/SrvServer.py", line
261, in create
    root.putChild('xend', SrvRoot())
  File "/usr/lib64/python2.6/site-packages/xen/xend/server/SrvRoot.py", line
40, in __init__
    self.get(name)
  File "/usr/lib64/python2.6/site-packages/xen/web/SrvDir.py", line 84, in get
    val = val.getobj()
  File "/usr/lib64/python2.6/site-packages/xen/web/SrvDir.py", line 52, in
getobj
    self.obj = klassobj()
  File "/usr/lib64/python2.6/site-packages/xen/xend/server/SrvNode.py", line
30, in __init__
    self.xn = XendNode.instance()
  File "/usr/lib64/python2.6/site-packages/xen/xend/XendNode.py", line 1191, in
instance
    inst = XendNode()
  File "/usr/lib64/python2.6/site-packages/xen/xend/XendNode.py", line 159, in
__init__
    self._init_PPCIs()
  File "/usr/lib64/python2.6/site-packages/xen/xend/XendNode.py", line 282, in
_init_PPCIs
    for pci_dev in PciUtil.get_all_pci_devices():
  File "/usr/lib64/python2.6/site-packages/xen/util/pci.py", line 469, in
get_all_pci_devices
    return map(PciDevice, get_all_pci_dict())
  File "/usr/lib64/python2.6/site-packages/xen/util/pci.py", line 693, in
__init__
    self.get_info_from_sysfs()
  File "/usr/lib64/python2.6/site-packages/xen/util/pci.py", line 1256, in
get_info_from_sysfs
    self.find_capability(0x11)
  File "/usr/lib64/python2.6/site-packages/xen/util/pci.py", line 1229, in
find_capability
    capa_pointer = ord(conf_file.read(1))
TypeError: ord() expected a character, but string of length 0 found
[2010-03-22 14:11:56 4942] INFO (SrvDaemon:220) Xend exited with status 1.


I won't pretend to know the code but looks like some protection against
read() returning an empty string (EOF) is in order.  Is the attached
patch appropriate?

Regards,
Jim

    Signed-off-by:  Jim Fehlig <jfehlig@xxxxxxxxxx>


Index: xen-4.0.0-testing/tools/python/xen/util/pci.py
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/util/pci.py
+++ xen-4.0.0-testing/tools/python/xen/util/pci.py
@@ -1251,6 +1251,9 @@ class PciDevice:
         except IOError, (errno, strerr):
             raise PciDeviceParseError(('Failed to locate sysfs mount: %s: %s 
(%d)' %
                 (PROC_PCI_PATH, strerr, errno)))
+        except TypeError, err:
+            log.debug("Caught TypeError '%s'" % err)
+            pass
 
     def get_info_from_sysfs(self):
         self.find_capability(0x11)
_______________________________________________
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®.