Message ID | 1276120210-17949-1-git-send-email-tamura.yoshiaki@lab.ntt.co.jp |
---|---|
State | New |
Headers | show |
On 06/09/2010 04:50 PM, Yoshiaki Tamura wrote: > 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<crobinso@redhat.com> > Signed-off-by: Yoshiaki Tamura<tamura.yoshiaki@lab.ntt.co.jp> > Applied. Thanks. Regards, Anthony Liguori > -- > 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); > >
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);
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 <crobinso@redhat.com> Signed-off-by: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp> -- 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(-)