From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=58031 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OMOZ9-0005fN-Th for qemu-devel@nongnu.org; Wed, 09 Jun 2010 12:55:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OMOZ8-0001CE-6F for qemu-devel@nongnu.org; Wed, 09 Jun 2010 12:55:47 -0400 Received: from mx1.redhat.com ([209.132.183.28]:3218) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OMOZ7-0001Bm-Vq for qemu-devel@nongnu.org; Wed, 09 Jun 2010 12:55:46 -0400 Message-ID: <4C0FC4CF.1010605@redhat.com> Date: Wed, 09 Jun 2010 12:43:59 -0400 From: Cole Robinson MIME-Version: 1.0 Subject: Re: [Qemu-devel] [Bug 589315] [NEW] qemu: Improve error reporting when migration can't connect References: <20100603181944.2106.17684.malonedeb@soybean.canonical.com> <20100603181944.2106.17684.malonedeb@soybean.canonical.com> In-Reply-To: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Yoshiaki Tamura Cc: qemu-devel@nongnu.org On 06/03/2010 05:41 PM, Yoshiaki Tamura wrote: > > Hi, > > Does the following patch fix the problem? > > Thanks, > > Yoshi > > [PATCH] migration-tcp: call migrate_fd_error() instead of close() and free(). > > This patch fixes the following error report. When changing > migration-tcp.c to call migrate_fd_error() instead of close() and > free() by itself, monitor is resumed, and returns allocated mig_state > is set to current_migration in migration.c allows us to print "info > migrate". > > Reported-by: Cole Robinson > Signed-off-by: Yoshiaki Tamura > > -- > qemu: Improve error reporting when migration can't connect > https://bugs.launchpad.net/bugs/589315 > You received this bug notification because you are a member of qemu- > devel-ml, which is subscribed to QEMU. > > Status in QEMU: New > > Bug description: > Tested with upstream qemu as of Jun 3 2010 > > If the source qemu instance can't connect to the migration destination (say > there is no listening QEMU instance, or port is blocked by a firewall), all we > get is info migrate -> Migration status: failed. This is all we have to report > back to libvirt users if their firewall is misconfigured, which is crappy. > > Ideally, if we can't connect, migration would fail immediately with a relevant > message and strerror(). More info from 'info migrate' would be nice too, no > idea how this will play with QMP though. > > As a slightly related issue, try entering > > migrate tcp:127.0.0.0:6000 > > We get a 'migration failed' error, and then the monitor hangs! > -- > --- > migration-tcp.c | 4 +--- > 1 files changed, 1 insertions(+), 3 deletions(-) > > diff --git a/migration-tcp.c b/migration-tcp.c > index 95ce722..43af2e0 100644 > --- a/migration-tcp.c > +++ b/migration-tcp.c > @@ -128,9 +128,7 @@ MigrationState *tcp_start_outgoing_migration(Monitor *mon, > > if (ret < 0 && ret != -EINPROGRESS && ret != -EWOULDBLOCK) { > DPRINTF("connect failed\n"); > - close(s->fd); > - qemu_free(s); > - return NULL; > + migrate_fd_error(s); > } else if (ret >= 0) > migrate_fd_connect(s); > Yes, this fixes the monitor hang. Thanks! - Cole