diff mbox series

[v2,11/21] migration: Fix migration termination

Message ID 20240227180345.548960-12-clg@redhat.com (mailing list archive)
State New, archived
Headers show
Series migration: Improve error reporting | expand

Commit Message

Cédric Le Goater Feb. 27, 2024, 6:03 p.m. UTC
Handle migration termination when in SETUP state. This can happen if
qemu_savevm_state_setup() fails.

Signed-off-by: Cédric Le Goater <clg@redhat.com>
---
 migration/migration.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Peter Xu Feb. 29, 2024, 5:34 a.m. UTC | #1
On Tue, Feb 27, 2024 at 07:03:35PM +0100, Cédric Le Goater wrote:
> Handle migration termination when in SETUP state. This can happen if
> qemu_savevm_state_setup() fails.
> 
> Signed-off-by: Cédric Le Goater <clg@redhat.com>
> ---
>  migration/migration.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/migration/migration.c b/migration/migration.c
> index c1a62b696f62c0d5aca0505e58bc4dc0ff561fde..63294417ff9cae868ad8a167094a795fc30e4da0 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -3161,6 +3161,8 @@ static void migration_iteration_finish(MigrationState *s)
>              }
>          }
>          break;
> +    case MIGRATION_STATUS_SETUP:
> +        break;
>  
>      default:
>          /* Should not reach here, but if so, forgive the VM. */
> @@ -3192,6 +3194,8 @@ static void bg_migration_iteration_finish(MigrationState *s)
>      case MIGRATION_STATUS_CANCELLED:
>      case MIGRATION_STATUS_CANCELLING:
>          break;
> +    case MIGRATION_STATUS_SETUP:
> +        break;
>  
>      default:
>          /* Should not reach here, but if so, forgive the VM. */

Would this cause "query-migrate" to keep reporting "SETUP" even if setup()
failed?

IIUC we may need to set state to FAILED when setup() failed.  If so, this
patch might not be needed.

Thanks,
Cédric Le Goater Feb. 29, 2024, 3:13 p.m. UTC | #2
On 2/29/24 06:34, Peter Xu wrote:
> On Tue, Feb 27, 2024 at 07:03:35PM +0100, Cédric Le Goater wrote:
>> Handle migration termination when in SETUP state. This can happen if
>> qemu_savevm_state_setup() fails.
>>
>> Signed-off-by: Cédric Le Goater <clg@redhat.com>
>> ---
>>   migration/migration.c | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/migration/migration.c b/migration/migration.c
>> index c1a62b696f62c0d5aca0505e58bc4dc0ff561fde..63294417ff9cae868ad8a167094a795fc30e4da0 100644
>> --- a/migration/migration.c
>> +++ b/migration/migration.c
>> @@ -3161,6 +3161,8 @@ static void migration_iteration_finish(MigrationState *s)
>>               }
>>           }
>>           break;
>> +    case MIGRATION_STATUS_SETUP:
>> +        break;
>>   
>>       default:
>>           /* Should not reach here, but if so, forgive the VM. */
>> @@ -3192,6 +3194,8 @@ static void bg_migration_iteration_finish(MigrationState *s)
>>       case MIGRATION_STATUS_CANCELLED:
>>       case MIGRATION_STATUS_CANCELLING:
>>           break;
>> +    case MIGRATION_STATUS_SETUP:
>> +        break;
>>   
>>       default:
>>           /* Should not reach here, but if so, forgive the VM. */
> 
> Would this cause "query-migrate" to keep reporting "SETUP" even if setup()
> failed?
> 
> IIUC we may need to set state to FAILED when setup() failed.  If so, this
> patch might not be needed.

Oh yes. you are right. I will see how that can be done.

Thanks for the feedback.

C.
diff mbox series

Patch

diff --git a/migration/migration.c b/migration/migration.c
index c1a62b696f62c0d5aca0505e58bc4dc0ff561fde..63294417ff9cae868ad8a167094a795fc30e4da0 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -3161,6 +3161,8 @@  static void migration_iteration_finish(MigrationState *s)
             }
         }
         break;
+    case MIGRATION_STATUS_SETUP:
+        break;
 
     default:
         /* Should not reach here, but if so, forgive the VM. */
@@ -3192,6 +3194,8 @@  static void bg_migration_iteration_finish(MigrationState *s)
     case MIGRATION_STATUS_CANCELLED:
     case MIGRATION_STATUS_CANCELLING:
         break;
+    case MIGRATION_STATUS_SETUP:
+        break;
 
     default:
         /* Should not reach here, but if so, forgive the VM. */