[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] reports of xend not starting
Hi Kan, I've received several reports of xend not starting with the following traceback [2010-03-04 13:24:10 9096] ERROR (SrvDaemon:349) Exception starting xend ('044dde78-2896-cb88-2ada-3c03a73c35c1') 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 1187, in instance inst = XendNode() File "/usr/lib64/python2.6/site-packages/xen/xend/XendNode.py", line 161, in __init__ self._init_PSCSIs() File "/usr/lib64/python2.6/site-packages/xen/xend/XendNode.py", line 339, in _init_PSCSIs saved_HBA_uuid = saved_pscsis[pscsi_uuid].get('HBA', None) KeyError: '044dde78-2896-cb88-2ada-3c03a73c35c1' All reported cases involve fresh installs of dom0, so /var/lib/xend/state/ is empty. I wasn't able to reproduce the issue myself but a reporter was kind enough to try a debug patch. I found that vscsi_util.get_all_scsi_devices() returns several records containing same scsi_id. With /var/lib/xend/state/pscsi.xml non-existent and identical scsi_id, we access an element of saved_pscsis that does not exist. In fact, the list is empty. The attached patch catches the exception and allows xend to start but I'm not sure if this breaks other parts of the code. It looks safe to me but would like your review. Regards, Jim Index: xen-4.0.0-testing/tools/python/xen/xend/XendNode.py =================================================================== --- xen-4.0.0-testing.orig/tools/python/xen/xend/XendNode.py +++ xen-4.0.0-testing/tools/python/xen/xend/XendNode.py @@ -336,7 +336,10 @@ class XendNode: pscsi_uuid = uuid.createString() saved_pscsi_table[scsi_id] = pscsi_uuid else: - saved_HBA_uuid = saved_pscsis[pscsi_uuid].get('HBA', None) + try: + saved_HBA_uuid = saved_pscsis[pscsi_uuid].get('HBA', None) + except KeyError: + pass physical_host = int(pscsi_record['physical_HCTL'].split(':')[0]) if pscsi_HBA_table.has_key(physical_host): _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |