Re: [PATCH 3/3] qemu: Properly abort migration to a file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 05/22/14 13:55, Jiri Denemark wrote:
> This is similar to the previous commit in that we need to explicitly
> send migrate_cancel when libvirt detects an error other than those
> reported by query-migrate. However, the possibility to hit such error is
> pretty small.
> 
> Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx>
> ---
>  src/qemu/qemu_migration.c | 21 ++++++++++++++++++++-
>  1 file changed, 20 insertions(+), 1 deletion(-)
> 
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index ae18acb..5754f73 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -4704,6 +4704,7 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm,
>      int pipeFD[2] = { -1, -1 };
>      unsigned long saveMigBandwidth = priv->migMaxBandwidth;
>      char *errbuf = NULL;
> +    virErrorPtr orig_err = NULL;
>  
>      /* Increase migration bandwidth to unlimited since target is a file.
>       * Failure to change migration speed is not fatal. */
> @@ -4806,8 +4807,17 @@ qemuMigrationToFile(virQEMUDriverPtr driver, virDomainObjPtr vm,
>  
>      rc = qemuMigrationWaitForCompletion(driver, vm, asyncJob, NULL, false);
>  
> -    if (rc < 0)
> +    if (rc < 0) {
> +        if (rc == -2) {
> +            orig_err = virSaveLastError();
> +            virCommandAbort(cmd);

Shouldn't we abort the migration in qemu before killing the I/O helper?
Qemu will get a sigpipe probably after we do that. Not sure wether
that's worth dealing with as the migration is still going to fail.

> +            if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
> +                qemuMonitorMigrateCancel(priv->mon);
> +                qemuDomainObjExitMonitor(driver, vm);
> +            }
> +        }
>          goto cleanup;
> +    }
>  
>      if (cmd && virCommandWait(cmd, NULL) < 0)
>          goto cleanup;

ACK, preferably you respond to my question before pushing :)

Peter


Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]