From nobody Sun May 19 00:17:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677855477; cv=none; d=zohomail.com; s=zohoarc; b=VxI69DjtzVDXcB2bbAWm2zi4jhQdz++y8jAuImyHPNsJ8yUA6D+st+VfBsbGNhkendcOan1sEuSC66J8oewH/ecKJyliRyabjJC6SwRDMHpHcwMRf32bawRAu7NmmYtP0YzEvOMLWjYM8sdSKlgmCUIq7L8neGNtN9bYXTWsznE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677855477; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Qi2F5jNsN9sXF7B7lDqIvortOpG/2UYgMJPD0/A4P7o=; b=m2xl6X8kqGgyk44aCHJeD15hav9D/NW5hyD+q42eOeyumLMJQD+9iNeGbMOMBy2e++ym3dA0KSEua9ZU3Inl0H0VM4CfxqA1sjNNEXC+Ed2Xzt7NnmK3qXJ3A9IA+fmb1U+GlGYjxSr44S2xXw5kCYYW8zk0LoSXB94DtWIuxAE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1677855477901431.49658300774377; Fri, 3 Mar 2023 06:57:57 -0800 (PST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-167-VXOey8AeMJqtJ44YQW5-bg-1; Fri, 03 Mar 2023 09:57:52 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B2AC318A646A; Fri, 3 Mar 2023 14:57:49 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9D0B1C16027; Fri, 3 Mar 2023 14:57:49 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 727BC19452CD; Fri, 3 Mar 2023 14:57:49 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 71718194866E for ; Fri, 3 Mar 2023 14:57:48 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 55DF2C16029; Fri, 3 Mar 2023 14:57:48 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.45.226.61]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1854DC16027 for ; Fri, 3 Mar 2023 14:57:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677855476; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=Qi2F5jNsN9sXF7B7lDqIvortOpG/2UYgMJPD0/A4P7o=; b=V8bKMdDLok347OxPlCUyey5s7f82DXu/Iph4esnwPJ9V8VpWruJC8TEFlDTkwBgtE3RrX2 kfulCGXETyVMLi5cYCUpeERygv5ObCk7IWctxNvVLhd1Ze7nkEpIEnbNDfXTQ4TQnB+vUD QA2TKrKc8x1S3TodxekfyObzFnW5PKc= X-MC-Unique: VXOey8AeMJqtJ44YQW5-bg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 1/3] Clarify VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR semantics Date: Fri, 3 Mar 2023 15:57:42 +0100 Message-Id: <16737e37f3e3795844a23b7dfae19d1069d6f762.1677855414.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677855479347100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- include/libvirt/libvirt-domain.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-dom= ain.h index 5152ed4551..53cab6bd4c 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -3823,7 +3823,7 @@ typedef enum { VIR_DOMAIN_EVENT_SUSPENDED_WATCHDOG =3D 3, /* Suspended due to a watc= hdog firing (Since: 0.8.0) */ VIR_DOMAIN_EVENT_SUSPENDED_RESTORED =3D 4, /* Restored from paused st= ate file (Since: 0.9.5) */ VIR_DOMAIN_EVENT_SUSPENDED_FROM_SNAPSHOT =3D 5, /* Restored from pause= d snapshot (Since: 0.9.5) */ - VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR =3D 6, /* suspended after failure= during libvirt API call (Since: 1.0.1) */ + VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR =3D 6, /* Some APIs (e.g., migrat= ion, snapshot) internally need to suspend a domain. This event detail is us= ed when resume operation at the end of such API fails. (Since: 1.0.1) */ VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY =3D 7, /* suspended for post-copy = migration (Since: 1.3.3) */ VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY_FAILED =3D 8, /* suspended after f= ailed post-copy (Since: 1.3.3) */ =20 --=20 2.39.2 From nobody Sun May 19 00:17:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677855479; cv=none; d=zohomail.com; s=zohoarc; b=Wk9Z3sxXsg2qWvcRlWhyuhtOB+SM04YgWZI9BU1FW/3dDdBtUXImx8m8OVl02Lc4XpVhiGnW1Hg8TGdW12q9dsas1cahIqqm6LqCIGkNxhtxCTk+zEUcZAOTqg9hN3KJebJGyS8iHBK/kPPkTd30tWa4FeNldXaRduZEKwer7Lc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677855479; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=/4hvZcGZ0sctEeoWPKBY2lH6VgHbn3j5/mvY6t93MYY=; b=Z+gGlU4oyH6vGdRbIoJ9R3d61ZEY85cW/kRBQyzwxKL9ILBVuhOHltpxvAhP0Ec0C5zQQj6xPT0uB5punwu56PWg5E88bPlmZu6OfrVrpwwwuRZgjvmI2VK714a6nMCGCyEr0pFnXax+gE7N5gvjtFafcM300ew76Wo794B1Y2A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1677855479159287.87014510541155; Fri, 3 Mar 2023 06:57:59 -0800 (PST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-618-MijGz-JsObSr6pCOStAvSg-1; Fri, 03 Mar 2023 09:57:53 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id BB77687B2A0; Fri, 3 Mar 2023 14:57:50 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id A85D32026D4B; Fri, 3 Mar 2023 14:57:50 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 8CE5F19452CD; Fri, 3 Mar 2023 14:57:50 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx09.intmail.prod.int.rdu2.redhat.com [10.11.54.9]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 515DE19465A0 for ; Fri, 3 Mar 2023 14:57:49 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 469CA492C14; Fri, 3 Mar 2023 14:57:49 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.45.226.61]) by smtp.corp.redhat.com (Postfix) with ESMTP id 08A3E492C1B for ; Fri, 3 Mar 2023 14:57:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677855478; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=/4hvZcGZ0sctEeoWPKBY2lH6VgHbn3j5/mvY6t93MYY=; b=ajs7kU65iQa56w+O3OK9DiND/8hLCGE/UHN5VxDDo3jvg3res1mXUqs3IBiAU/wBn6ULpT d0tAj+ZOPUMnkrIK4CJX8WQvYFn5htLV5ZcjVun69mD5Cb33B1bST0FK5OqzGgbNRrU6Qq jLU4m2pKpXyueHn6bVArljk5GhL0S+s= X-MC-Unique: MijGz-JsObSr6pCOStAvSg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 2/3] Introduce VIR_DOMAIN_PAUSED_API_ERROR Date: Fri, 3 Mar 2023 15:57:43 +0100 Message-Id: <5d5ed84c10019956669228d6900fc8634bb89021.1677855414.git.jdenemar@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.9 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677855479382100002 Content-Type: text/plain; charset="utf-8" Some APIs (migration, save/restore, snapshot, ...) require a domain to be suspended temporarily. In case resuming the domain fails, the domain will be unexpectedly left paused when the API finishes. This situation is reported via VIR_DOMAIN_EVENT_SUSPENDED event with VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR detail. But we do not have a corresponding reason for VIR_DOMAIN_PAUSED state and the reason would remain set to the value used when the domain was paused. So the state reason would suggest the operation is still running. This patch changes the state reason to a new VIR_DOMAIN_PAUSED_API_ERROR to make it clear the API that paused the domain already finished, but failed to resume the domain. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- include/libvirt/libvirt-domain.h | 1 + src/conf/domain_conf.c | 1 + src/qemu/qemu_domain.c | 3 +++ src/qemu/qemu_driver.c | 8 ++++++++ src/qemu/qemu_snapshot.c | 8 ++++++++ tools/virsh-domain-monitor.c | 1 + 6 files changed, 22 insertions(+) diff --git a/include/libvirt/libvirt-domain.h b/include/libvirt/libvirt-dom= ain.h index 53cab6bd4c..3ebb2c6642 100644 --- a/include/libvirt/libvirt-domain.h +++ b/include/libvirt/libvirt-domain.h @@ -148,6 +148,7 @@ typedef enum { VIR_DOMAIN_PAUSED_STARTING_UP =3D 11, /* the domain is being started (= Since: 1.2.14) */ VIR_DOMAIN_PAUSED_POSTCOPY =3D 12, /* paused for post-copy migratio= n (Since: 1.3.3) */ VIR_DOMAIN_PAUSED_POSTCOPY_FAILED =3D 13, /* paused after failed post-= copy (Since: 1.3.3) */ + VIR_DOMAIN_PAUSED_API_ERROR =3D 14, /* Some APIs (e.g., migration, s= napshot) internally need to suspend a domain. This paused state reason is u= sed when resume operation at the end of such API fails. (Since: 9.2.0) */ =20 # ifdef VIR_ENUM_SENTINELS VIR_DOMAIN_PAUSED_LAST /* (Since: 0.9.10) */ diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 34d38f9958..f9b28acc76 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1163,6 +1163,7 @@ VIR_ENUM_IMPL(virDomainPausedReason, "starting up", "post-copy", "post-copy failed", + "api error", ); =20 VIR_ENUM_IMPL(virDomainShutdownReason, diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index f5fd140c85..fb269d0cd1 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -11372,6 +11372,9 @@ qemuDomainPausedReasonToSuspendedEvent(virDomainPau= sedReason reason) case VIR_DOMAIN_PAUSED_POSTCOPY: return VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY; =20 + case VIR_DOMAIN_PAUSED_API_ERROR: + return VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR; + case VIR_DOMAIN_PAUSED_UNKNOWN: case VIR_DOMAIN_PAUSED_USER: case VIR_DOMAIN_PAUSED_SAVE: diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 3f353eadfa..7256c75c47 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -2727,6 +2727,10 @@ qemuDomainSaveInternal(virQEMUDriver *driver, virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SUSPENDED, VIR_DOMAIN_EVENT_SUSPENDED_API_ER= ROR)); + if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_PAUSE= D) { + virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, + VIR_DOMAIN_PAUSED_API_ERROR); + } } virErrorRestore(&save_err); } @@ -3254,6 +3258,10 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT= _SUSPENDED, VIR_DOMAIN_EVENT= _SUSPENDED_API_ERROR); + if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_PAUSE= D) { + virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, + VIR_DOMAIN_PAUSED_API_ERROR); + } if (virGetLastErrorCode() =3D=3D VIR_ERR_OK) virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("resuming after dump failed")); diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index cfa531edef..e101b43dd3 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -326,6 +326,10 @@ qemuSnapshotCreateActiveInternal(virQEMUDriver *driver, event =3D virDomainEventLifecycleNewFromObj(vm, VIR_DOMAIN_EVENT_SUSPENDED, VIR_DOMAIN_EVENT_SUSPENDED_API_ER= ROR); + if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_PAUSED) { + virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, + VIR_DOMAIN_PAUSED_API_ERROR); + } if (virGetLastErrorCode() =3D=3D VIR_ERR_OK) { virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("resuming after snapshot failed")); @@ -1398,6 +1402,10 @@ qemuSnapshotCreateActiveExternal(virQEMUDriver *driv= er, VIR_DOMAIN_EVENT_SUSPENDED, VIR_DOMAIN_EVENT_SUSPENDED_API_ER= ROR); virObjectEventStateQueue(driver->domainEventState, event); + if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_PAUSED) { + virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, + VIR_DOMAIN_PAUSED_API_ERROR); + } if (virGetLastErrorCode() =3D=3D VIR_ERR_OK) { virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("resuming after snapshot failed")); diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c index c2134faba1..bdade8f251 100644 --- a/tools/virsh-domain-monitor.c +++ b/tools/virsh-domain-monitor.c @@ -192,6 +192,7 @@ VIR_ENUM_IMPL(virshDomainPausedReason, N_("starting up"), N_("post-copy"), N_("post-copy failed"), + N_("api error"), ); =20 VIR_ENUM_DECL(virshDomainShutdownReason); --=20 2.39.2 From nobody Sun May 19 00:17:08 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1677855643; cv=none; d=zohomail.com; s=zohoarc; b=bee/yvTCPxUYagBMqwqb78IK221dkP2ZxXrOMCElIfaSeMdoV+M3Ir99SS6KjGd5KWheVgcXg0Kq2Qv/f1aoPcxm0RAhN2crTaWaVHfVkPXspJxkQ4MJ8xnRLNdPLkzcXjKCPoro+2tYnRyCnC0eo6PSlvlkaAt8DY+yixnnPwU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1677855643; h=Content-Type:Content-Transfer-Encoding:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=mPQ6cfYmUp4T9W4xLV7u2yUMMVx328ILXoE7pFhR2tk=; b=PyrNOwK8Tzl1gzh0LLwWUen0+FteREtHJ4yGixXVaqCkdXWayD9g9WVyRpBZ2RgZ1RlIbXYyf50SkorR56tb55afizLIfhu2QHoNtldytMuLq3DuOmKLW0RCfb6y1Dy6F7zeccD3xnVewjy6CWtHa7uy3qD9wEKoqwQ6yEV99AM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1677855643969711.7308632087518; Fri, 3 Mar 2023 07:00:43 -0800 (PST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-634-jyJPoQExMeqKScqnWcz-Sg-1; Fri, 03 Mar 2023 10:00:24 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 11F3B803D53; Fri, 3 Mar 2023 14:57:51 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (unknown [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id E2A8C14171BB; Fri, 3 Mar 2023 14:57:50 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id C4B79194866E; Fri, 3 Mar 2023 14:57:50 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 4176019465A0 for ; Fri, 3 Mar 2023 14:57:50 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 37D4CC16027; Fri, 3 Mar 2023 14:57:50 +0000 (UTC) Received: from rein.int.mamuti.net (unknown [10.45.226.61]) by smtp.corp.redhat.com (Postfix) with ESMTP id EE7C7C1602B for ; Fri, 3 Mar 2023 14:57:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1677855643; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=mPQ6cfYmUp4T9W4xLV7u2yUMMVx328ILXoE7pFhR2tk=; b=A2hZzxh+aOm6baw+O4+MbQed4GCViSg+z8LDlsyMiJ/VgNwfW4bIurO8NmzOvL+eRr2V0K OOHlwhdjrhb9UDoCv/PhMAnT0MgSyhsAi0HnbWuPiVac8gIJILjxyAJDYSh2zWYkrWE/RG wEXreaVsVmV2w7UQPAKY2tux7y3AsTk= X-MC-Unique: jyJPoQExMeqKScqnWcz-Sg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Jiri Denemark To: libvir-list@redhat.com Subject: [libvirt PATCH 3/3] qemu_migration: Use VIR_DOMAIN_PAUSED_API_ERROR Date: Fri, 3 Mar 2023 15:57:44 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1677855656545100001 Content-Type: text/plain; charset="utf-8" Other APIs that internally use QEMU migration and need to temporarily suspend a domain already report failure to resume vCPUs by setting VIR_DOMAIN_PAUSED_API_ERROR state reason and emitting VIR_DOMAIN_EVENT_SUSPENDED event with VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR. Let's do the same in qemuMigrationSrcRestoreDomainState for consistent behavior. Signed-off-by: Jiri Denemark Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_migration.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 2720f0b083..efec1b3be6 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -251,6 +251,16 @@ qemuMigrationSrcRestoreDomainState(virQEMUDriver *driv= er, virDomainObj *vm) * overwrite the previous error, though, so we just throw some= thing * to the logs and hope for the best */ VIR_ERROR(_("Failed to resume guest %s after failure"), vm->de= f->name); + if (virDomainObjGetState(vm, NULL) =3D=3D VIR_DOMAIN_PAUSED) { + virObjectEvent *event; + + virDomainObjSetState(vm, VIR_DOMAIN_PAUSED, + VIR_DOMAIN_PAUSED_API_ERROR); + event =3D virDomainEventLifecycleNewFromObj(vm, + VIR_DOMAIN_EVENT= _SUSPENDED, + VIR_DOMAIN_EVENT= _SUSPENDED_API_ERROR); + virObjectEventStateQueue(driver->domainEventState, event); + } goto cleanup; } ret =3D true; --=20 2.39.2