
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.