32d2c6bf29
- 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
67 lines
2.6 KiB
Diff
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
|