migration: Clear fd also in error cases
Not clearing the fd and closing the file makes qemu spin using 100%CPU after incoming migration error. See for instance bug: https://bugzilla.redhat.com/show_bug.cgi?id=518032 Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
0056dcc114
commit
cfaf6d36ae
@ -120,12 +120,12 @@ static void exec_accept_incoming_migration(void *opaque)
|
|||||||
}
|
}
|
||||||
qemu_announce_self();
|
qemu_announce_self();
|
||||||
DPRINTF("successfully loaded vm state\n");
|
DPRINTF("successfully loaded vm state\n");
|
||||||
/* we've successfully migrated, close the fd */
|
|
||||||
qemu_set_fd_handler2(qemu_stdio_fd(f), NULL, NULL, NULL, NULL);
|
|
||||||
if (autostart)
|
if (autostart)
|
||||||
vm_start();
|
vm_start();
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
qemu_set_fd_handler2(qemu_stdio_fd(f), NULL, NULL, NULL, NULL);
|
||||||
qemu_fclose(f);
|
qemu_fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,12 +113,12 @@ static void fd_accept_incoming_migration(void *opaque)
|
|||||||
}
|
}
|
||||||
qemu_announce_self();
|
qemu_announce_self();
|
||||||
DPRINTF("successfully loaded vm state\n");
|
DPRINTF("successfully loaded vm state\n");
|
||||||
/* we've successfully migrated, close the fd */
|
|
||||||
qemu_set_fd_handler2(qemu_stdio_fd(f), NULL, NULL, NULL, NULL);
|
|
||||||
if (autostart)
|
if (autostart)
|
||||||
vm_start();
|
vm_start();
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
qemu_set_fd_handler2(qemu_stdio_fd(f), NULL, NULL, NULL, NULL);
|
||||||
qemu_fclose(f);
|
qemu_fclose(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,15 +170,14 @@ static void tcp_accept_incoming_migration(void *opaque)
|
|||||||
qemu_announce_self();
|
qemu_announce_self();
|
||||||
DPRINTF("successfully loaded vm state\n");
|
DPRINTF("successfully loaded vm state\n");
|
||||||
|
|
||||||
/* we've successfully migrated, close the server socket */
|
|
||||||
qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
|
|
||||||
close(s);
|
|
||||||
if (autostart)
|
if (autostart)
|
||||||
vm_start();
|
vm_start();
|
||||||
|
|
||||||
out_fopen:
|
out_fopen:
|
||||||
qemu_fclose(f);
|
qemu_fclose(f);
|
||||||
out:
|
out:
|
||||||
|
qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
|
||||||
|
close(s);
|
||||||
close(c);
|
close(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,13 +176,12 @@ static void unix_accept_incoming_migration(void *opaque)
|
|||||||
qemu_announce_self();
|
qemu_announce_self();
|
||||||
DPRINTF("successfully loaded vm state\n");
|
DPRINTF("successfully loaded vm state\n");
|
||||||
|
|
||||||
/* we've successfully migrated, close the server socket */
|
|
||||||
qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
|
|
||||||
close(s);
|
|
||||||
|
|
||||||
out_fopen:
|
out_fopen:
|
||||||
qemu_fclose(f);
|
qemu_fclose(f);
|
||||||
out:
|
out:
|
||||||
|
qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL);
|
||||||
|
close(s);
|
||||||
close(c);
|
close(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user