On Fri, Dec 13, 2024 at 01:01:19PM -0300, Fabiano Rosas wrote:
> Commit f5f48a7891 ("migration/multifd: Separate SYNC request with
> normal jobs") changed the multifd source side to stop sending data
> along with the MULTIFD_FLAG_SYNC, effectively introducing the concept
> of a SYNC-only packet. Relying on that, commit d7e58f412c
> ("migration/multifd: Don't send ram data during SYNC") later came
> along and skipped reading data from SYNC packets.
> 
> In a versions timeline like this:
> 
>   8.2 f5f48a7 9.0 9.1 d7e58f41 9.2
> 
> The issue arises that QEMUs < 9.0 still send data along with SYNC, but
> QEMUs > 9.1 don't gather that data anymore. This leads to various
> kinds of migration failures due to desync/missing data.
> 
> Stop checking for a SYNC packet on the destination and unconditionally
> unfill the packet.
> 
> From now on:
> 
> old -> new:
> the source sends data + sync, destination reads normally
> 
> new -> new:
> source sends only sync, destination reads zeros
> 
> new -> old:
> source sends only sync, destination reads zeros
> 
> CC: qemu-sta...@nongnu.org
> Fixes: d7e58f412c ("migration/multifd: Don't send ram data during SYNC")
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2720
> Signed-off-by: Fabiano Rosas <faro...@suse.de>

Reviewed-by: Peter Xu <pet...@redhat.com>

-- 
Peter Xu


Reply via email to