SHA256
1
0
forked from pool/qemu
qemu/Revert-python-machine-handle-fast-QEMU-t.patch
Li Zhang 32d2c6bf29 Accepting request 965607 from home:lizhang:branches:Virtualization
- The patches from upstream cause testsuit failures (bsc#1197150 bsc#1197528)
* Patches added:
  Revert-python-iotests-replace-qmp-with-a.patch
  Revert-python-machine-add-instance-disam.patch
  Revert-python-machine-add-sock_dir-prope.patch
  Revert-python-machine-handle-fast-QEMU-t.patch
  Revert-python-machine-move-more-variable.patch
  Revert-python-machine-remove-_remove_mon.patch

OBS-URL: https://build.opensuse.org/request/show/965607
OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=703
2022-03-29 10:21:23 +00:00

67 lines
2.6 KiB
Diff

From: Li Zhang <lizhang@suse.de>
Date: Tue, 29 Mar 2022 11:51:54 +0200
Subject: Revert "python/machine: handle "fast" QEMU terminations"
References: bsc#1197528 bsc#1197150
This patch causes iotest failures, it needs to revert.
This reverts commit 1611e6cf4e7163f6102b37010a8b7e7120f468b5.
Signed-off-by: Li Zhang <lizhang@suse.de>
---
python/qemu/machine/machine.py | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py
index 67ab06ca2b6daa531b7c0ad9f7c2..f92e73de4010d10c9e062259c706 100644
--- a/python/qemu/machine/machine.py
+++ b/python/qemu/machine/machine.py
@@ -349,6 +349,9 @@ class QEMUMachine:
Called to cleanup the VM instance after the process has exited.
May also be called after a failed launch.
"""
+ # Comprehensive reset for the failed launch case:
+ self._early_cleanup()
+
try:
self._close_qmp_connection()
except Exception as err: # pylint: disable=broad-except
@@ -397,16 +400,9 @@ class QEMUMachine:
try:
self._launch()
+ self._launched = True
except:
- # We may have launched the process but it may
- # have exited before we could connect via QMP.
- # Assume the VM didn't launch or is exiting.
- # If we don't wait for the process, exitcode() may still be
- # 'None' by the time control is ceded back to the caller.
- if self._launched:
- self.wait()
- else:
- self._post_shutdown()
+ self._post_shutdown()
LOG.debug('Error launching VM')
if self._qemu_full_args:
@@ -430,7 +426,6 @@ class QEMUMachine:
stderr=subprocess.STDOUT,
shell=False,
close_fds=False)
- self._launched = True
self._post_launch()
def _close_qmp_connection(self) -> None:
@@ -462,8 +457,8 @@ class QEMUMachine:
"""
Perform any cleanup that needs to happen before the VM exits.
- This method may be called twice upon shutdown, once each by soft
- and hard shutdown in failover scenarios.
+ May be invoked by both soft and hard shutdown in failover scenarios.
+ Called additionally by _post_shutdown for comprehensive cleanup.
"""
# If we keep the console socket open, we may deadlock waiting
# for QEMU to exit, while QEMU is waiting for the socket to