On Mon, Mar 07, 2016 at 03:16:06PM +0200, Yedidyah Bar David wrote:
On Mon, Mar 7, 2016 at 3:01 PM, Jonathan Sherman
<haviland(a)gmail.com> wrote:
> Didi -
>
> The vdsmd service error is what led me to the vdsm-tool restore-nets
> concern. See the chain of errors below (along with the other details you
> requested.)
Thanks.
Changing subject and adding Dan.
>
> [root@ovirt01 log]# vdsm-tool restore-nets
> Traceback (most recent call last):
> File "/usr/share/vdsm/vdsm-restore-net-config", line 429, in
<module>
> restore(args)
> File "/usr/share/vdsm/vdsm-restore-net-config", line 387, in restore
> _restore_sriov_numvfs()
> File "/usr/share/vdsm/vdsm-restore-net-config", line 82, in
> _restore_sriov_numvfs
> sriov_devices = _get_sriov_devices()
> File "/usr/share/vdsm/vdsm-restore-net-config", line 54, in
> _get_sriov_devices
> devices = hostdev.list_by_caps()
> File "/usr/share/vdsm/hostdev.py", line 175, in list_by_caps
> libvirt_devices = _get_devices_from_libvirt()
> File "/usr/share/vdsm/hostdev.py", line 160, in
_get_devices_from_libvirt
> for device in libvirtconnection.get().listAllDevices(0))
> File "/usr/share/vdsm/hostdev.py", line 160, in <genexpr>
> for device in libvirtconnection.get().listAllDevices(0))
> File "/usr/share/vdsm/hostdev.py", line 107, in _parse_device_params
> devXML = etree.fromstring(device_xml)
> File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1300, in XML
> parser.feed(text)
> File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1642, in
feed
> self._raiseerror(v)
> File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1506, in
> _raiseerror
> raise err
> xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 4,
> column 13
> Traceback (most recent call last):
> File "/bin/vdsm-tool", line 219, in main
> return tool_command[cmd]["command"](*args)
> File "/usr/lib/python2.7/site-packages/vdsm/tool/restore_nets.py", line
> 41, in restore_command
> exec_restore(cmd)
> File "/usr/lib/python2.7/site-packages/vdsm/tool/restore_nets.py", line
> 54, in exec_restore
> raise EnvironmentError('Failed to restore the persisted networks')
> EnvironmentError: Failed to restore the persisted networks
Jonathan, thanks for this disturbing report. For some reason, Vdsm fails
to parse libvirt's output.
Could you share your libvirt version as well the output of
for d in `virsh -r nodedev-list`; do echo ====$d====; virsh -r nodedev-dumpxml $d;
done
if all seems like valid xml, can you add the following print() and run
`restore-net` again?
diff --git a/lib/vdsm/hostdev.py b/lib/vdsm/hostdev.py
index 6ba3189..9d22e9e 100644
--- a/lib/vdsm/hostdev.py
+++ b/lib/vdsm/hostdev.py
@@ -113,6 +113,7 @@ def _parse_device_params(device_xml):
Process device_xml and return dict of found known parameters,
also doing sysfs lookups for sr-iov related information
"""
+ print(device_xml)
address_parser = {'pci': _parse_pci_address,
'scsi': _parse_scsi_address,
'usb_device': _parse_usb_address}
Regards,
Dan.