From patchwork Fri Mar 13 08:36:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Wolf X-Patchwork-Id: 11436265 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E2BC790 for ; Fri, 13 Mar 2020 08:37:22 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B968B2074B for ; Fri, 13 Mar 2020 08:37:22 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="V9S45T+k" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B968B2074B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:55632 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCfon-0003uo-Uc for patchwork-qemu-devel@patchwork.kernel.org; Fri, 13 Mar 2020 04:37:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45337) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCfo4-0001x6-Pj for qemu-devel@nongnu.org; Fri, 13 Mar 2020 04:36:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCfo1-00061F-Jn for qemu-devel@nongnu.org; Fri, 13 Mar 2020 04:36:35 -0400 Received: from us-smtp-delivery-1.mimecast.com ([205.139.110.120]:48287 helo=us-smtp-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jCfo1-0005yp-Fu for qemu-devel@nongnu.org; Fri, 13 Mar 2020 04:36:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584088591; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HU+OyKWeets5YCf9ac4z9kplh0aiqER6vBetzLT6Hcc=; b=V9S45T+k27V2gJJghin+Z0422ae8CbbUjHnifj+0CIP0/A6mzXQmLcw0BRv1LESQkiGar5 OQxHNtnk0503Ow1fKeIIL6ntb9jHb1+gPtEq01DX5jOjh7cNEN1FWUQPjbvjwicGdKzDj0 Rbc/MQa7rJdOWoLxfVa+s6ozYW64KgI= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-276-ujBIyZ2QMeabkGBJ2afniw-1; Fri, 13 Mar 2020 04:36:30 -0400 X-MC-Unique: ujBIyZ2QMeabkGBJ2afniw-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 257AF802568; Fri, 13 Mar 2020 08:36:29 +0000 (UTC) Received: from linux.fritz.box.com (ovpn-117-85.ams2.redhat.com [10.36.117.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 254AB92D47; Fri, 13 Mar 2020 08:36:25 +0000 (UTC) From: Kevin Wolf To: qemu-block@nongnu.org Subject: [PATCH 1/3] iotests.py: Enable faulthandler Date: Fri, 13 Mar 2020 09:36:15 +0100 Message-Id: <20200313083617.8326-2-kwolf@redhat.com> In-Reply-To: <20200313083617.8326-1-kwolf@redhat.com> References: <20200313083617.8326-1-kwolf@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.120 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, jsnow@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" With this, you can send SIGABRT to a hanging test case and you'll get a Python stack trace so you know where it was hanging. Signed-off-by: Kevin Wolf Reviewed-by: John Snow --- tests/qemu-iotests/iotests.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 23043baa26..b859c303a2 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -30,12 +30,15 @@ import logging import atexit import io from collections import OrderedDict +import faulthandler sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python')) from qemu import qtest assert sys.version_info >= (3,6) +faulthandler.enable() + # This will not work if arguments contain spaces but is necessary if we # want to support the override options that ./check supports. qemu_img_args = [os.environ.get('QEMU_IMG_PROG', 'qemu-img')] From patchwork Fri Mar 13 08:36:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kevin Wolf X-Patchwork-Id: 11436267 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2B303139A for ; Fri, 13 Mar 2020 08:38:40 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0244220749 for ; Fri, 13 Mar 2020 08:38:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="NtLQ3b6a" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0244220749 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:55648 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCfq3-0005zi-87 for patchwork-qemu-devel@patchwork.kernel.org; Fri, 13 Mar 2020 04:38:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45392) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCfo6-0001xJ-ID for qemu-devel@nongnu.org; Fri, 13 Mar 2020 04:36:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCfo5-00064Z-EC for qemu-devel@nongnu.org; Fri, 13 Mar 2020 04:36:38 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:27794 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jCfo4-00062o-NV for qemu-devel@nongnu.org; Fri, 13 Mar 2020 04:36:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584088594; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=xiEF0F2p122mi6EyxxzwncrqK2Zf5KaVIUcFNWt4j+0=; b=NtLQ3b6aCd/LEB+J8joRwaglCV4OoFGnrW64nOp9kmfgWPhH0rVbm3UNIQpItF8zjsGHTA jJnMgzK6fCiEEfYtH776UNQN77pJNzv9WQNFfLZhyM1U8JBqif7bc2zJ1nDQLAvvDZPH6G kNBn6pcEoN2s/C0KLKMKrHT7ufbFGqA= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-368-80shhg0eMzGFzlCAKbYOcQ-1; Fri, 13 Mar 2020 04:36:32 -0400 X-MC-Unique: 80shhg0eMzGFzlCAKbYOcQ-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id D4A3085EE6E; Fri, 13 Mar 2020 08:36:31 +0000 (UTC) Received: from linux.fritz.box.com (ovpn-117-85.ams2.redhat.com [10.36.117.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 68F9D96F81; Fri, 13 Mar 2020 08:36:29 +0000 (UTC) From: Kevin Wolf To: qemu-block@nongnu.org Subject: [PATCH 2/3] python/qemu: Kill QEMU process if 'quit' doesn't work Date: Fri, 13 Mar 2020 09:36:16 +0100 Message-Id: <20200313083617.8326-3-kwolf@redhat.com> In-Reply-To: <20200313083617.8326-1-kwolf@redhat.com> References: <20200313083617.8326-1-kwolf@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.61 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, jsnow@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" With a QEMU bug, it can happen that the QEMU process doesn't react to a 'quit' QMP command. If we got an exception during previous QMP communication (e.g. iotests Timeout expiring), we could also be in an inconsistent state where after sending 'quit' we immediately read an old response and close the socket even though the 'quit' command wasn't processed yet. Both cases would lead to a hanging test. Fix this by waiting for the QEMU process to exit after sending 'quit' with a timeout, and if it doesn't happen within three seconds, send SIGKILL. Signed-off-by: Kevin Wolf Reviewed-by: John Snow Reviewed-by: Philippe Mathieu-Daudé --- python/qemu/machine.py | 1 + 1 file changed, 1 insertion(+) diff --git a/python/qemu/machine.py b/python/qemu/machine.py index 183d8f3d38..c837ee8723 100644 --- a/python/qemu/machine.py +++ b/python/qemu/machine.py @@ -358,6 +358,7 @@ class QEMUMachine(object): if not has_quit: self._qmp.cmd('quit') self._qmp.close() + self._popen.wait(timeout=3) except: self._popen.kill() self._popen.wait() From patchwork Fri Mar 13 08:36:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Kevin Wolf X-Patchwork-Id: 11436269 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7AA5F90 for ; Fri, 13 Mar 2020 08:39:49 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 513FC20724 for ; Fri, 13 Mar 2020 08:39:49 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="XDv0Td9m" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 513FC20724 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:55664 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCfrA-0007Mu-Eg for patchwork-qemu-devel@patchwork.kernel.org; Fri, 13 Mar 2020 04:39:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:45507) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jCfoA-000277-JU for qemu-devel@nongnu.org; Fri, 13 Mar 2020 04:36:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jCfo9-00069o-Id for qemu-devel@nongnu.org; Fri, 13 Mar 2020 04:36:42 -0400 Received: from us-smtp-2.mimecast.com ([205.139.110.61]:29369 helo=us-smtp-delivery-1.mimecast.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jCfo8-00068Q-F6 for qemu-devel@nongnu.org; Fri, 13 Mar 2020 04:36:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1584088600; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=vPB4oQ5LeeBSZP6WQFTmgTeb7Cj2OlsvPKnBSWKdkso=; b=XDv0Td9mkBoaEujEIln8T22F4vpGyaX+gZ4nqqzPskUqq011LK1Jm8UVMrV6f6Pphdihms +6mnJ9j28+o97oshhCGb1eD1h7WPzp4X3OfIZ11VVv/QfBjs/itj8S3Ib1Qj9+dcYS9eRT SEOLAAi5SIizxjDj3FSSt9nTIVv3/n8= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-270-pCcpMtzoOqu1oDCBLdFoXg-1; Fri, 13 Mar 2020 04:36:35 -0400 X-MC-Unique: pCcpMtzoOqu1oDCBLdFoXg-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C64121084420; Fri, 13 Mar 2020 08:36:34 +0000 (UTC) Received: from linux.fritz.box.com (ovpn-117-85.ams2.redhat.com [10.36.117.85]) by smtp.corp.redhat.com (Postfix) with ESMTP id 204DF92D37; Fri, 13 Mar 2020 08:36:31 +0000 (UTC) From: Kevin Wolf To: qemu-block@nongnu.org Subject: [PATCH 3/3] iotests: Increase pause_wait() timeout Date: Fri, 13 Mar 2020 09:36:17 +0100 Message-Id: <20200313083617.8326-4-kwolf@redhat.com> In-Reply-To: <20200313083617.8326-1-kwolf@redhat.com> References: <20200313083617.8326-1-kwolf@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 205.139.110.61 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, jsnow@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Waiting for only 1 second proved to be too short on a loaded system, resulting in false positives when testing pull requests. Increase the timeout a bit to make this less likely. Signed-off-by: Kevin Wolf Reviewed-by: John Snow Reviewed-by: Philippe Mathieu-Daudé --- tests/qemu-iotests/iotests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index b859c303a2..7bc4934cd2 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -925,7 +925,7 @@ class QMPTestCase(unittest.TestCase): self.assert_qmp(event, 'data/type', 'mirror') def pause_wait(self, job_id='job0'): - with Timeout(1, "Timeout waiting for job to pause"): + with Timeout(3, "Timeout waiting for job to pause"): while True: result = self.vm.qmp('query-block-jobs') found = False