From nobody Fri Apr 26 04:54:54 2024 Delivered-To: importer2@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer2=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1673534178; cv=none; d=zohomail.com; s=zohoarc; b=aA7Uv7owrtC1He3K1kL9uDAvpdzamChUqh+dzWmQ0MOOfNooDJXSljQVn3p1EfvX6kcnyBfJEpQWwfQJIPMIldBA2AYEAoFA2HEanKAlfLnnFDW5AuFIpYFyvh6FWLACZWR9brzX4j2OxVQuyMljtAFG5TxIyJSDZCOebgEhrfw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1673534178; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=HSM/AJz2kGWPrQiiWz1+SRaycGiRwPQnbtcg+oknzpo=; b=Evr3mMR+GXeuTWHnm9h258YUa8u2/p/F/N0xUZgQIZaK6eMm6JfanJhiUP2u3vnjeWYCcfWZQdekYb67Wv6nfYus3OEwuwfEc7CkhVA+djAAhGzuTmKdsk/0h+Ftib7jBikQ1Fvn/1TXlfGDnxSR+QikHXKwCCZdLDstZAPHOQk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer2=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTP id 1673534178297839.3870512677235; Thu, 12 Jan 2023 06:36:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pFyf7-0003ns-Km; Thu, 12 Jan 2023 09:34:38 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pFyet-0003fC-Ut for qemu-devel@nongnu.org; Thu, 12 Jan 2023 09:34:34 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5] helo=mx0a-001b2d01.pphosted.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pFyeq-0002aK-Is for qemu-devel@nongnu.org; Thu, 12 Jan 2023 09:34:22 -0500 Received: from pps.filterd (m0098420.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30CEK7QR027607; Thu, 12 Jan 2023 14:34:18 GMT Received: from pps.reinject (localhost [127.0.0.1]) by mx0b-001b2d01.pphosted.com (PPS) with ESMTPS id 3n2kvmrc0e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 12 Jan 2023 14:34:18 +0000 Received: from m0098420.ppops.net (m0098420.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 30CEKLIg027904; Thu, 12 Jan 2023 14:34:18 GMT Received: from ppma03wdc.us.ibm.com (ba.79.3fa9.ip4.static.sl-reverse.com [169.63.121.186]) by mx0b-001b2d01.pphosted.com (PPS) with ESMTPS id 3n2kvmrbyu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 12 Jan 2023 14:34:18 +0000 Received: from pps.filterd (ppma03wdc.us.ibm.com [127.0.0.1]) by ppma03wdc.us.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 30CE2fcU013176; Thu, 12 Jan 2023 14:34:17 GMT Received: from smtprelay07.wdc07v.mail.ibm.com ([9.208.129.116]) by ppma03wdc.us.ibm.com (PPS) with ESMTPS id 3n1k93st74-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 12 Jan 2023 14:34:17 +0000 Received: from smtpav06.wdc07v.mail.ibm.com (smtpav06.wdc07v.mail.ibm.com [10.39.53.233]) by smtprelay07.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 30CEYGxO918102 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 12 Jan 2023 14:34:16 GMT Received: from smtpav06.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8EC7E58056; Thu, 12 Jan 2023 14:34:16 +0000 (GMT) Received: from smtpav06.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 015285804E; Thu, 12 Jan 2023 14:34:16 +0000 (GMT) Received: from sbct-3.pok.ibm.com (unknown [9.47.158.153]) by smtpav06.wdc07v.mail.ibm.com (Postfix) with ESMTP; Thu, 12 Jan 2023 14:34:15 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : mime-version : content-type : content-transfer-encoding; s=pp1; bh=HSM/AJz2kGWPrQiiWz1+SRaycGiRwPQnbtcg+oknzpo=; b=R5IImGK6cyTxMIKjApT2VpiDbVJMRg2j32oOktm+i4vN1D8N5LlzhfiGxJtTdZ9d4DuA OBjwUfHc7kSnrf3cZI58/uFUdYOyNquX0AcqRBJIJDqqthuP2UJc9zhxpgbSMpv+5alz g1y4RtO4TzDN6aqP7OEabp+aGb0En8umM2/Hx+liCHtGnDnonISR/zdIUuxQdivJ7tVr 1KMuzU1f9d0XwXa7De3tKkWY5NrkqsiFWbNxJLhocXkGL62iePBauAxPoJ2rBFWDXDri pYfyCsSA11oqPMrRR/Av/xzQ9h3W2y7vhrwRUZE9lX3cKqnFSSoYYiqC1vkWaODpx6I4 7Q== From: Stefan Berger To: qemu-devel@nongnu.org Cc: marcandre.lureau@redhat.com, peter.maydell@linaro.org, berrange@redhat.com, Stefan Berger Subject: [PATCH v2] tests/qtest: Poll on waitpid() for a while before sending SIGKILL Date: Thu, 12 Jan 2023 09:34:13 -0500 Message-Id: <20230112143413.3979057-1-stefanb@linux.ibm.com> X-Mailer: git-send-email 2.39.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 1Oaxib3TMNbxe_2Ex3UIBa3DdZbkrhXl X-Proofpoint-GUID: 0oZyrfHFRtOQsUhPEM3jXTiLeZ-8VwF5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2023-01-12_08,2023-01-12_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 mlxlogscore=794 malwarescore=0 spamscore=0 bulkscore=0 impostorscore=0 clxscore=1015 mlxscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301120105 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=stefanb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer2=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer2=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1673534180555100001 To prevent getting stuck on waitpid() in case the target process does not terminate on SIGTERM, poll on waitpid() for 30s and if the target process has not changed state until then send a SIGKILL to it. Signed-off-by: Stefan Berger Reviewed-by: Daniel P. Berrang=C3=A9 --- tests/qtest/libqtest.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c index 2fbc3b88f3..0150946ebb 100644 --- a/tests/qtest/libqtest.c +++ b/tests/qtest/libqtest.c @@ -49,6 +49,8 @@ # define DEV_NULL "nul" #endif =20 +#define WAITPID_TIMEOUT 30 + typedef void (*QTestSendFn)(QTestState *s, const char *buf); typedef void (*ExternalSendFn)(void *s, const char *buf); typedef GString* (*QTestRecvFn)(QTestState *); @@ -202,8 +204,24 @@ void qtest_wait_qemu(QTestState *s) { #ifndef _WIN32 pid_t pid; + uint64_t end; + + /* poll for a while until sending SIGKILL */ + end =3D g_get_monotonic_time() + WAITPID_TIMEOUT * G_TIME_SPAN_SECOND; + + do { + pid =3D waitpid(s->qemu_pid, &s->wstatus, WNOHANG); + if (pid !=3D 0) { + break; + } + g_usleep(100 * 1000); + } while (g_get_monotonic_time() < end); + + if (pid =3D=3D 0) { + kill(s->qemu_pid, SIGKILL); + TFR(pid =3D waitpid(s->qemu_pid, &s->wstatus, 0)); + } =20 - TFR(pid =3D waitpid(s->qemu_pid, &s->wstatus, 0)); assert(pid =3D=3D s->qemu_pid); #else DWORD ret; --=20 2.39.0