WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] reports of xend not starting

To: Masaki Kanno <kanno.masaki@xxxxxxxxxxxxxx>
Subject: [Xen-devel] reports of xend not starting
From: Jim Fehlig <jfehlig@xxxxxxxxxx>
Date: Thu, 04 Mar 2010 12:03:17 -0700
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Thu, 04 Mar 2010 11:04:07 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.18 (X11/20081112)
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
<Prev in Thread] Current Thread [Next in Thread>