We were retrying when there was one error, entering a loop. Signed-off-by: Juan Quintela <quint...@redhat.com> --- migration.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/migration.c b/migration.c index a02100b..6082c32 100644 --- a/migration.c +++ b/migration.c @@ -269,6 +269,7 @@ static ssize_t migrate_fd_put_buffer(void *opaque, const void *data, static void migrate_fd_put_ready(void *opaque) { MigrationState *s = opaque; + int ret; if (s->state != MIG_STATE_ACTIVE) { DPRINTF("put_ready returning because of non-active state\n"); @@ -276,7 +277,10 @@ static void migrate_fd_put_ready(void *opaque) } DPRINTF("iterate\n"); - if (qemu_savevm_state_iterate(s->mon, s->file) == 1) { + ret = qemu_savevm_state_iterate(s->mon, s->file); + if (ret == -1) { + migrate_fd_error(s); + } else if (ret == 1) { int old_vm_running = vm_running; DPRINTF("done iterating\n"); -- 1.7.4