connection: Handle errors when deregistering events on close (bz 1069351)
Otherwise this interrupts the close/cleanup routine, and the connection never appears to disconnect in the UI. This causes error dialog spamming when libvirtd goes down.
This commit is contained in:
parent
cfc52051b7
commit
081e34715f
|
@ -929,16 +929,25 @@ class vmmConnection(vmmGObject):
|
|||
def close(self):
|
||||
def cleanup(devs):
|
||||
for dev in devs.values():
|
||||
dev.cleanup()
|
||||
try:
|
||||
dev.cleanup()
|
||||
except:
|
||||
logging.debug("Failed to cleanup %s", exc_info=True)
|
||||
|
||||
if not self._backend.is_closed():
|
||||
if self._domain_cb_id is not None:
|
||||
self._backend.domainEventDeregisterAny(self._domain_cb_id)
|
||||
self._domain_cb_id = None
|
||||
try:
|
||||
if not self._backend.is_closed():
|
||||
if self._domain_cb_id is not None:
|
||||
self._backend.domainEventDeregisterAny(
|
||||
self._domain_cb_id)
|
||||
self._domain_cb_id = None
|
||||
|
||||
if self._network_cb_id is not None:
|
||||
self._backend.networkEventDeregisterAny(self._network_cb_id)
|
||||
self._network_cb_id = None
|
||||
if self._network_cb_id is not None:
|
||||
self._backend.networkEventDeregisterAny(
|
||||
self._network_cb_id)
|
||||
self._network_cb_id = None
|
||||
except:
|
||||
logging.debug("Failed to deregister events in conn cleanup",
|
||||
exc_info=True)
|
||||
|
||||
self._backend.close()
|
||||
self.record = []
|
||||
|
|
Loading…
Reference in New Issue