[libvirt PATCH 4/4] virDomainObjGetState: Promote VIR_DOMAIN_PAUSED_POSTCOPY_FAILED
Jiri Denemark
jdenemar at redhat.com
Thu Dec 15 14:37:44 UTC 2022
In case a domain is in failed post-copy migration but paused for a
different reason, report VIR_DOMAIN_PAUSED_POSTCOPY_FAILED instead to
make it more visible.
---
Notes:
This commit is intentionally missing
Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
because I can find reasons for both pushing and not pushing this change.
It is pretty ugly and masks the real reason behind the paused state. On
the other hand, reporting the real reason means users would not really
know post-copy migration failed unless they saw the corresponding event.
src/conf/domain_conf.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index f83586c549..6097ea3ffc 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -27865,8 +27865,15 @@ virDomainObjCopyPersistentDef(virDomainObj *dom,
virDomainState
virDomainObjGetState(virDomainObj *dom, int *reason)
{
- if (reason)
- *reason = dom->state.reason;
+ if (reason) {
+ if (dom->state.state == VIR_DOMAIN_PAUSED &&
+ dom->job && dom->job->asyncPaused &&
+ (dom->job->asyncJob == VIR_ASYNC_JOB_MIGRATION_IN ||
+ dom->job->asyncJob == VIR_ASYNC_JOB_MIGRATION_OUT))
+ *reason = VIR_DOMAIN_PAUSED_POSTCOPY_FAILED;
+ else
+ *reason = dom->state.reason;
+ }
return dom->state.state;
}
--
2.39.0
More information about the libvir-list
mailing list