From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:55833) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USDyB-0008IP-5u for qemu-devel@nongnu.org; Tue, 16 Apr 2013 18:03:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1USDy9-0003Uq-NQ for qemu-devel@nongnu.org; Tue, 16 Apr 2013 18:03:18 -0400 Received: from mail-qe0-f51.google.com ([209.85.128.51]:36467) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1USDy9-0003UY-I5 for qemu-devel@nongnu.org; Tue, 16 Apr 2013 18:03:17 -0400 Received: by mail-qe0-f51.google.com with SMTP id 1so571275qec.24 for ; Tue, 16 Apr 2013 15:03:17 -0700 (PDT) From: Anthony Liguori In-Reply-To: <1366149041-626-1-git-send-email-eblake@redhat.com> References: <1366149041-626-1-git-send-email-eblake@redhat.com> Date: Tue, 16 Apr 2013 17:03:13 -0500 Message-ID: <87k3o2dtge.fsf@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Qemu-devel] [PATCH] migration: reflect incoming failure to shell List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake , qemu-devel@nongnu.org Cc: qemu-trivial@nongnu.org, pbonzini@redhat.com, phrdina@redhat.com, Stefan Hajnoczi , quintela@redhat.com Eric Blake writes: > Management apps like libvirt don't know to pay attention to > stderr unless there is a non-zero exit status. > > * migration.c (process_incoming_migration_co): Exit with non-zero > status on failure. > > Signed-off-by: Eric Blake It looks like the migration coroutine cleans itself so there's no obvious way to propagate the error. A nicer cleanup would be to switch the fprintf to error_report() too but this is certainly better than what we have now. Maybe we need an error_report_fatal()... Reviewed-by: Anthony Liguori Regards, Anthony Liguori > --- > > Noticed while reviewing: > https://lists.gnu.org/archive/html/qemu-devel/2013-04/msg03293.html > and it seems blatant enough to fix now, rather than waiting for > Pavel's series to stabilize. > > Side note: libvirt explicitly forbids all use of exit({0,1}), and > instead encourages exit(EXIT_{SUCCESS,FAILURE}), precisely because > it makes it harder to slip in unintentional successful exits. > > migration.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/migration.c b/migration.c > index 3b4b467..3eb0fad 100644 > --- a/migration.c > +++ b/migration.c > @@ -99,7 +99,7 @@ static void process_incoming_migration_co(void *opaque) > qemu_fclose(f); > if (ret < 0) { > fprintf(stderr, "load of migration failed\n"); > - exit(0); > + exit(EXIT_FAILURE); > } > qemu_announce_self(); > DPRINTF("successfully loaded vm state\n"); > -- > 1.8.1.4