From 494a93cccc52d7b00ad429e44fd2974a6d0eea22 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Thu, 11 Feb 2010 09:32:05 -0500 Subject: [PATCH] console: Don't wait for 'nc' to exit, just kill the process. Certain nc versions don't handle disconnects very well or require specific incompatible cli options to operate nicely, and a hung 'nc' connection can lock up virt-manager. Just kill the tunnel process, rather than waitpid it. --- src/virtManager/console.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/virtManager/console.py b/src/virtManager/console.py index a4adf34d8..3165723f4 100644 --- a/src/virtManager/console.py +++ b/src/virtManager/console.py @@ -21,14 +21,17 @@ import gobject import gtk import gtk.glade + import libvirt -import logging -import traceback -import sys import dbus import gtkvnc + import os +import sys +import signal import socket +import logging +import traceback from virtManager.error import vmmErrorDialog @@ -533,7 +536,7 @@ class vmmConsolePages(gobject.GObject): logging.debug("Shutting down tunnel PID %d FD %d" % (self.vncTunnel[1], self.vncTunnel[0].fileno())) self.vncTunnel[0].close() - os.waitpid(self.vncTunnel[1], 0) + os.kill(self.vncTunnel[1], signal.SIGKILL) self.vncTunnel = None def try_login(self, src=None):