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