[libvirt] [PATCH] Better error reporting for failed migration.

Chris Lalancette clalance at redhat.com
Thu Oct 15 09:26:38 UTC 2009


The comment in the code says most of it, but when the destination
hostname resolution is screwed up, print a proper error instead
of the very unhelpful "unknown error".

Note that I'm not overly fond of the wording in the error message,
so I'm open to suggestions.

Signed-off-by: Chris Lalancette <clalance at redhat.com>
---
 src/qemu/qemu_driver.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index d37b184..02bb5cb 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -6288,6 +6288,22 @@ qemudDomainMigratePrepare2 (virConnectPtr dconn,
             goto cleanup;
         }
 
+        /* Remember that we are running on the destination.  The hostname that
+         * we resolve here will be used on the source machine in the "migrate"
+         * monitor command.  Because of that, localhost is almost always the
+         * wrong thing.  Adding this check explicitly breaks localhost
+         * migration, but only for those machines that have improperly
+         * configured hostname resolution.
+         */
+        if (STREQ(hostname, "localhost")) {
+            VIR_FREE(hostname);
+            qemudReportError(dconn, NULL, NULL, VIR_ERR_INVALID_ARG, "%s",
+                             _("Could not resolve destination hostname; "
+                               "either fix destination to resolve hostname, "
+                               "or use the optional URI migration parameter"));
+            goto cleanup;
+        }
+
         /* XXX this really should have been a properly well-formed
          * URI, but we can't add in tcp:// now without breaking
          * compatability with old targets. We at least make the
-- 
1.6.0.6




More information about the libvir-list mailing list