From nobody Mon Aug 24 09:07:50 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=pass; 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=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1786121872; cv=none; d=zohomail.com; s=zohoarc; b=UQpeLFksta8bt+v5/vKZ+MmBBW+YJMp2lCCKDAuVCrmDjDRiXmQHi5UMzKddHAQT1KW+QcF0MN2+TyXao+n9TCO3g52FECFTqoxs3rpuyiiziemk6Paagpe8Um71fSf/aZhfgMP5trYoI7aqVHxIoOb3RdB96rVgls1zihA9ab4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1786121872; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Subject:Subject:To:To:Message-Id:Reply-To; bh=eWwdMpBdKlzhW6PyWGKAHX0OFadGgVne1R2YgpJR+eQ=; b=WTfUCjKOudHoxF0yv0rQQHlshXmUFrrgmIL+dBOI8mt66KyujWPr+NGFZAUW7y9YB7JKit8Rn2g6E4p9Z5xyxpB8m9u0TeD7XjBKYpyVSpLbzn8p+4b21ii5q2+3+VMToquKhKB0gPFfpa+5MxUi/WR9rF1v8IwIGW0flyUYCFg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; 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=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1786121872348663.3666528532226; Fri, 7 Aug 2026 09:57:52 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id C8E093FA64; Fri, 7 Aug 2026 12:57:50 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id BF4E74196B; Fri, 7 Aug 2026 12:56:58 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 8EFC23F28F; Fri, 7 Aug 2026 12:56:50 -0400 (EDT) Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) (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 BD0CA3F334 for ; Fri, 7 Aug 2026 12:56:49 -0400 (EDT) Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-c2055573c8cso385078866b.3 for ; Fri, 07 Aug 2026 09:56:49 -0700 (PDT) Received: from tulp.my.domain (2001-1c02-1a15-3000-ee82-4536-a8f2-9e22.cable.dynamic.v6.ziggo.nl. [2001:1c02:1a15:3000:ee82:4536:a8f2:9e22]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c2080cf6e7fsm72652066b.55.2026.08.07.09.56.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Aug 2026 09:56:47 -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_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,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=gmail.com; s=20251104; t=1786121808; x=1786726608; darn=lists.libvirt.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=eWwdMpBdKlzhW6PyWGKAHX0OFadGgVne1R2YgpJR+eQ=; b=QabnJJgRsF4rmcOtuUbbO1ZEpXKuhniGPw03Kbx1ssMjHRNci4vFE1fHSgm/YZL0Ka x0xWyRMH5zmUSwTnCJjYrdsxzf6tyCdeTFAEq6yZkBhKE0wYa5YDTUJyj9NbhjY5kzfm 5aMq7ch2il8fTcua27U0ZhFBlswTVm6LxKHX747EYs1eEuZWU5NAjgC88RZ+quJbEz1J uBbW7h1sSLseL08cD0adeMABiQ3FN808tZQaTG1D2xV64dm5uro+WBULkwGyerrPJrzd AF8J9fcYglfQtVkQ1zmJKMJiqMVQuXawrlVskYZy4OTH9yBl588fXJZ837pKoI4T7+BN QxbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786121808; x=1786726608; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=eWwdMpBdKlzhW6PyWGKAHX0OFadGgVne1R2YgpJR+eQ=; b=Dk5bYhUFfGYQ1yUOIHMrQgarHsZTsX9WPpl32i6ZWlZ1iK9qge16CUWb32fncwB7uc 9FH3CxFNeJzuYUNmrRtG9RRm2eyBE5q0v718eA6d+BQ7CDlhYcRlU1ZeZXsTfI1hir9w q8K/r7TKx5NdkdMJJGPuHvspq/QtwNNx7GMD39FyutC7Rctw56xhd5VXRQS0KmA8qiaU UaZ22HUWtE7j5VdE6Kj7gGXJgUT7JDQGmUm4nkEDfVlrDiGe35ech8Kbp9ZDy6Yzv19f Sx7kmCEnQQr1XfmxbEZSAN5DV5ELny75m5NUDqnCz2Ca5KnPp6PCTMf+7mcd9PhimuOE KAtg== X-Gm-Message-State: AOJu0YyUrDzFr1xjPgn5JORfAJFVtNSMkpnDNF9KYS++nEOg+KBzamVS uI1GXJfKJ/gIUcqf6eGE103S297HcuOg0wByWPBFRaaUcHSz3o10kKjnr/5QBZf1 X-Gm-Gg: AR+sD11VYvHmO0FXdb55CYLynhMWDxciS/kWk8q78QQebk9KkJCEAydTWOqDA6Suo6P sdduscaBLnan5AXWMllO018FfA56Lre7g2edqU0+sAXDJ+ZP8JLK5Z0xf/LnOG539gWpO67hOGN eqGMwJwqXvkn9RziW5r0p1L9Ffqol71GPeUkGaXCNUIAxfq0A1j3CrtuA3KwuVMWRzSG6Vf7oOz YGZz2Ch3pIOabzZMT8kNiIf23DYfwXyw3tlCosJJqJnyAwFMlG6KJa8ZEASelb4PO0/Cq1ILk7d hpzIFqp3qv+74/3RgYteuFSsZWbJaTksKFyOK6ShIThQdlnJsnrONy1XwVsqNMj+fFtDJZDFfkR y9qW9p4mLOYTQ0q4D3VnRhVGmXXKpeD7kJ/NAuz+Fhq5sU0JQizNlyNuQBAHkrLi5GGp5m0hCwU UQWqcKnoRoa+MUziQwSzEitq8fVFy2P25FonEPWu+o05GCqBdewGA4U/5jr4bySLwP2zufrFT24 I4aC15H82BZiHQ5LJ6BCWSWl4iQOoCRDIi7Zh8NpKtGMb3IJhaswUttwmCtKF4d8sqo4NtcxgU= X-Received: by 2002:a17:907:c241:b0:c1c:6150:c2f1 with SMTP id a640c23a62f3a-c2039b49a08mr1321282466b.8.1786121807967; Fri, 07 Aug 2026 09:56:47 -0700 (PDT) From: Roman Bogorodskiy To: devel@lists.libvirt.org Subject: [PATCH] bhyve: restore persistent definition after process stop Date: Fri, 7 Aug 2026 18:55:29 +0200 Message-ID: <20260807165529.42920-1-bogorodskiy@gmail.com> X-Mailer: git-send-email 2.52.0 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: AQO24HNPHBEIAFJHDBASTJOLNK7534QO X-Message-ID-Hash: AQO24HNPHBEIAFJHDBASTJOLNK7534QO X-MailFrom: bogorodskiy@gmail.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 CC: Roman Bogorodskiy 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: X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1786121873273158500 Content-Type: text/plain; charset="utf-8" The virBhyveProcessStop() function which handles bhyve process shutdown does not remove the transient definition, meaning that it overrides the persistent definition. Update it to call virDomainObjRemoveTransientDef(). Also, move the body of the code to virBhyveProcessStopImpl() which accepts 'restoreDef' argument telling whether the transient definition should be removed. That is necessary as reboot is implemented as stop + start, and in this case the transient definition should not be removed. Closes: https://gitlab.com/libvirt/libvirt/-/work_items/900 Signed-off-by: Roman Bogorodskiy Reviewed-by: Martin Kletzander --- src/bhyve/bhyve_process.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/bhyve/bhyve_process.c b/src/bhyve/bhyve_process.c index 81f00954c2..65e3bdfd02 100644 --- a/src/bhyve/bhyve_process.c +++ b/src/bhyve/bhyve_process.c @@ -630,6 +630,7 @@ bhyveProcessRemoveDomainStatus(const char *statusDir, * @vm: domain object * @reason: shutoff reason * @forceCleanup: boolean controlling cleanup + * @restoreDef: whether to restore the persistent definition after cleanup * * Stops the domain and cleans up its resources. * It could be used whether as a direct call or as a cleanup routine. @@ -641,11 +642,12 @@ bhyveProcessRemoveDomainStatus(const char *statusDir, * * Returns 0 on success, -1 on error. */ -int -virBhyveProcessStop(struct _bhyveConn *driver, - virDomainObj *vm, - virDomainShutoffReason reason, - bool forceCleanup) +static int +virBhyveProcessStopImpl(struct _bhyveConn *driver, + virDomainObj *vm, + virDomainShutoffReason reason, + bool forceCleanup, + bool restoreDef) { int ret =3D 0; size_t i =3D 0; @@ -724,9 +726,21 @@ virBhyveProcessStop(struct _bhyveConn *driver, virPidFileDelete(BHYVE_STATE_DIR, vm->def->name); bhyveProcessRemoveDomainStatus(BHYVE_STATE_DIR, vm->def->name); =20 + if (restoreDef) + virDomainObjRemoveTransientDef(vm); + return ret; } =20 +int +virBhyveProcessStop(struct _bhyveConn *driver, + virDomainObj *vm, + virDomainShutoffReason reason, + bool forceCleanup) +{ + return virBhyveProcessStopImpl(driver, vm, reason, forceCleanup, true); +} + int virBhyveProcessShutdown(virDomainObj *vm) { @@ -754,7 +768,8 @@ int virBhyveProcessRestart(struct _bhyveConn *driver, virDomainObj *vm) { - if (virBhyveProcessStop(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN, false= ) < 0) + if (virBhyveProcessStopImpl(driver, vm, VIR_DOMAIN_SHUTOFF_SHUTDOWN, + false, false) < 0) return -1; =20 if (virBhyveProcessStartImpl(driver, vm, VIR_DOMAIN_RUNNING_BOOTED) < = 0) --=20 2.52.0