Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/814439/?format=api
{ "id": 814439, "url": "http://patchwork.ozlabs.org/api/patches/814439/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170915233739.26860-15-ehabkost@redhat.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/projects/14/?format=api", "name": "QEMU Development", "link_name": "qemu-devel", "list_id": "qemu-devel.nongnu.org", "list_email": "qemu-devel@nongnu.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20170915233739.26860-15-ehabkost@redhat.com>", "list_archive_url": null, "date": "2017-09-15T23:37:38", "name": "[PULL,14/15] qemu.py: improve message on negative exit code", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "c076995ceb398ad73cd828a86565265dd157f665", "submitter": { "id": 195, "url": "http://patchwork.ozlabs.org/api/people/195/?format=api", "name": "Eduardo Habkost", "email": "ehabkost@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20170915233739.26860-15-ehabkost@redhat.com/mbox/", "series": [ { "id": 3400, "url": "http://patchwork.ozlabs.org/api/series/3400/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=3400", "date": "2017-09-15T23:37:24", "name": "[PULL,01/15] qemu.py: Pylint/style fixes", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/3400/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/814439/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/814439/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@bilbo.ozlabs.org", "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)", "ext-mx02.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com", "ext-mx02.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=ehabkost@redhat.com" ], "Received": [ "from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xvBwF5PmJz9sPr\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 16 Sep 2017 09:50:05 +1000 (AEST)", "from localhost ([::1]:55399 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dt0N1-00063S-UA\n\tfor incoming@patchwork.ozlabs.org; Fri, 15 Sep 2017 19:50:03 -0400", "from eggs.gnu.org ([2001:4830:134:3::10]:56714)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <ehabkost@redhat.com>) id 1dt0CF-0005nY-GB\n\tfor qemu-devel@nongnu.org; Fri, 15 Sep 2017 19:38:56 -0400", "from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <ehabkost@redhat.com>) id 1dt0CE-0003LY-L7\n\tfor qemu-devel@nongnu.org; Fri, 15 Sep 2017 19:38:55 -0400", "from mx1.redhat.com ([209.132.183.28]:37302)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <ehabkost@redhat.com>) id 1dt0CD-0003IS-V1\n\tfor qemu-devel@nongnu.org; Fri, 15 Sep 2017 19:38:54 -0400", "from smtp.corp.redhat.com\n\t(int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id F19F18763A;\n\tFri, 15 Sep 2017 23:38:52 +0000 (UTC)", "from localhost (ovpn-116-24.gru2.redhat.com [10.97.116.24])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 7AE3960468;\n\tFri, 15 Sep 2017 23:38:52 +0000 (UTC)" ], "DMARC-Filter": "OpenDMARC Filter v1.3.2 mx1.redhat.com F19F18763A", "From": "Eduardo Habkost <ehabkost@redhat.com>", "To": "Peter Maydell <peter.maydell@linaro.org>,\n\tqemu-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\n\t(mx1.redhat.com [10.5.110.26]);\n\tFri, 15 Sep 2017 23:38:53 +0000 (UTC)", "X-detected-operating-system": "by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]", "X-Received-From": "209.132.183.28", "Subject": "[Qemu-devel] [PULL 14/15] qemu.py: improve message on negative exit\n\tcode", "X-BeenThere": "qemu-devel@nongnu.org", "X-Mailman-Version": "2.1.21", "Precedence": "list", "List-Id": "<qemu-devel.nongnu.org>", "List-Unsubscribe": "<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>", "List-Archive": "<http://lists.nongnu.org/archive/html/qemu-devel/>", "List-Post": "<mailto:qemu-devel@nongnu.org>", "List-Help": "<mailto:qemu-devel-request@nongnu.org?subject=help>", "List-Subscribe": "<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>", "Cc": "=?utf-8?b?THVrw6HFoSBEb2t0b3I=?= <ldoktor@redhat.com>,\n\tAmador Pahim <apahim@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>", "Errors-To": "qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org", "Sender": "\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>" }, "content": "From: Amador Pahim <apahim@redhat.com>\n\nThe current message shows 'self._args', which contains only part of the\noptions used in the Qemu command line.\n\nThis patch makes the qemu full args list an instance variable and then\nuses it in the negative exit code message.\n\nMessage was moved outside the 'if is_running' block to make sure it will\nbe logged if the VM finishes before the call to shutdown().\n\nSigned-off-by: Amador Pahim <apahim@redhat.com>\nMessage-Id: <20170901112829.2571-5-apahim@redhat.com>\n[ehabkost: removed superfluous parenthesis]\nReviewed-by: Fam Zheng <famz@redhat.com>\nSigned-off-by: Eduardo Habkost <ehabkost@redhat.com>\n---\n scripts/qemu.py | 24 +++++++++++++++++-------\n 1 file changed, 17 insertions(+), 7 deletions(-)", "diff": "diff --git a/scripts/qemu.py b/scripts/qemu.py\nindex c9bcaafe41..9440261ac3 100644\n--- a/scripts/qemu.py\n+++ b/scripts/qemu.py\n@@ -87,6 +87,7 @@ class QEMUMachine(object):\n self._socket_scm_helper = socket_scm_helper\n self._debug = debug\n self._qmp = None\n+ self._qemu_full_args = None\n \n def __enter__(self):\n return self\n@@ -186,13 +187,16 @@ class QEMUMachine(object):\n \n def launch(self):\n '''Launch the VM and establish a QMP connection'''\n+ self._qemu_full_args = None\n devnull = open(os.path.devnull, 'rb')\n qemulog = open(self._qemu_log_path, 'wb')\n try:\n self._pre_launch()\n- args = (self._wrapper + [self._binary] + self._base_args() +\n- self._args)\n- self._popen = subprocess.Popen(args, stdin=devnull, stdout=qemulog,\n+ self._qemu_full_args = self._wrapper + [self._binary] +\n+ self._base_args() + self._args\n+ self._popen = subprocess.Popen(self._qemu_full_args,\n+ stdin=devnull,\n+ stdout=qemulog,\n stderr=subprocess.STDOUT,\n shell=False)\n self._post_launch()\n@@ -212,14 +216,20 @@ class QEMUMachine(object):\n self._qmp.close()\n except:\n self._popen.kill()\n+ self._popen.wait()\n \n- exitcode = self._popen.wait()\n- if exitcode < 0:\n- LOG.warn('qemu received signal %i: %s', -exitcode,\n- ' '.join(self._args))\n self._load_io_log()\n self._post_shutdown()\n \n+ exitcode = self.exitcode()\n+ if exitcode is not None and exitcode < 0:\n+ msg = 'qemu received signal %i: %s'\n+ if self._qemu_full_args:\n+ command = ' '.join(self._qemu_full_args)\n+ else:\n+ command = ''\n+ LOG.warn(msg, exitcode, command)\n+\n def qmp(self, cmd, conv_keys=True, **args):\n '''Invoke a QMP command and return the response dict'''\n qmp_args = dict()\n", "prefixes": [ "PULL", "14/15" ] }