On 04/20/2011 12:23 PM, Wen Congyang wrote:
At 04/20/2011 05:41 PM, Jason Krieg Write:
Hi,

is tunnelled migration with libvirt 0.9.0 and qemu-kvm 0.14.0 broken ?

all I get is an error "unknown migration protocol"

while looking at the code in src/qemu/qemu_migration.c

src/qemu/qemu_migration.c:

     /* Start the QEMU daemon, with the same command-line arguments plus
      * -incoming stdin (which qemu_command might convert to exec:cat or
fd:n)
      */
     internalret = qemuProcessStart(dconn, driver, vm, "stdin", true,
dataFD[1],
                                    NULL, VIR_VM_OP_MIGRATE_IN_START);



migrateFrom is set to "stdin" but in src/qemu/qemu_command.c
there is no such match which ends in the above error.
Yes, the tunnelled migration has been broken.

Please applied the following patch and try it again:

 From 55dac9d193644b7957ea730b8739633cd185d494 Mon Sep 17 00:00:00 2001
From: Wen Congyang<we...@cn.fujitsu.com>
Date: Wed, 20 Apr 2011 18:20:12 +0800
Subject: [PATCH] fix tunnelled migration's regression

If the migrateFrom is "stdio" not "stdin", qemuBuildCommandLine()
will convert it to exec:cat or fd:n.

---
  src/qemu/qemu_migration.c |    4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 43741e1..bba76d5 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -316,9 +316,9 @@ qemuMigrationPrepareTunnel(struct qemud_driver *driver,
          goto endjob;
      }
      /* Start the QEMU daemon, with the same command-line arguments plus
-     * -incoming stdin (which qemu_command might convert to exec:cat or fd:n)
+     * -incoming stdio (which qemu_command might convert to exec:cat or fd:n)
       */
-    internalret = qemuProcessStart(dconn, driver, vm, "stdin", true, dataFD[1],
+    internalret = qemuProcessStart(dconn, driver, vm, "stdio", true, dataFD[1],
                                     NULL, VIR_VM_OP_MIGRATE_IN_START);
      if (internalret<  0) {
          qemuAuditDomainStart(vm, "migrated", false);


that was my first guess but it does not work the remote monitor socket does not show up

libvirt is running as root so it should not be a permission problem

qemuMonitorOpenUnix:289 : monitor socket did not show up.: Connection refused qemuProcessWaitForMonitor:1059 : internal error process exited while connecting to monitor: Migration failed. Exit code fd:14(-22), exiting.





--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to