From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id C936C158089 for ; Thu, 14 Sep 2023 08:24:27 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 448CE2BC029; Thu, 14 Sep 2023 08:24:24 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 0BC112BC019 for ; Thu, 14 Sep 2023 08:24:24 +0000 (UTC) From: Ulrich Mueller To: Eli Schwartz Cc: gentoo-dev@lists.gentoo.org Subject: Re: [gentoo-dev] [PATCH 1/2] distutils-r1.eclass: teach setuptools to respect (some) build options In-Reply-To: <54b962d5-2659-2a15-385a-fa314a81ffe8@gmail.com> (Eli Schwartz's message of "Wed, 13 Sep 2023 17:06:35 -0400") References: <20230912191501.536700-1-eschwartz93@gmail.com> <1affddb8-221c-4c67-4395-03c2425d0e0e@gmail.com> <54b962d5-2659-2a15-385a-fa314a81ffe8@gmail.com> Date: Thu, 14 Sep 2023 10:24:14 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Archives-Salt: 30924664-4635-4110-a470-2c4304ba4db9 X-Archives-Hash: 053530ae7c65993f26f6919ab6560b27 --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable >>>>> On Wed, 13 Sep 2023, Eli Schwartz wrote: >> That's a rather bold statement. I can imagine a number of possible >> failures, e.g. no space left on device, quota exceeded, or a low-level >> I/O error of the filesystem. Also fork or exec of the cat command could >> fail (e.g. out of memory). >>=20 >> While either of these may be unlikely here, best practice is to check >> for errors of _all_ external commands. > The implementation of `die` performs a fork+exec of the sed command, > invokes eerror (many times!) which forks to pipe, invokes $() which > forks, and could behave abnormally due to out of memory. It is not safe > to treat `|| die` as error recovery for an out of memory condition. > The implementation of `die` performs multiple writes to files inside of > ${PORTAGE_BUILDDIR}, and could behave abnormally due to write failures. > It is not safe to treat `|| die` as error recovery for a write failure > of the ${PORTAGE_BUILDDIR} drive (whatever the reason for that write > failure). An eclass must not rely on implementation details of any specific package manager. "die [...] aborts the build process." https://projects.gentoo.org/pms/8/pms.html#x1-12600012.3.6 So please report a Portage (or other package manager) bug if you can reproduce a condition where die doesn't abort the build process. > (And the `|| die` is added to the next revision of this patch either way.) Thanks. Ulrich --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQFDBAEBCAAtFiEEtDnZ1O9xIP68rzDbUYgzUIhBXi4FAmUCwy4PHHVsbUBnZW50 b28ub3JnAAoJEFGIM1CIQV4uUYIIAJ+i9BCgWEgQLPH8yisHDHx93jo7aZ+5wLDW /oCaiAxmmXiOFOfWM3pX3mFr9doa292kOMuSKbUXzNUNZ/Up4brIyH2887M2kXOJ 3CX9Rh/Rtbcy1zmIxT1JS0UNrTPZ5ZqpKbknLqV10JsOBGcZcVuVkrESeViRx7oi AO9ggyYCza8+qT2LgUnnynfb+u5LVoTafF+IPD44+24TwidZiHp5jkZqdBF6gNxe Sv2t3JDTDXMqBciKvnOH2MAUyAjvO7Hca94OZcjwWnpbU0LW9sCVYZm447yfDBxW yph3Qmrjh1HbkC4afWf8HfoCwLLQPzAVrkIcWK2VD410dlojY+k= =Bs+C -----END PGP SIGNATURE----- --=-=-=--