[libvirt] libvirt-python virNodeGetInfo returns None

Christian Loehle cloehle at posteo.de
Tue Aug 23 11:03:03 UTC 2016

I'm trying to use virt-manager with a custom libvirt hypervisor driver.
My current problem is that virt-manager closes the connection because virNodeGetInfo(the python binding) returns None:
Traceback (most recent call last):
  File "/home/cloehle/Documents/libvirt/virt-manager/virtManager/connection.py", line 1390, in tick_from_engine
    self._tick(*args, **kwargs)
  File "/home/cloehle/Documents/libvirt/virt-manager/virtManager/connection.py", line 1280, in _tick
    self._hostinfo = self._backend.getInfo()
  File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3612, in getInfo
    if ret is None: raise libvirtError ('virNodeGetInfo() failed', conn=self)
libvirtError: internal error: client socket is closed

The virNodeGetInfo function of my driver should set a valid virNodeInfoPtr, since it only consists of the line:
return nodeGetInfo(NULL, info);
virsh shows no problems which is why I suspect this is a problem with libvirt-python.
So I looked at the source and the first thing that I noticed is in line 2753 of libvirt-override.c:
    if (!PyArg_ParseTuple(args, (char *)"O:virDomainGetInfo", &pyobj_conn))
        return NULL;

Since this is for virNodeGetInfo this should probably be virNodeGetInfo instead of domain(the same thing occurs in line 2794 for another function).
This could be my source of error but doesn't have to be. Could someone walk me through finding the reason why libvirt-python returns None for my virNodeGetInfo?
Is there any good way of debugging where exactly libvirt-python encounters an error and returns None?

Any help appreciated,
Christian Loehle

More information about the libvir-list mailing list