Add last meaningful error preservation to virCHProcessStop.
Signed-off-by: Kirill Shchetiniuk <kshcheti@redhat.com>
---
src/ch/ch_process.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/ch/ch_process.c b/src/ch/ch_process.c
index 9a85f7869e..38d466eaeb 100644
--- a/src/ch/ch_process.c
+++ b/src/ch/ch_process.c
@@ -995,11 +995,15 @@ virCHProcessStop(virCHDriver *driver,
virCHDomainObjPrivate *priv = vm->privateData;
virCHDriverConfig *cfg = virCHDriverGetConfig(driver);
virDomainDef *def = vm->def;
+ virErrorPtr orig_err = NULL;
size_t i;
VIR_DEBUG("Stopping VM name=%s pid=%d reason=%d",
vm->def->name, (int)vm->pid, (int)reason);
+ /* Preserve origin error */
+ virErrorPreserveLast(&orig_err);
+
if (priv->monitor) {
g_clear_pointer(&priv->monitor, virCHMonitorClose);
}
@@ -1032,6 +1036,8 @@ virCHProcessStop(virCHDriver *driver,
virHostdevReAttachDomainDevices(driver->hostdevMgr, CH_DRIVER_NAME, def,
hostdev_flags);
+
+ virErrorRestore(&orig_err);
return 0;
}
--
2.48.1
On Thu, Mar 06, 2025 at 11:27:08 +0100, Kirill Shchetiniuk wrote:
> Add last meaningful error preservation to virCHProcessStop.
>
> Signed-off-by: Kirill Shchetiniuk <kshcheti@redhat.com>
> ---
> src/ch/ch_process.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/src/ch/ch_process.c b/src/ch/ch_process.c
> index 9a85f7869e..38d466eaeb 100644
> --- a/src/ch/ch_process.c
> +++ b/src/ch/ch_process.c
> @@ -995,11 +995,15 @@ virCHProcessStop(virCHDriver *driver,
> virCHDomainObjPrivate *priv = vm->privateData;
> virCHDriverConfig *cfg = virCHDriverGetConfig(driver);
> virDomainDef *def = vm->def;
> + virErrorPtr orig_err = NULL;
> size_t i;
>
> VIR_DEBUG("Stopping VM name=%s pid=%d reason=%d",
> vm->def->name, (int)vm->pid, (int)reason);
>
> + /* Preserve origin error */
It's quite self-evident from the function called ;)
> + virErrorPreserveLast(&orig_err);
> +
> if (priv->monitor) {
> g_clear_pointer(&priv->monitor, virCHMonitorClose);
> }
> @@ -1032,6 +1036,8 @@ virCHProcessStop(virCHDriver *driver,
>
> virHostdevReAttachDomainDevices(driver->hostdevMgr, CH_DRIVER_NAME, def,
> hostdev_flags);
> +
> + virErrorRestore(&orig_err);
> return 0;
> }
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
© 2016 - 2026 Red Hat, Inc.