From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1Rag6w-0000tY-Vx for garchives@archives.gentoo.org; Wed, 14 Dec 2011 04:06:31 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 8BF3F21C066; Wed, 14 Dec 2011 04:06:23 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) by pigeon.gentoo.org (Postfix) with ESMTP id 5439D21C066 for ; Wed, 14 Dec 2011 04:06:23 +0000 (UTC) Received: from pelican.gentoo.org (unknown [66.219.59.40]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id A15841B402B for ; Wed, 14 Dec 2011 04:06:22 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by pelican.gentoo.org (Postfix) with ESMTP id 157528004A for ; Wed, 14 Dec 2011 04:06:22 +0000 (UTC) From: "Zac Medico" To: gentoo-commits@lists.gentoo.org Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" Message-ID: <9fa915eef028c96b8cde3876fb8bb299c03f9a62.zmedico@gentoo> Subject: [gentoo-commits] proj/portage:master commit in: bin/ X-VCS-Repository: proj/portage X-VCS-Files: bin/ebuild-ipc.py X-VCS-Directories: bin/ X-VCS-Committer: zmedico X-VCS-Committer-Name: Zac Medico X-VCS-Revision: 9fa915eef028c96b8cde3876fb8bb299c03f9a62 Date: Wed, 14 Dec 2011 04:06:22 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: quoted-printable X-Archives-Salt: 32e37d1e-a3d6-4503-abb1-8c0186adfe6e X-Archives-Hash: 30b750c77a514bde9e9d4aff3b879a27 commit: 9fa915eef028c96b8cde3876fb8bb299c03f9a62 Author: Zac Medico gentoo org> AuthorDate: Wed Dec 14 04:06:10 2011 +0000 Commit: Zac Medico gentoo org> CommitDate: Wed Dec 14 04:06:10 2011 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a= =3Dcommit;h=3D9fa915ee ebuils-ipc.py: _exit in finally block after fork --- bin/ebuild-ipc.py | 38 +++++++++++++++++++++++++++----------- 1 files changed, 27 insertions(+), 11 deletions(-) diff --git a/bin/ebuild-ipc.py b/bin/ebuild-ipc.py index 68ad985..372585f 100755 --- a/bin/ebuild-ipc.py +++ b/bin/ebuild-ipc.py @@ -13,6 +13,7 @@ import select import signal import sys import time +import traceback =20 def debug_signal(signum, frame): import pdb @@ -228,14 +229,22 @@ class EbuildIpc(object): pid =3D os.fork() =20 if pid =3D=3D 0: - os.close(pr) - - # File streams are in unbuffered mode since we do atomic - # read and write of whole pickles. - output_file =3D open(self.ipc_in_fifo, 'wb', 0) - output_file.write(pickle.dumps(args)) - output_file.close() - os._exit(os.EX_OK) + retval =3D 1 + try: + os.close(pr) + + # File streams are in unbuffered mode since we do atomic + # read and write of whole pickles. + output_file =3D open(self.ipc_in_fifo, 'wb', 0) + output_file.write(pickle.dumps(args)) + output_file.close() + retval =3D os.EX_OK + except SystemExit: + raise + except: + traceback.print_exc() + finally: + os._exit(retval) =20 os.close(pw) =20 @@ -258,9 +267,16 @@ class EbuildIpc(object): pid =3D os.fork() =20 if pid =3D=3D 0: - os.close(pr) - retval =3D self._receive_reply(input_fd) - os._exit(retval) + retval =3D 1 + try: + os.close(pr) + retval =3D self._receive_reply(input_fd) + except SystemExit: + raise + except: + traceback.print_exc() + finally: + os._exit(retval) =20 os.close(pw) retval =3D self._wait(pid, pr, portage.localization._('during read'))