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