aboutsummaryrefslogtreecommitdiff
path: root/python/qemu
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2023-09-21 09:30:20 -0400
committerStefan Hajnoczi <stefanha@redhat.com>2023-09-21 09:30:20 -0400
commitf2df7e7705e832a8a65422c227e9ef1bdac226c1 (patch)
treee430be8260e197f6f9dc5673841311762609bfdc /python/qemu
parent416af8564f4a30f207269307616a9e0b3f3c6570 (diff)
parentf959c3d87ccfa585b105de6964a6261e368cc1da (diff)
downloadqemu-f2df7e7705e832a8a65422c227e9ef1bdac226c1.zip
qemu-f2df7e7705e832a8a65422c227e9ef1bdac226c1.tar.gz
qemu-f2df7e7705e832a8a65422c227e9ef1bdac226c1.tar.bz2
Merge tag 'pull-testing-200923-1' of https://gitlab.com/stsquad/qemu into staging
testing updates: - update most Debian to bookworm - fix some typos - update loongarch toolchain - fix microbit test - handle GitLab/Cirrus timeout discrepancy - improve avocado console handling - disable mips avocado images pending bugfix # -----BEGIN PGP SIGNATURE----- # # iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmUK/RcACgkQ+9DbCVqe # KkQtYwf/Qu0eQZ8ZM4PsKcW07O76qn3cOphTFeZM01hICeiiMGRnwBVtBGIsdx1r # MaXd7o35tnJRMbUnlGCFUDMWDZaafQIKIlsFwAGTMqgQ+kv+GB22MHpNySRZ9pXl # ed1tOyz8maId4b3ECvGJqJSNOBB1P3tw7rdbFEhuSyXFZKJc79w1nCYjJyEtNpST # CT7AYXJiVLiB4jSB7XH9XrkVTvw4k+PjzmLUFRJoGlik0O7xj2i7zfGO5+VxCm9t # VluEcrlQ5w3JNL69yRhqTtrHAC7bBKqUOaF1bEA//ELNNQn2heuxDeHlDAgOtpV/ # VkShHgWJAwGLishFlv/+tmp5fbU5CQ== # =3Lsz # -----END PGP SIGNATURE----- # gpg: Signature made Wed 20 Sep 2023 10:09:27 EDT # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * tag 'pull-testing-200923-1' of https://gitlab.com/stsquad/qemu: tests/avocado: Disable MIPS Malta tests due to GitLab issue #1884 tests/avocado: Fix console data loss gitlab: make Cirrus CI jobs gating gitlab: make Cirrus CI timeout explicit qtest: kill orphaned qtest QEMU processes on FreeBSD microbit: add missing qtest_quit() call tests/docker: Update docker-loongarch-cross toolchain gitlab: fix typo/spelling in comments tests: update most Debian images to Bookworm Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'python/qemu')
-rw-r--r--python/qemu/machine/machine.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/python/qemu/machine/machine.py b/python/qemu/machine/machine.py
index c16a0b6..35d5a67 100644
--- a/python/qemu/machine/machine.py
+++ b/python/qemu/machine/machine.py
@@ -191,6 +191,7 @@ class QEMUMachine:
self.sock_dir, f"{self._name}.con"
)
self._console_socket: Optional[socket.socket] = None
+ self._console_file: Optional[socket.SocketIO] = None
self._remove_files: List[str] = []
self._user_killed = False
self._quit_issued = False
@@ -509,6 +510,11 @@ class QEMUMachine:
# If we keep the console socket open, we may deadlock waiting
# for QEMU to exit, while QEMU is waiting for the socket to
# become writable.
+ if self._console_file is not None:
+ LOG.debug("Closing console file")
+ self._console_file.close()
+ self._console_file = None
+
if self._console_socket is not None:
LOG.debug("Closing console socket")
self._console_socket.close()
@@ -874,6 +880,7 @@ class QEMUMachine:
Returns a socket connected to the console
"""
if self._console_socket is None:
+ LOG.debug("Opening console socket")
self._console_socket = console_socket.ConsoleSocket(
self._console_address,
file=self._console_log_path,
@@ -881,6 +888,18 @@ class QEMUMachine:
return self._console_socket
@property
+ def console_file(self) -> socket.SocketIO:
+ """
+ Returns a file associated with the console socket
+ """
+ if self._console_file is None:
+ LOG.debug("Opening console file")
+ self._console_file = self.console_socket.makefile(mode='rb',
+ buffering=0,
+ encoding='utf-8')
+ return self._console_file
+
+ @property
def temp_dir(self) -> str:
"""
Returns a temporary directory to be used for this machine