From baaa7b9f8498f73d14c8457e0150d0dfdcdbd245 Mon Sep 17 00:00:00 2001 From: Juan Quintela Date: Tue, 9 Mar 2010 23:58:50 +0100 Subject: [PATCH] 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 --- migration-exec.c | 3 +-- migration-fd.c | 3 +-- migration-tcp.c | 5 ++--- migration-unix.c | 5 ++--- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/migration-exec.c b/migration-exec.c index 87f645b..e57a55d 100644 --- a/migration-exec.c +++ b/migration-exec.c @@ -120,12 +120,11 @@ static void exec_accept_incoming_migration(void *opaque) } qemu_announce_self(); 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) vm_start(); err: + qemu_set_fd_handler2(qemu_stdio_fd(f), NULL, NULL, NULL, NULL); qemu_fclose(f); } diff --git a/migration-fd.c b/migration-fd.c index ef7edbc..7325d13 100644 --- a/migration-fd.c +++ b/migration-fd.c @@ -113,12 +113,11 @@ static void fd_accept_incoming_migration(void *opaque) } qemu_announce_self(); 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) vm_start(); err: + qemu_set_fd_handler2(qemu_stdio_fd(f), NULL, NULL, NULL, NULL); qemu_fclose(f); } diff --git a/migration-tcp.c b/migration-tcp.c index 2cfa8cb..c328e73 100644 --- a/migration-tcp.c +++ b/migration-tcp.c @@ -170,15 +170,14 @@ static void tcp_accept_incoming_migration(void *opaque) qemu_announce_self(); 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) vm_start(); out_fopen: qemu_fclose(f); out: + qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL); + close(s); close(c); } diff --git a/migration-unix.c b/migration-unix.c index a141dbb..9685c4b 100644 --- a/migration-unix.c +++ b/migration-unix.c @@ -176,13 +176,12 @@ static void unix_accept_incoming_migration(void *opaque) qemu_announce_self(); 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: qemu_fclose(f); out: + qemu_set_fd_handler2(s, NULL, NULL, NULL, NULL); + close(s); close(c); } -- 1.6.6.1