From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55570) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XTtyc-0001c3-As for qemu-devel@nongnu.org; Tue, 16 Sep 2014 10:43:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XTtyS-0002WK-0D for qemu-devel@nongnu.org; Tue, 16 Sep 2014 10:43:30 -0400 Received: from mail-wi0-x22d.google.com ([2a00:1450:400c:c05::22d]:34509) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XTtyR-0002VR-Hr for qemu-devel@nongnu.org; Tue, 16 Sep 2014 10:43:19 -0400 Received: by mail-wi0-f173.google.com with SMTP id em10so6413154wid.0 for ; Tue, 16 Sep 2014 07:43:15 -0700 (PDT) Date: Tue, 16 Sep 2014 15:43:13 +0100 From: Stefan Hajnoczi Message-ID: <20140916144313.GD10303@stefanha-thinkpad.redhat.com> References: <1410690193-21813-1-git-send-email-cnanakos@grnet.gr> <1410690193-21813-2-git-send-email-cnanakos@grnet.gr> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="AkbCVLjbJ9qUtAXD" Content-Disposition: inline In-Reply-To: <1410690193-21813-2-git-send-email-cnanakos@grnet.gr> Subject: Re: [Qemu-devel] [PATCH v1] async: aio_context_new(): Handle event_notifier_init failure List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Chrysostomos Nanakos Cc: kwolf@redhat.com, pingfank@linux.vnet.ibm.com, famz@redhat.com, benoit@irqsave.net, jan.kiszka@siemens.com, mjt@tls.msk.ru, qemu-devel@nongnu.org, stefanha@redhat.com, sw@weilnetz.de, pbonzini@redhat.com, kroosec@gmail.com, afaerber@suse.de, aliguori@amazon.com --AkbCVLjbJ9qUtAXD Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Sep 14, 2014 at 01:23:13PM +0300, Chrysostomos Nanakos wrote: > @@ -63,10 +64,19 @@ static void iothread_instance_finalize(Object *obj) > =20 > static void iothread_complete(UserCreatable *obj, Error **errp) > { > + int ret; > + Error *local_error =3D NULL; > IOThread *iothread =3D IOTHREAD(obj); > =20 > iothread->stopping =3D false; > - iothread->ctx =3D aio_context_new(); > + ret =3D aio_context_new(&iothread->ctx, &local_error); > + if (ret < 0) { > + errno =3D -ret; > + error_report("%s", error_get_pretty(local_error)); > + error_report("iothread_complete failed"); > + error_free(local_error); > + exit(1); > + } Why use error_report()? The function takes an errp argument so local_error should be propagated. > @@ -2893,7 +2895,14 @@ int main(int argc, char **argv) > error_set_progname(argv[0]); > qemu_init_exec_dir(argv[0]); > =20 > - qemu_init_main_loop(); > + ret =3D qemu_init_main_loop(&local_error); > + if (ret < 0) { > + errno =3D -ret; > + error_report("%s", error_get_pretty(local_error)); > + error_free(local_error); > + error_exit("qemu_init_main_loop failed"); > + } IMO it's okay to leak local_error here: error_exit("%s", error_get_pretty(local_error)); qemu_init_main_loop failed is not a meaningful error message, please drop it and keep just the detailed message. --AkbCVLjbJ9qUtAXD Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJUGEyBAAoJEJykq7OBq3PISaYH/iUAfcIap4vUoSdnEaQJczaU kYQBm9fA8H8nzcBbDv+7D1HZbZI+T2Jb5Vn1IiOsbJf44xLmH49BaXQ/JqlcnDke u27fXJRGJoIjKUahI+Lov6c9Z2JGRM0km7kto5rx3DxUo4sOnSs3628cYWOt/ULx ushA51YCcFRT7gjYPD8NCJGCrlvpb77A4PYNPIsUz/kXhJHsyRdSK6/nk4kPXYCx mTeRh0uv7jB5AWOsmoAshsra1GOtm1xZdYlyLh8lmRjcKs+HWivec+qQEqHLHYCT bzB6FAiI5hBXNWannKlRX1K5ZysUgML+myRBt2PCTE4V1j83U8X1F3aGZDG2f8A= =lr1L -----END PGP SIGNATURE----- --AkbCVLjbJ9qUtAXD--