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.


Reply via email to