On Wed, Feb 25, 2026 at 11:27:14 +0100, Jiri Denemark via Devel wrote:
> From: Jiri Denemark <[email protected]>
> 
> When a domain is in post-copy migration phase, we need to keep the job
> active if something fails to protect the domain from changes.
> Unfortunately, there is a race between migration code and
> qemuProcessStop that can cause the job to stay active even when the
> domain is gone and thus preventing the domain from being started again
> (until virtqemud is restarted). The race is caused by unlocking the vm
> object when calling virConnectUnregisterCloseCallback. While the domain
> is unlocked qemuProcessStop can finish its work and the domain may no
> longer be active when we get the lock back. The post-copy path does not
> properly check if a domain is still active.
> 
> Instead of adding the virDomainObjIsActive check in all places where
> this could happen, we can add it in virDomainObjIsPostcopy and
> virDomainObjIsFailedPostcopy and let the code take the pre-copy cleanup
> path. Clearly an inactive domain can never be in (failed) post-copy
> migration.
> 
> https://issues.redhat.com/browse/RHEL-145179
> 
> Signed-off-by: Jiri Denemark <[email protected]>
> ---
>  src/conf/domain_conf.c | 6 ++++++
>  1 file changed, 6 insertions(+)

Reviewed-by: Peter Krempa <[email protected]>

Reply via email to