The libxl driver has basic support for VIR_MIGRATE_CHANGE_PROTECTION by starting and stopping modify jobs in the begin/confirm and prepare/finish phases of migration, but it doesn't advertise that support. This can result in unterminated jobs because the migration logic skips phases of migration when the VIR_MIGRATE_CHANGE_PROTECTION feature is absent. Ensure jobs are terminated properly by advertising support for VIR_MIGRATE_CHANGE_PROTECTION. Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> --- src/libxl/libxl_driver.c | 2 +- src/libxl/libxl_migration.h | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index d99bc37bf6..2644d1400a 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -5846,8 +5846,8 @@ libxlConnectSupportsFeature(virConnectPtr conn, int feature) case VIR_DRV_FEATURE_MIGRATION_V3: case VIR_DRV_FEATURE_MIGRATION_PARAMS: case VIR_DRV_FEATURE_MIGRATION_P2P: - return 1; case VIR_DRV_FEATURE_MIGRATE_CHANGE_PROTECTION: + return 1; case VIR_DRV_FEATURE_MIGRATION_DIRECT: case VIR_DRV_FEATURE_MIGRATION_OFFLINE: case VIR_DRV_FEATURE_MIGRATION_V1: diff --git a/src/libxl/libxl_migration.h b/src/libxl/libxl_migration.h index 078510c672..19b68d08b7 100644 --- a/src/libxl/libxl_migration.h +++ b/src/libxl/libxl_migration.h @@ -28,7 +28,8 @@ VIR_MIGRATE_TUNNELLED | \ VIR_MIGRATE_PERSIST_DEST | \ VIR_MIGRATE_UNDEFINE_SOURCE | \ - VIR_MIGRATE_PAUSED) + VIR_MIGRATE_PAUSED | \ + VIR_MIGRATE_CHANGE_PROTECTION) /* All supported migration parameters and their types. */ #define LIBXL_MIGRATION_PARAMETERS \ -- 2.41.0