From nobody Wed Feb 11 02:33:37 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1505519434883203.6422540481384; Fri, 15 Sep 2017 16:50:34 -0700 (PDT) Received: from localhost ([::1]:55405 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dt0NV-0006RP-4e for importer@patchew.org; Fri, 15 Sep 2017 19:50:33 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56714) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dt0CF-0005nY-GB for qemu-devel@nongnu.org; Fri, 15 Sep 2017 19:38:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dt0CE-0003LY-L7 for qemu-devel@nongnu.org; Fri, 15 Sep 2017 19:38:55 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37302) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dt0CD-0003IS-V1 for qemu-devel@nongnu.org; Fri, 15 Sep 2017 19:38:54 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F19F18763A; Fri, 15 Sep 2017 23:38:52 +0000 (UTC) Received: from localhost (ovpn-116-24.gru2.redhat.com [10.97.116.24]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7AE3960468; Fri, 15 Sep 2017 23:38:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com F19F18763A Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=ehabkost@redhat.com From: Eduardo Habkost To: Peter Maydell , qemu-devel@nongnu.org Date: Fri, 15 Sep 2017 20:37:38 -0300 Message-Id: <20170915233739.26860-15-ehabkost@redhat.com> In-Reply-To: <20170915233739.26860-1-ehabkost@redhat.com> References: <20170915233739.26860-1-ehabkost@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 15 Sep 2017 23:38:53 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 14/15] qemu.py: improve message on negative exit code X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Luk=C3=A1=C5=A1=20Doktor?= , Amador Pahim , Stefan Hajnoczi Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Amador Pahim The current message shows 'self._args', which contains only part of the options used in the Qemu command line. This patch makes the qemu full args list an instance variable and then uses it in the negative exit code message. Message was moved outside the 'if is_running' block to make sure it will be logged if the VM finishes before the call to shutdown(). Signed-off-by: Amador Pahim Message-Id: <20170901112829.2571-5-apahim@redhat.com> [ehabkost: removed superfluous parenthesis] Reviewed-by: Fam Zheng Signed-off-by: Eduardo Habkost --- scripts/qemu.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/scripts/qemu.py b/scripts/qemu.py index c9bcaafe41..9440261ac3 100644 --- a/scripts/qemu.py +++ b/scripts/qemu.py @@ -87,6 +87,7 @@ class QEMUMachine(object): self._socket_scm_helper =3D socket_scm_helper self._debug =3D debug self._qmp =3D None + self._qemu_full_args =3D None =20 def __enter__(self): return self @@ -186,13 +187,16 @@ class QEMUMachine(object): =20 def launch(self): '''Launch the VM and establish a QMP connection''' + self._qemu_full_args =3D None devnull =3D open(os.path.devnull, 'rb') qemulog =3D open(self._qemu_log_path, 'wb') try: self._pre_launch() - args =3D (self._wrapper + [self._binary] + self._base_args() + - self._args) - self._popen =3D subprocess.Popen(args, stdin=3Ddevnull, stdout= =3Dqemulog, + self._qemu_full_args =3D self._wrapper + [self._binary] + + self._base_args() + self._args + self._popen =3D subprocess.Popen(self._qemu_full_args, + stdin=3Ddevnull, + stdout=3Dqemulog, stderr=3Dsubprocess.STDOUT, shell=3DFalse) self._post_launch() @@ -212,14 +216,20 @@ class QEMUMachine(object): self._qmp.close() except: self._popen.kill() + self._popen.wait() =20 - exitcode =3D self._popen.wait() - if exitcode < 0: - LOG.warn('qemu received signal %i: %s', -exitcode, - ' '.join(self._args)) self._load_io_log() self._post_shutdown() =20 + exitcode =3D self.exitcode() + if exitcode is not None and exitcode < 0: + msg =3D 'qemu received signal %i: %s' + if self._qemu_full_args: + command =3D ' '.join(self._qemu_full_args) + else: + command =3D '' + LOG.warn(msg, exitcode, command) + def qmp(self, cmd, conv_keys=3DTrue, **args): '''Invoke a QMP command and return the response dict''' qmp_args =3D dict() --=20 2.13.5