From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Fehlig Subject: reports of xend not starting Date: Thu, 04 Mar 2010 12:03:17 -0700 Message-ID: <4B9003F5.5080601@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050301060608040804080205" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Masaki Kanno Cc: xen-devel List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------050301060608040804080205 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit 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 --------------050301060608040804080205 Content-Type: text/x-patch; name="xend-state-store.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xend-state-store.patch" 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): --------------050301060608040804080205 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------050301060608040804080205--