
-----Original Message----- From: Eric Blake [mailto:eblake@redhat.com] Sent: Wednesday, March 28, 2012 9:47 AM To: Christian Benvenuti (benve) Cc: Laine Stump; Libvirt Subject: Re: [libvirt] [PATCH] qemu: Make migration fail when port
Thanks for fixing it. /Chris profile association fails on the
dst host
On 03/27/2012 02:27 PM, Christian Benvenuti (benve) wrote:
In the current V3 migration protocol, Libvirt does not check the result of the function
qemuMigrationVPAssociatePortProfiles
This means that it is possible for a migration to complete successfully even when the VM loses network connectivity on the destination host.
With this change libvirt aborts the migration (during the "finish" step) when the above function fails, that is to say when at least one of the port profile associations fails.
Signed-off by: Christian Benvenuti <benve@cisco.com>
--- src/qemu/qemu_migration.c | 20 ++++++++++++++++---- 1 files changed, 16 insertions(+), 4 deletions(-)
@@ -2731,13 +2731,17 @@ qemuMigrationVPAssociatePortProfiles(virDomainDefPtr def) {
virDomainNetGetActualDirectDev(net),
-1, def->uuid, -
VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_FINISH, false) < 0)
+ VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_FINISH, + false) < 0) { + VIR_ERROR("Port profile Associate failed for %s", net->ifname); goto err_exit;
VIR_ERROR is logged, but not propagated back to the caller; besides, 'make syntax-check' warned that it was not a translated error message. I'm applying this to convert to our preferred error reporting:
diff --git i/src/qemu/qemu_migration.c w/src/qemu/qemu_migration.c index c30c40b..49a260d 100644 --- i/src/qemu/qemu_migration.c +++ w/src/qemu/qemu_migration.c @@ -2733,7 +2733,9 @@ qemuMigrationVPAssociatePortProfiles(virDomainDefPtr def) { def->uuid,
VIR_NETDEV_VPORT_PROFILE_OP_MIGRATE_IN_FINISH, false) < 0) { - VIR_ERROR("Port profile Associate failed for %s", net->ifname); + qemuReportError(VIR_ERR_OPERATION_FAILED, + _("Port profile Associate failed for %s"), + net->ifname); goto err_exit; } VIR_DEBUG("Port profile Associate succeeded for %s", net->ifname);
ACK with that fixed, so I added you to AUTHORS (let me know if you prefer an alternate spelling), and pushed.
-- Eric Blake eblake@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org