I've spent the weekend trying to get to the bottom of this issue.

Adding a Host fails:

From RHVM


VDSM rhv1 command failed: Connection reset by peer
Could not get hardware information for host rhv1
VDSM rhv1 command failed: Failed to read hardware information
Host rhv1 installed
Network changes were saved on host rhv1
Installing Host rhv1. Stage: Termination.
Installing Host rhv1. Retrieving installation logs to: '/var/log/ovirt-engine/host-deploy/ovirt-host-deploy-20161010115606-192.168.21.71-24d39274.log'.
Installing Host rhv1. Stage: Pre-termination.
Installing Host rhv1. Starting ovirt-vmconsole-host-sshd.
Installing Host rhv1. Starting vdsm.
Installing Host rhv1. Stopping libvirtd.
Installing Host rhv1. Stage: Closing up.
Installing Host rhv1. Setting kernel arguments.
Installing Host rhv1. Stage: Transaction commit.
Installing Host rhv1. Enrolling serial console certificate.
Installing Host rhv1. Enrolling certificate.
Installing Host rhv1. Stage: Misc configuration.



This was in the /var/log/vdsm/vdsm.log on the host trying to be added:

jsonrpc.Executor/2::ERROR::2016-10-10 11:57:10,276::API::1340::vds::(getHardwareInfo) failed to retrieve hardware info
Traceback (most recent call last):
  File "/usr/share/vdsm/API.py", line 1337, in getHardwareInfo
    hw = supervdsm.getProxy().getHardwareInfo()
  File "/usr/lib/python2.7/site-packages/vdsm/supervdsm.py", line 53, in __call__
    return callMethod()
  File "/usr/lib/python2.7/site-packages/vdsm/supervdsm.py", line 51, in <lambda>
    **kwargs)
  File "<string>", line 2, in getHardwareInfo
  File "/usr/lib64/python2.7/multiprocessing/managers.py", line 759, in _callmethod
    kind, result = conn.recv()
EOFError


and then VDSM fails to start.



Looking at the source code...

def getHardwareInfoStructure():
    dmiInfo = getAllDmidecodeInfo()
    sysStruct = {}
    for k1, k2 in (('system', 'Manufacturer'),
                   ('system', 'Product Name'),
                   ('system', 'Version'),
                   ('system', 'Serial Number'),
                   ('system', 'UUID'),
                   ('system', 'Family')):
        val = dmiInfo.get(k1, {}).get(k2, None)
        if val not in [None, 'Not Specified']:
            sysStruct[(k1 + k2).replace(' ', '')] = val

return sysStruct



Running dmidecode from command line I get..

System Information
        Manufacturer: Supermicro
        Product Name: H8DM8-2
        Version: 1234567890
        Serial Number: 1234567890
        UUID: 00020003-0004-0005-0006-000700080009
        Wake-up Type: Power Switch
        SKU Number: To Be Filled By O.E.M.
        Family: To Be Filled By O.E.M.


Q: Is the string in Family the source of my problems??

Q: Any work arounds??








--
David Pinkerton
Consultant
Red Hat Asia Pacific Pty. Ltd.
Level 11, Canberra House
40 Marcus Clarke Street
Canberra 2600 ACT

Mobile: +61-488-904-232
Email: david.pinkerton@redhat.com
Web: http://apac.redhat.com/