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

Eric Blake eblake at redhat.com
Thu Aug 25 19:30:43 UTC 2011


On 08/25/2011 01:03 PM, Jiri Denemark wrote:
> 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? :-)

Yes.  ACK, although since I just pushed Alex' patch, you might have a 
merge conflict to fix when you rebase.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list