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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Thu, 04 Mar 2010 12:03:17 -0700, Jim Fehlig wrote:>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. >Hi Jim, Thanks for your report and patch. Are your SCSI devices multi-path configuration? If so, the configuration isn''t supported by pvSCSI of XenAPI yet. I added a small fix to your patch. Could you send your Signed-off-by line? Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com> Best regards, Kan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Masaki Kanno wrote:> Thu, 04 Mar 2010 12:03:17 -0700, Jim Fehlig wrote: > > >> 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. >> >> > > Hi Jim, > > Thanks for your report and patch. > > Are your SCSI devices multi-path configuration? >Yes, it appears all of the reports have multipath configured.> If so, the configuration isn''t supported by pvSCSI of XenAPI yet. > > I added a small fix to your patch. Could you send your Signed-off-by > line? >Ok, thanks for the review and changes. Cheers, Jim Signed-off-by: Jim Fehlig<jfehlig@novell.com>> Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com> > > Best regards, > Kan > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
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@novell.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel