qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 1/2] migration: Clear fd also in error cases


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PATCH 1/2] migration: Clear fd also in error cases
Date: Wed, 17 Mar 2010 11:57:54 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Lightning/1.0pre Thunderbird/3.0

On 03/09/2010 05:10 PM, Juan Quintela wrote:
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<address@hidden>

Applied all.  Thanks.

Regards,

Anthony Liguori

---
  migration-exec.c |    4 ++--
  migration-fd.c   |    4 ++--
  migration-tcp.c  |    5 ++---
  migration-unix.c |    5 ++---
  4 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/migration-exec.c b/migration-exec.c
index 3edc026..6ff8449 100644
--- a/migration-exec.c
+++ b/migration-exec.c
@@ -120,12 +120,12 @@ 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 0cc74ad..9cf52ce 100644
--- a/migration-fd.c
+++ b/migration-fd.c
@@ -113,12 +113,12 @@ 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 e7f307c..95ce722 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 b7aab38..ce59a2a 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);
  }






reply via email to

[Prev in Thread] Current Thread [Next in Thread]