After closing libvirt with virConnectClose, it's possible to open
libvirt again in the same program with virConnectOpen but following
operations on domains systematically fail.
In example:
conn = virConnectOpen(NULL);
dom = virDomainLookupByID(conn, id);
virDomainFree(dom);
virConnectClose(conn);
...
conn = virConnectOpen(NULL);
dom = virDomainLookupByID(conn, id);
==> ERROR
The second virDomainLookupByID call fails because of the do_connect()
function in xend_internal.c source file. In this function, the connect()
API returns ENOENT on the second virDomainLookupByID() call.
ENOENT return code isn't documented in the man of connect API !
I suppose that some cleaning are missing when virConnectClose is called
or in the opposite, too cleaning is done.
Regards.