From: Luiz Capitulino <lcapitulino@redhat.com>
To: Juan Quintela <quintela@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/5] Exit if incoming migration fails
Date: Tue, 25 May 2010 15:01:57 -0300 [thread overview]
Message-ID: <20100525150157.6c8d1599@redhat.com> (raw)
In-Reply-To: <889abbffe3359f5160234e580cb663ec6189174e.1274796992.git.quintela@redhat.com>
On Tue, 25 May 2010 16:21:01 +0200
Juan Quintela <quintela@redhat.com> wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
> migration.c | 16 ++++++++++------
> migration.h | 2 +-
> vl.c | 7 ++++++-
> 3 files changed, 17 insertions(+), 8 deletions(-)
>
> diff --git a/migration.c b/migration.c
> index 05f6cc5..9c1d4b6 100644
> --- a/migration.c
> +++ b/migration.c
> @@ -36,22 +36,26 @@ static uint32_t max_throttle = (32 << 20);
>
> static MigrationState *current_migration;
>
> -void qemu_start_incoming_migration(const char *uri)
> +int qemu_start_incoming_migration(const char *uri)
> {
> const char *p;
> + int ret;
>
> if (strstart(uri, "tcp:", &p))
> - tcp_start_incoming_migration(p);
> + ret = tcp_start_incoming_migration(p);
> #if !defined(WIN32)
> else if (strstart(uri, "exec:", &p))
> - exec_start_incoming_migration(p);
> + ret = exec_start_incoming_migration(p);
> else if (strstart(uri, "unix:", &p))
> - unix_start_incoming_migration(p);
> + ret = unix_start_incoming_migration(p);
> else if (strstart(uri, "fd:", &p))
> - fd_start_incoming_migration(p);
> + ret = fd_start_incoming_migration(p);
> #endif
> - else
> + else {
> fprintf(stderr, "unknown migration protocol: %s\n", uri);
> + ret = -EPROTONOSUPPORT;
> + }
> + return ret;
> }
>
> int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
> diff --git a/migration.h b/migration.h
> index 385423f..dd423a1 100644
> --- a/migration.h
> +++ b/migration.h
> @@ -50,7 +50,7 @@ struct FdMigrationState
> void *opaque;
> };
>
> -void qemu_start_incoming_migration(const char *uri);
> +int qemu_start_incoming_migration(const char *uri);
>
> int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data);
>
> diff --git a/vl.c b/vl.c
> index 328395e..d13440d 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -3823,7 +3823,12 @@ int main(int argc, char **argv, char **envp)
> }
>
> if (incoming) {
> - qemu_start_incoming_migration(incoming);
> + int ret = qemu_start_incoming_migration(incoming);
> + if (ret < 0) {
> + fprintf(stderr, "Migration failed. Exit code %s(%d), exiting.\n",
> + incoming, ret);
> + exit(ret);
While I agree on the change, I have two comments:
1. By taking a look at the code I have the impression that most of the
fun failures will happen on the handler passed to qemu_set_fd_handler2(),
do you agree? Any plan to address that?
1. Is exit()ing the best thing to be done? I understand it's the easiest
and maybe better than nothing, but wouldn't it be better to enter in
paused-forever state so that clients can query and decide what to do?
> + }
> } else if (autostart) {
> vm_start();
> }
next prev parent reply other threads:[~2010-05-25 18:02 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-25 14:21 [Qemu-devel] [PATCH v2 0/5] Add QMP migration events Juan Quintela
2010-05-25 14:21 ` [Qemu-devel] [PATCH 1/5] Exit if incoming migration fails Juan Quintela
2010-05-25 18:01 ` Luiz Capitulino [this message]
2010-05-25 18:37 ` [Qemu-devel] " Juan Quintela
2010-05-25 18:52 ` Anthony Liguori
2010-05-25 14:21 ` [Qemu-devel] [PATCH 2/5] Factorize common migration incoming code Juan Quintela
2010-05-25 14:21 ` [Qemu-devel] [PATCH 3/5] QMP: Introduce MIGRATION events Juan Quintela
2010-05-25 15:09 ` Anthony Liguori
2010-05-25 15:35 ` [Qemu-devel] " Juan Quintela
2010-05-25 15:52 ` Daniel P. Berrange
2010-05-25 15:57 ` Anthony Liguori
2010-05-25 16:04 ` Juan Quintela
2010-05-25 16:10 ` Anthony Liguori
2010-05-25 18:13 ` Luiz Capitulino
2010-05-25 16:04 ` Daniel P. Berrange
2010-05-25 16:04 ` Juan Quintela
2010-05-25 16:25 ` Daniel P. Berrange
2010-05-25 16:33 ` Anthony Liguori
2010-05-25 16:43 ` Juan Quintela
2010-05-26 10:33 ` Daniel P. Berrange
2010-05-26 14:54 ` Anthony Liguori
2010-05-26 15:15 ` Daniel P. Berrange
2010-05-26 16:55 ` Anthony Liguori
2010-05-27 13:48 ` Luiz Capitulino
2010-05-27 15:58 ` Juan Quintela
2010-05-27 16:07 ` Luiz Capitulino
2010-05-27 16:07 ` Anthony Liguori
2010-05-26 10:16 ` Daniel P. Berrange
2010-05-25 18:21 ` Luiz Capitulino
2010-05-25 18:38 ` Juan Quintela
2010-05-25 15:48 ` [Qemu-devel] " Daniel P. Berrange
2010-05-25 18:31 ` Luiz Capitulino
2010-05-25 18:51 ` Anthony Liguori
2010-05-26 13:14 ` Luiz Capitulino
2010-05-25 14:21 ` [Qemu-devel] [PATCH 4/5] QMP: Emit migration events on incoming migration Juan Quintela
2010-05-25 14:21 ` [Qemu-devel] [PATCH 5/5] QMP: Emit migration events on outgoing migration Juan Quintela
-- strict thread matches above, loose matches on Subject: below --
2010-05-24 8:25 [Qemu-devel] [PATCH 0/5] Add QMP migration events Juan Quintela
2010-05-24 8:25 ` [Qemu-devel] [PATCH 1/5] Exit if incoming migration fails Juan Quintela
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100525150157.6c8d1599@redhat.com \
--to=lcapitulino@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.