[libvirt] [PATCH] migration: Fix possible bug for migrate cancel

Gonglei (Arei) arei.gonglei at huawei.com
Fri Mar 28 09:18:35 UTC 2014


> > >> Return error for migrate cancel, when migration status is not
> > >> MIG_STATE_SETUP or MIG_STATE_ACTIVE. Thus, libvirt can can
> > >> perceive the operation fails.
> > >>
> > >> Signed-off-by: zengjunliang <zengjunliang at huawei.com>
> > >> Signed-off-by: Gonglei <arei.gonglei at huawei.com>
> > >
> > > I think this is done on purpose, because canceling migration is racy.
> > > Instead, libvirt should do "query-migrate" and check if the migration
> > > was completed or canceled.
> >
> > Can you please give more details at how you are triggering the problem
> > with libvirt?  I think Paolo is probably right - the bug is more likely
> > to be in libvirt not expecting the race and not recovering correctly
> > when the race occurs, than it is to be in changing qemu's state algorithm.
> >
> When the migration progress reaches 100%, and the migration status becomes
> MIG_STATE_COMPLETED in Qemu.
> It will take some time which from MIG_STATE_COMPLETED to the migration
> thread resources are recovered.
> If we cancel the migration at this moment, the migrate_fd_cancel function will
> break directly without reporting
> error code. Then, libvirt considers the cancle operation a success, contrary
> facts.
> 

Ping... 


Best regards,
-Gonglei




More information about the libvir-list mailing list