On Tue, Dec 30, 2014 at 01:04:16PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> Because of wrong return value of .save_live_pending() in
> migration/block.c, migration finishes before the whole disk is
> transferred. Such situation occurs when the migration process is fast
> enough, for example when source and dest are on the same host.
> 
> If in the bulk phase we return something < max_size, we will skip
> transferring the tail of the device. Currently we have "set pending to
> BLOCK_SIZE if it is zero" for bulk phase, but there no guarantee, that
> it will be < max_size.
> 
> True approach is to return, for example, max_size+1 when we are in the
> bulk phase.
> 
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@parallels.com>
> ---
>  migration/block.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Yikes, this is a nasty bug.  CCing qemu-stable.

Thanks, applied to my block tree:
https://github.com/stefanha/qemu/commits/block

Stefan

Attachment: pgpDcFIaBF5zQ.pgp
Description: PGP signature

Reply via email to