From nobody Wed May 8 09:27:44 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1500798407338410.0058841229494; Sun, 23 Jul 2017 01:26:47 -0700 (PDT) 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 ACFC1883B8; Sun, 23 Jul 2017 08:26:44 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 579F560179; Sun, 23 Jul 2017 08:26:44 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 810361805980; Sun, 23 Jul 2017 08:26:43 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v6M8cJZ2007559 for ; Sat, 22 Jul 2017 04:38:20 -0400 Received: by smtp.corp.redhat.com (Postfix) id C813C84781; Sat, 22 Jul 2017 08:38:19 +0000 (UTC) Received: from mx1.redhat.com (ext-mx04.extmail.prod.ext.phx2.redhat.com [10.5.110.28]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BCDF28477F for ; Sat, 22 Jul 2017 08:38:17 +0000 (UTC) Received: from out1.zte.com.cn (out1.zte.com.cn [202.103.147.172]) by mx1.redhat.com (Postfix) with ESMTP id 7227385541 for ; Sat, 22 Jul 2017 08:38:14 +0000 (UTC) Received: from unknown (HELO mse01.zte.com.cn) (10.30.3.20) by localhost with (AES256-SHA encrypted) SMTP; 22 Jul 2017 08:37:07 -0000 Received: from notes_smtp.zte.com.cn ([10.30.1.239]) by mse01.zte.com.cn with ESMTP id v6M8c8WT035098 for ; Sat, 22 Jul 2017 16:38:08 +0800 (GMT-8) (envelope-from wang.yi59@zte.com.cn) Received: from fox-host8.localdomain ([10.74.120.8]) by szsmtp06.zte.com.cn (Lotus Domino Release 8.5.3FP6) with ESMTP id 2017072216381572-4541470 ; Sat, 22 Jul 2017 16:38:15 +0800 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com ACFC1883B8 Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=zte.com.cn Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com ACFC1883B8 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 7227385541 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=zte.com.cn Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=wang.yi59@zte.com.cn DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 7227385541 X-scanvirus: By SEG_CYREN AntiVirus Engine X-scanresult: CLEAN X-MAILFROM: X-RCPTTO: X-FROMIP: 10.30.3.20 X-SEG-Scaned: 1 X-Received: unknown,10.30.3.20,20170722163707 From: Yi Wang To: libvir-list@redhat.com Date: Sat, 22 Jul 2017 04:55:49 -0400 Message-Id: <1500713749-46892-1-git-send-email-wang.yi59@zte.com.cn> X-MIMETrack: Itemize by SMTP Server on SZSMTP06/server/zte_ltd(Release 8.5.3FP6|November 21, 2013) at 2017-07-22 16:38:15, Serialize by Router on notes_smtp/zte_ltd(Release 8.5.3FP6|November 21, 2013) at 2017-07-22 16:37:48, Serialize complete at 2017-07-22 16:37:48 X-MAIL: mse01.zte.com.cn v6M8c8WT035098 X-HQIP: 127.0.0.1 X-Greylist: Delayed for 51:56:05 by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Sat, 22 Jul 2017 08:38:16 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Sat, 22 Jul 2017 08:38:16 +0000 (UTC) for IP:'202.103.147.172' DOMAIN:'out1.zte.com.cn' HELO:'out1.zte.com.cn' FROM:'wang.yi59@zte.com.cn' RCPT:'' X-RedHat-Spam-Score: -0.002 (RP_MATCHES_RCVD, SPF_PASS) 202.103.147.172 out1.zte.com.cn 202.103.147.172 out1.zte.com.cn X-Scanned-By: MIMEDefang 2.78 on 10.5.110.28 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Cc: wang.yi59@zte.com.cn, Liu.Jianjun3@zte.com.cn Subject: [libvirt] [PATCH] qemu: undefine is not allowed during domain starting up X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@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]); Sun, 23 Jul 2017 08:26:45 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Start a domain whilst undefine it, if starting failed duing ProcessLaunch, on which period qemu exited unexpectedly, the operation will lead to failure of undefine the domain until libvirtd restarted. The reason is that libvirtd will unlock vm during qemuProcessStart, qemuDomainUndefineFlags can get the lock and set vm->persistent 0 but not remove the "active" domain. Signed-off-by: Yi Wang --- src/conf/domain_conf.h | 1 + src/qemu/qemu_driver.c | 6 ++++++ src/qemu/qemu_process.c | 3 +++ 3 files changed, 10 insertions(+) diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index af15ee8..f339f84 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2468,6 +2468,7 @@ struct _virDomainObj { virDomainSnapshotObjPtr current_snapshot; =20 bool hasManagedSave; + bool starting; =20 void *privateData; void (*privateDataFreeFunc)(void *); diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 6568def..5d9acfc 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -7317,6 +7317,12 @@ qemuDomainUndefineFlags(virDomainPtr dom, if (!(vm =3D qemuDomObjFromDomain(dom))) return -1; =20 + if (vm->starting) { + virReportError(VIR_ERR_OPERATION_INVALID, + "%s", _("cannot undefine during domain starting up"= )); + goto cleanup; + } + cfg =3D virQEMUDriverGetConfig(driver); =20 if (virDomainUndefineFlagsEnsureACL(dom->conn, vm->def) < 0) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 525521a..7b708be 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5847,6 +5847,8 @@ qemuProcessStart(virConnectPtr conn, if (!migrateFrom && !snapshot) flags |=3D VIR_QEMU_PROCESS_START_NEW; =20 + vm->starting =3D true; + if (qemuProcessInit(driver, vm, updatedCPU, asyncJob, !!migrateFrom, flags) < 0) goto cleanup; @@ -5892,6 +5894,7 @@ qemuProcessStart(virConnectPtr conn, ret =3D 0; =20 cleanup: + vm->starting =3D false; qemuProcessIncomingDefFree(incoming); return ret; =20 --=20 1.8.3.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list