[libvirt] [PATCH] Do not try to cancel non-existent migration on source

Jiri Denemark jdenemar at redhat.com
Thu Aug 25 19:03:57 UTC 2011


On Tue, Aug 16, 2011 at 21:39:41 +0200, Jiri Denemark wrote:
> On Tue, Aug 16, 2011 at 08:33:04 -0600, Eric Blake wrote:
> > On 08/16/2011 04:44 AM, Jiri Denemark wrote:
> > > If migration failed on source daemon, the migration is automatically
> > > canceled by the daemon itself. Thus we don't need to call
> > > virDomainMigrateConfirm3(cancelled=1). Calling it doesn't cause any harm
> > > but the resulting error message printed in logs may confuse people.
> > > ---
> > >   src/libvirt.c |   41 +++++++++++++++++++++++++----------------
> > >   1 files changed, 25 insertions(+), 16 deletions(-)
> > 
> > Shouldn't qemu_migration.c get the same fix, since peer2peer and
> > tunneled migration basically re-implement the same migration driver
> > function?
> 
> It's reimplementing the same thing but in a different context. The code in
> libvirt.c runs on a client, while qemu_migration.c runs within the qemu driver
> in libvirtd. The virDomainMigratePrform3 API called from libvirt.c cleans up
> after itself; it resumes a domain and finishes the migration job in case of
> error. On the other hand, everything in doPeer2PeerMigrate3 is run within a
> single public API and the function called to do the Perform phase is an
> internal function which doesn't clean up after itself in the same way as the
> public API has to. Hence, we need to call qemuMigrationConfirm to actually
> resume the domain even if the Perform phase failed.

Ping. Did I manage to convince you this patch is complete? :-)

Jirka




More information about the libvir-list mailing list