engine: Fix closing connection when tick() fails (bz 1069351)

This commit is contained in:
Cole Robinson 2014-02-25 15:17:34 -05:00
parent dd577de636
commit ce64d037bf

View File

@ -344,15 +344,24 @@ class vmmEngine(vmmGObject):
return 1 return 1
def _tick_single_conn(self, conn, kwargs): def _tick_single_conn(self, conn, kwargs):
e = None
try: try:
conn.tick(**kwargs) conn.tick(**kwargs)
except KeyboardInterrupt: except KeyboardInterrupt:
raise raise
except libvirt.libvirtError, e: except Exception, e:
pass
if e is None:
return
from_remote = getattr(libvirt, "VIR_FROM_REMOTE", None) from_remote = getattr(libvirt, "VIR_FROM_REMOTE", None)
from_rpc = getattr(libvirt, "VIR_FROM_RPC", None) from_rpc = getattr(libvirt, "VIR_FROM_RPC", None)
sys_error = getattr(libvirt, "VIR_ERR_SYSTEM_ERROR", None) sys_error = getattr(libvirt, "VIR_ERR_SYSTEM_ERROR", None)
dom = -1
code = -1
if isinstance(e, libvirt.libvirtError):
dom = e.get_error_domain() dom = e.get_error_domain()
code = e.get_error_code() code = e.get_error_code()