[libvirt PATCH 66/80] qemu: Handle incoming migration in qemuMigrationAnyConnectionClosed

Jiri Denemark posted 80 patches 3 years, 9 months ago
There is a newer version of this series
[libvirt PATCH 66/80] qemu: Handle incoming migration in qemuMigrationAnyConnectionClosed
Posted by Jiri Denemark 3 years, 9 months ago
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
 src/qemu/qemu_migration.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index c0ab59f688..c1a60c90ef 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -2378,15 +2378,12 @@ qemuMigrationAnyConnectionClosed(virDomainObj *vm,
     case QEMU_MIGRATION_PHASE_POSTCOPY_FAILED:
     case QEMU_MIGRATION_PHASE_BEGIN_RESUME:
     case QEMU_MIGRATION_PHASE_PERFORM_RESUME:
+    case QEMU_MIGRATION_PHASE_PREPARE_RESUME:
         VIR_DEBUG("Connection closed while resuming failed post-copy migration");
         postcopy = true;
         break;
 
     case QEMU_MIGRATION_PHASE_PREPARE:
-    case QEMU_MIGRATION_PHASE_FINISH2:
-    case QEMU_MIGRATION_PHASE_FINISH3:
-    case QEMU_MIGRATION_PHASE_PREPARE_RESUME:
-    case QEMU_MIGRATION_PHASE_FINISH_RESUME:
         /* incoming migration; the domain will be autodestroyed */
         return;
 
@@ -2395,6 +2392,9 @@ qemuMigrationAnyConnectionClosed(virDomainObj *vm,
     case QEMU_MIGRATION_PHASE_CONFIRM3:
     case QEMU_MIGRATION_PHASE_CONFIRM3_CANCELLED:
     case QEMU_MIGRATION_PHASE_CONFIRM_RESUME:
+    case QEMU_MIGRATION_PHASE_FINISH2:
+    case QEMU_MIGRATION_PHASE_FINISH3:
+    case QEMU_MIGRATION_PHASE_FINISH_RESUME:
         /* all done; unreachable */
     case QEMU_MIGRATION_PHASE_PERFORM2:
         /* single phase outgoing migration; unreachable */
@@ -2407,6 +2407,8 @@ qemuMigrationAnyConnectionClosed(virDomainObj *vm,
     if (postcopy) {
         if (priv->job.asyncJob == VIR_ASYNC_JOB_MIGRATION_OUT)
             qemuMigrationSrcPostcopyFailed(vm);
+        else
+            qemuMigrationDstPostcopyFailed(vm);
         ignore_value(qemuMigrationJobSetPhase(vm, QEMU_MIGRATION_PHASE_POSTCOPY_FAILED));
         qemuDomainCleanupAdd(vm, qemuProcessCleanupMigrationJob);
         qemuMigrationJobContinue(vm);
-- 
2.35.1
Re: [libvirt PATCH 66/80] qemu: Handle incoming migration in qemuMigrationAnyConnectionClosed
Posted by Peter Krempa 3 years, 9 months ago
On Tue, May 10, 2022 at 17:21:27 +0200, Jiri Denemark wrote:
> Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
> ---
>  src/qemu/qemu_migration.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> index c0ab59f688..c1a60c90ef 100644
> --- a/src/qemu/qemu_migration.c
> +++ b/src/qemu/qemu_migration.c
> @@ -2378,15 +2378,12 @@ qemuMigrationAnyConnectionClosed(virDomainObj *vm,
>      case QEMU_MIGRATION_PHASE_POSTCOPY_FAILED:
>      case QEMU_MIGRATION_PHASE_BEGIN_RESUME:
>      case QEMU_MIGRATION_PHASE_PERFORM_RESUME:
> +    case QEMU_MIGRATION_PHASE_PREPARE_RESUME:
>          VIR_DEBUG("Connection closed while resuming failed post-copy migration");
>          postcopy = true;
>          break;
>  
>      case QEMU_MIGRATION_PHASE_PREPARE:
> -    case QEMU_MIGRATION_PHASE_FINISH2:
> -    case QEMU_MIGRATION_PHASE_FINISH3:
> -    case QEMU_MIGRATION_PHASE_PREPARE_RESUME:
> -    case QEMU_MIGRATION_PHASE_FINISH_RESUME:

What was the point of moving these to a separate section and then moving
them back, where they were before?

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Re: [libvirt PATCH 66/80] qemu: Handle incoming migration in qemuMigrationAnyConnectionClosed
Posted by Jiri Denemark 3 years, 8 months ago
On Thu, May 12, 2022 at 17:09:27 +0200, Peter Krempa wrote:
> On Tue, May 10, 2022 at 17:21:27 +0200, Jiri Denemark wrote:
> > Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
> > ---
> >  src/qemu/qemu_migration.c | 10 ++++++----
> >  1 file changed, 6 insertions(+), 4 deletions(-)
> > 
> > diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
> > index c0ab59f688..c1a60c90ef 100644
> > --- a/src/qemu/qemu_migration.c
> > +++ b/src/qemu/qemu_migration.c
> > @@ -2378,15 +2378,12 @@ qemuMigrationAnyConnectionClosed(virDomainObj *vm,
> >      case QEMU_MIGRATION_PHASE_POSTCOPY_FAILED:
> >      case QEMU_MIGRATION_PHASE_BEGIN_RESUME:
> >      case QEMU_MIGRATION_PHASE_PERFORM_RESUME:
> > +    case QEMU_MIGRATION_PHASE_PREPARE_RESUME:
> >          VIR_DEBUG("Connection closed while resuming failed post-copy migration");
> >          postcopy = true;
> >          break;
> >  
> >      case QEMU_MIGRATION_PHASE_PREPARE:
> > -    case QEMU_MIGRATION_PHASE_FINISH2:
> > -    case QEMU_MIGRATION_PHASE_FINISH3:
> > -    case QEMU_MIGRATION_PHASE_PREPARE_RESUME:
> > -    case QEMU_MIGRATION_PHASE_FINISH_RESUME:
> 
> What was the point of moving these to a separate section and then moving
> them back, where they were before?

No idea. Possibly wrong split between patches. I'll squash the changes
into the previous patch.

Jirka