Message ID | 20221024195355.860504-3-jsnow@redhat.com |
---|---|
State | New |
Headers | show |
Series | python: misc machine.py improvements | expand |
diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py index c467f951d5d..e1ba5d01b86 100644 --- a/python/qemu/machine/machine.py +++ b/python/qemu/machine/machine.py @@ -544,6 +544,12 @@ def _soft_shutdown(self, timeout: Optional[int]) -> None: 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 self._subp.wait(timeout=timeout)
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 <jsnow@redhat.com> --- python/qemu/machine/machine.py | 6 ++++++ 1 file changed, 6 insertions(+)