
Without this change, it's necessary to send a second savevm-end QMP command after aborting a snaphsot, before a new savevm-start QMP command can succeed. In process_savevm_finalize(), no longer set an error in the abort scenario. If there already is another error, there's no need to override it. If canceling was done intentionally, qmp_savevm_end() is responsible for setting the state now. Reported-by: Mira Limbeck <m.limbeck@proxmox.com> Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
36 lines
1.2 KiB
Diff
36 lines
1.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Stefan Reiter <s.reiter@proxmox.com>
|
|
Date: Wed, 26 May 2021 17:36:55 +0200
|
|
Subject: [PATCH] PVE: savevm-async: register yank before
|
|
migration_incoming_state_destroy
|
|
|
|
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
|
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
---
|
|
migration/savevm-async.c | 5 +++++
|
|
1 file changed, 5 insertions(+)
|
|
|
|
diff --git a/migration/savevm-async.c b/migration/savevm-async.c
|
|
index 0bc5799cf8..10ebefef06 100644
|
|
--- a/migration/savevm-async.c
|
|
+++ b/migration/savevm-async.c
|
|
@@ -19,6 +19,7 @@
|
|
#include "qemu/timer.h"
|
|
#include "qemu/main-loop.h"
|
|
#include "qemu/rcu.h"
|
|
+#include "qemu/yank.h"
|
|
|
|
/* #define DEBUG_SAVEVM_STATE */
|
|
|
|
@@ -586,6 +587,10 @@ int load_snapshot_from_blockdev(const char *filename, Error **errp)
|
|
dirty_bitmap_mig_before_vm_start();
|
|
|
|
qemu_fclose(f);
|
|
+
|
|
+ /* state_destroy assumes a real migration which would have added a yank */
|
|
+ yank_register_instance(MIGRATION_YANK_INSTANCE, &error_abort);
|
|
+
|
|
migration_incoming_state_destroy();
|
|
if (ret < 0) {
|
|
error_setg_errno(errp, -ret, "Error while loading VM state");
|