mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
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 close(self):
|
||||||
def cleanup(devs):
|
def cleanup(devs):
|
||||||
for dev in devs.values():
|
for dev in devs.values():
|
||||||
|
try:
|
||||||
dev.cleanup()
|
dev.cleanup()
|
||||||
|
except:
|
||||||
|
logging.debug("Failed to cleanup %s", exc_info=True)
|
||||||
|
|
||||||
|
try:
|
||||||
if not self._backend.is_closed():
|
if not self._backend.is_closed():
|
||||||
if self._domain_cb_id is not None:
|
if self._domain_cb_id is not None:
|
||||||
self._backend.domainEventDeregisterAny(self._domain_cb_id)
|
self._backend.domainEventDeregisterAny(
|
||||||
|
self._domain_cb_id)
|
||||||
self._domain_cb_id = None
|
self._domain_cb_id = None
|
||||||
|
|
||||||
if self._network_cb_id is not None:
|
if self._network_cb_id is not None:
|
||||||
self._backend.networkEventDeregisterAny(self._network_cb_id)
|
self._backend.networkEventDeregisterAny(
|
||||||
|
self._network_cb_id)
|
||||||
self._network_cb_id = None
|
self._network_cb_id = None
|
||||||
|
except:
|
||||||
|
logging.debug("Failed to deregister events in conn cleanup",
|
||||||
|
exc_info=True)
|
||||||
|
|
||||||
self._backend.close()
|
self._backend.close()
|
||||||
self.record = []
|
self.record = []
|
||||||
|
Loading…
Reference in New Issue
Block a user