From: John Snow Date: Thu, 27 Oct 2022 18:58:36 +0000 (-0400) Subject: python/machine: Handle termination cases without QMP X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3c6e5e8ce13dc3bf286ff977a7806f2b342dfdab;p=qmiga%2Fqemu.git python/machine: Handle termination cases without QMP If we request a shutdown of a VM without a QMP console, we'll just hang waiting. Not ideal. Add in code that attempts graceful termination in these cases. Tested lightly; it appears to work and I doubt we rely on this case anywhere, but it's a corner you're allowed to wedge yourself in, so it should be handled. Signed-off-by: John Snow --- diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py index 6f1374a755..748a0d807c 100644 --- a/python/qemu/machine/machine.py +++ b/python/qemu/machine/machine.py @@ -547,6 +547,12 @@ class QEMUMachine: finally: # Regardless, we want to quiesce the connection. self._close_qmp_connection() + elif not self._quit_issued: + LOG.debug( + "Not anticipating QEMU quit and no QMP connection present, " + "issuing SIGTERM" + ) + self._subp.terminate() # May raise subprocess.TimeoutExpired LOG.debug(