From nobody Sat Oct 24 20:21:07 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1791924563; cv=none; d=zohomail.com; s=zohoarc; b=XiXleDB7BLd4CE0NZM9fm6b63rxeHdL+27bQAuilufLP96qqn6gZzjUCM96s31lYX3QmFpUEYunATuy336eO3crAZCTbfq1QIlgbw+jCNvdVtnHHRf/+zUa0vJj6MIIJiyneEuVHRnIpT8rVjPkyN0jl0u8wGaR0xrsV+XefFEc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791924563; h=Content-Transfer-Encoding:Date:Date:From:From:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:Subject:Subject:To:To:Message-Id:Cc; bh=4tsFijvcXY+UWjf9e84y8eW/FY4f6fv1jIiICSSTU+Y=; b=WXHzd3MitG3YaweKT4RR5+s8ioesaCTl4yXjhPHL67NBOCu8281rmYhnQUPvFSjg2fapF/rUOc9dcbptWtFeMHoi0NT5mRdQm+Ghkk4gTrTgPGfnXmMyV5vuZNVg+9T7GFxZdiJfeYLbQurgNWTGTqL3VetyNATh5fe9qB7JfXA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1791924563116420.8353421830295; Tue, 13 Oct 2026 13:49:23 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 9FE223FD01; Tue, 13 Oct 2026 16:49:21 -0400 (EDT) Received: from [172.19.199.16] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id BB02141AE0; Tue, 13 Oct 2026 16:48:20 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 2F0963F93E; Tue, 13 Oct 2026 16:48:13 -0400 (EDT) Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 454193F232 for ; Tue, 13 Oct 2026 16:48:12 -0400 (EDT) Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-4980fe6b3beso28488005e9.0 for ; Tue, 13 Oct 2026 13:48:12 -0700 (PDT) Received: from localhost ([2605:a601:9a24:9400::a]) by smtp.gmail.com with UTF8SMTPSA id 46e09a7af769-8303494f64csm13024926a34.3.2026.10.13.13.48.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Oct 2026 13:48:07 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1791924491; x=1792529291; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=4tsFijvcXY+UWjf9e84y8eW/FY4f6fv1jIiICSSTU+Y=; b=PafKIxqOvvyT9hex4S4lv4Fw/jxwT2GMy24pZCspj+zxbcJhcODr814yK4a2yzbk3x UxBymVv9+Pc9QPT5E+EYCMurZkBIZ3eJohd5ELU1rcqdWeaeOEdDpd/X9dL5mHQPQ2oO RicOQ1ydwj+PmTJVcA/TaOIw385phzamN5pHgjJOPXkawYSSm6Vg4Tz2LctWL3QFb1y2 kAhjfOPhOaxVDllCBSDQTYVbEbiZtevbBvVU+87AOcwi6nHRCbFgHh0G10OXRcHLl2Sm nZSOgsJ5c4QCrpQarfs2NDPuF9t76WadpeBE6st7VmpWbWmYSbXG/9zLefq7UivJxaft EzZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791924491; x=1792529291; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to:content-type; bh=4tsFijvcXY+UWjf9e84y8eW/FY4f6fv1jIiICSSTU+Y=; b=IVmd6rjD2gbKa64bdOBwYD06rHnDyHdaQl0sR5JM92NAiLM5KY1B1WgSKE4bJMGI0A yW5N2lTEx6hRbroW5OxSTxP1G9SmK0yDU3vMl7De2Y3/FAF8nHGsFsn6nLeeVspk2rvC snUtDtzASPyMw9F/Quwb33qtPUMSkso74b+T58DPhSA6pTENUApJjmnzIz58lrb44hP2 bTH4cMEFLL8g7xG0RX44yHiT0ic+grgQoKPRdNGnikMV2fPD+j/M8p+FnpRjSOCh2AEj yGQRAvWO/Xsz/CIqba4DGexpV5fAS5mw6Dv7L2J5fdnBC2jjuX3B8r1j8unis1zxL7WA tPdg== X-Gm-Message-State: AFq9FYIJ1BAEP4Atx5yXuX1lU3+zpEH9fVAjIF933zlNAAY2M388cPot tCH/JZX6bKzvMwx2zprtR9HifXwC8CRT5V5kCZ5LyoZm/DFsg04+d3lgMsdG1BPG7iK7dgYqpTR jrqSl5hQ= X-Gm-Gg: AYBFou3b8Xtrz37izIYjcu7e3Yla7o7o1J7o2bek70ABKbff3gCp6wesuOUuNsnttcw qe98oo7bQW6qi9rorTYYdIU2dzto2QzgD+mC+LypXRN94JE0m0MYSJ+omI0Q78izIsfeSX+ori0 IuNVtnlx3n6orxRwOzpTfME0M0y8r+GcC4MmrksQ/4ftZzvgkSjAcJWscOAwZnW3utevupK+Z1Y SaxrPMCTlD0EITCiZYWp1ZE5yMAUDQP9WfAcwxqv1IC02SFJO283FW7cZfD0V7dANjIxmy/scBw 3i0URWgrGwpS1eWIKvGPRjgy51ruS1YdPqcfRSsrKTzOQR4ZMvE5QtJNPrsSrFx9MAwdaYobkyR Hp8nN44+v3u9esKjY51P5XVPOFrOy+jd5GFOnSxv7YhvCaGV3wetWlaQxcYVQ1EfIaZ7aSkUTCI 5Tx9MjYHiAsUMD7OuIs6XcBXpmaWx4AdJwicJEmrC3HXo= X-Received: by 2002:a05:600c:a317:b0:4a0:321:6dad with SMTP id 5b1f17b1804b1-4a18dcd5254mr225423195e9.16.1791924491043; Tue, 13 Oct 2026 13:48:11 -0700 (PDT) To: devel@lists.libvirt.org Subject: [PATCH] qemu: emit UNDEFINED event when undefining source after migration Date: Tue, 13 Oct 2026 14:47:29 -0600 Message-ID: <20261013204804.58937-1-jfehlig@suse.com> X-Mailer: git-send-email 2.51.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: ALURIGLQ7Z2K7W5NJEOP5QI5WONCGFMI X-Message-ID-Hash: ALURIGLQ7Z2K7W5NJEOP5QI5WONCGFMI X-MailFrom: jfehlig@suse.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Jim Fehlig via Devel Reply-To: Jim Fehlig X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1791924565577158500 Content-Type: text/plain; charset="utf-8" From: Jim Fehlig When migrating with VIR_MIGRATE_UNDEFINE_SOURCE, qemuMigrationSrcConfirm() and qemuMigrationSrcPerformJob() delete the domain's persistent config on the source host but never emit a VIR_DOMAIN_EVENT_UNDEFINED lifecycle event. Applications relying solely on domain events never learn the domain was undefined on the source. Emit the event, reusing the existing VIR_DOMAIN_EVENT_UNDEFINED_REMOVED detail since the semantics match virDomainUndefine(). Signed-off-by: Jim Fehlig Reviewed-by: Michal Privoznik --- 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 797f83ca0d..f336437734 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -4279,6 +4279,7 @@ qemuMigrationSrcConfirm(virQEMUDriver *driver, { qemuMigrationJobPhase phase; g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); + virObjectEvent *event =3D NULL; int ret =3D -1; =20 VIR_DEBUG("vm=3D%p, flags=3D0x%x, cancelled=3D%d", vm, flags, cancelle= d); @@ -4325,11 +4326,15 @@ qemuMigrationSrcConfirm(virQEMUDriver *driver, if (!cancelled && ret =3D=3D 0 && flags & VIR_MIGRATE_UNDEFINE_SOU= RCE) { virDomainDeleteConfig(cfg->configDir, cfg->autostartDir, vm); vm->persistent =3D 0; + event =3D virDomainEventLifecycleNewFromObj(vm, + VIR_DOMAIN_EVENT_UNDEFINED, + VIR_DOMAIN_EVENT_UNDEFINED_RE= MOVED); } qemuDomainRemoveInactive(vm, VIR_DOMAIN_UNDEFINE_TPM, true); } =20 cleanup: + virObjectEventStateQueue(driver->domainEventState, event); virDomainObjEndAPI(&vm); return ret; } @@ -6328,6 +6333,7 @@ qemuMigrationSrcPerformJob(virQEMUDriver *driver, bool v3proto) { virObjectEvent *event =3D NULL; + virObjectEvent *undefine_event =3D NULL; int ret =3D -1; virErrorPtr orig_err =3D NULL; g_autoptr(virQEMUDriverConfig) cfg =3D virQEMUDriverGetConfig(driver); @@ -6419,6 +6425,9 @@ qemuMigrationSrcPerformJob(virQEMUDriver *driver, if (flags & VIR_MIGRATE_UNDEFINE_SOURCE) { virDomainDeleteConfig(cfg->configDir, cfg->autostartDir, vm); vm->persistent =3D 0; + undefine_event =3D virDomainEventLifecycleNewFromObj(vm, + VIR_DOMAIN_EVENT_UNDEFINED, + VIR_DOMAIN_EVENT_UNDEFINED_RE= MOVED); } qemuDomainRemoveInactive(vm, 0, true); } @@ -6427,6 +6436,7 @@ qemuMigrationSrcPerformJob(virQEMUDriver *driver, =20 cleanup: virObjectEventStateQueue(driver->domainEventState, event); + virObjectEventStateQueue(driver->domainEventState, undefine_event); return ret; } =20 --=20 2.51.0