Migration capabilities is not reset after the libvirtd service restart

Daniel Henrique Barboza danielhb413 at gmail.com
Wed Jun 16 17:32:35 UTC 2021



On 6/11/21 9:40 AM, Huangzhichao wrote:
> Hi Everyone,
> 
> We find migration capabilities is not reset after restarting libvirtd, it would cause problem in the following scene:
> 
> Version: libvirt release 7.4.0
> 
> Step 1.  create a VM and query migration capabilities, mark the return content as “Cap A”.
> 
> Step 2.  stop the source libvirtd service when executing live migration, then migration failed.
> 
> Step 3.  restart the source libvirtd service, then query migration capabilities, mark the return content  as “Cap B”.
> 
> “Cap A” is different from “Cap B”, because the source libvirtd service would set migration capabilities when executing live migration.
> 
> We find that there is a patch may cause this problem.
> 
> Link:
> 
> https://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=a1dec315c9ad87a198245db0077ef80778621392 <https://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=a1dec315c9ad87a198245db0077ef80778621392>


I'm not sure this patch is the culprit here. IMO the problem seems to
be with the refresh of priv->migrationCaps bitmap in the situation you
described. The migrationCaps from the failed migration are being restored
in libvirtd restart.


> 
> When we roll back this patch, “CAP A” would be the same as “CAP B”.
> 
> Do you have any suggestion ?

I suggest looking into how priv->migrationCaps is being fetched in that
scenario. qemuMigrationCapsCheck() seems like a good place to start
digging since it's the only place where priv->migrationCaps bits are
being set.



Thanks,


Daniel

> 
> Thanks.
> 




More information about the libvir-list mailing list