Received: (at 75658) by debbugs.gnu.org; 2 Apr 2025 14:29:20 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Apr 02 10:29:19 2025 Received: from localhost ([127.0.0.1]:58723 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tzz5g-0007rW-ML for submit <at> debbugs.gnu.org; Wed, 02 Apr 2025 10:29:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59068) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tzz5U-0007qL-EL for 75658 <at> debbugs.gnu.org; Wed, 02 Apr 2025 10:29:11 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1tzz5L-0007C5-CQ; Wed, 02 Apr 2025 10:28:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=OpMFYdjotSjEFs7O435EGc20nn3bVqHNxx9ccWUMa9g=; b=FtgFMY5i4mg4PqCSbYkj rmzRULZM3fIwruHOlQxSLlLAmqzTukxTVdGFyumgv+5HSRvSiugl5GzZsDK7PxRpm/zu88W9c7XKu 7RJwHJtFtFHUbXNHqXnDYnxtEG2800CmWpzLFRZofW1fDQ3gtK7AzNqhXZ+Pkv2zW4woIAMlLLjuk prnj9vYRAUflpNTnh1PxY0NLVXrE+SAFEe1EHfabmvXFmCPiQ5N6XEzKF5b/0pEs6/NlJ/GEl7bUy TgZb+vyF+XCy8eNdcFEjeRN0dVVcYXxPY9VtOJ8NtS1tRYtb5wTpoI0DN2va65Gic4mD1DMoZEOZd EFV8J1lCg+zJrA==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Janneke Nieuwenhuizen <janneke@HIDDEN> Subject: Re: bug#75658: [PATCH 0/4] Fixes for subshells and redirections In-Reply-To: <87zfh72bay.fsf@HIDDEN> (Janneke Nieuwenhuizen's message of "Thu, 27 Mar 2025 08:16:21 +0100") References: <20250319212033.4643-1-ludo@HIDDEN> <87zfh72bay.fsf@HIDDEN> Date: Wed, 02 Apr 2025 16:28:46 +0200 Message-ID: <87y0wibpsx.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75658 Cc: Timothy Sample <samplet@HIDDEN>, gash-devel@HIDDEN, 75658 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hi there! Janneke Nieuwenhuizen <janneke@HIDDEN> skribis: > That's awesome, what a terrible puzzle that was! > > I'm hoping Timothy finds the time to review/merge/release Gash. We > could carry these patches in Guix, but yeah. Yup, it would be great if one of you could do that. :-) Especially since =E2=80=98core-packages-team=E2=80=99 has been queued for a= while now and the latest attempts to evaluate the branch have all failed due to this bug, as in <https://ci.guix.gnu.org/eval/2050457/log/raw> (I guess we were lucky on the previous =E2=80=98core-updates=E2=80=99 cycle, or just= retried until it would eventually work!). Cheers, Ludo=E2=80=99.
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Received: (at 75658) by debbugs.gnu.org; 27 Mar 2025 07:16:41 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 27 03:16:41 2025 Received: from localhost ([127.0.0.1]:47145 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1txhTk-0004nS-6P for submit <at> debbugs.gnu.org; Thu, 27 Mar 2025 03:16:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42756) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <janneke@HIDDEN>) id 1txhTf-0004mI-N0 for 75658 <at> debbugs.gnu.org; Thu, 27 Mar 2025 03:16:38 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <janneke@HIDDEN>) id 1txhTZ-00081s-9e; Thu, 27 Mar 2025 03:16:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=HSt7fWFpM3/REIIj1EN4Z1ZQJmWApRWL4nG8tWTbF6I=; b=BfgTA9Vb4543X3Ylkl9Y es4WhBIQKb+ZNuR9KwN4ZEZeW8p6LWnkzkP0BPsMjiikQi4VeC18brkBer95PLlE5Yfh4FkhL5y2p Dbm5Zl7jd94IfLgKDm91d/xCQ+LLZRSh6an7EMSGT5GnQLry2d0QXO0sEFDcbYN4YbJrbdhZ1QwEc QU1tAfIn86c68X+Bvg6bLSbbQCGqT+nTcTSBG9Qyd3JtBhXfZ5s6K2F+ceoML54mSFnoy+aDxgYje qx1p/gT+FK+LZ0CrGIWBdR9Vs7BSBsBhSHGiCuXFjWSyIcC9oQV3gFBjRR6JX5CChLZpAB6ONnqJ2 PjwyOv5rOpqCuw==; From: Janneke Nieuwenhuizen <janneke@HIDDEN> To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Subject: Re: [PATCH 0/4] Fixes for subshells and redirections In-Reply-To: <20250319212033.4643-1-ludo@HIDDEN> ("Ludovic =?utf-8?Q?Cour?= =?utf-8?Q?t=C3=A8s=22's?= message of "Wed, 19 Mar 2025 22:20:29 +0100") Organization: AvatarAcademy.nl References: <20250319212033.4643-1-ludo@HIDDEN> X-Url: http://AvatarAcademy.nl Date: Thu, 27 Mar 2025 08:16:21 +0100 Message-ID: <87zfh72bay.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75658 Cc: Timothy Sample <samplet@HIDDEN>, gash-devel@HIDDEN, 75658 <at> debbugs.gnu.org X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Ludovic Court=C3=A8s writes: Hi! > This fixes issues reported at <https://issues.guix.gnu.org/75658> > and related I noticed while looking at the code. > > Feedback welcome! That's awesome, what a terrible puzzle that was! I'm hoping Timothy finds the time to review/merge/release Gash. We could carry these patches in Guix, but yeah. Greetings, Janneke --=20 Janneke Nieuwenhuizen <janneke@HIDDEN> | GNU LilyPond https://LilyPond.org Freelance IT https://www.JoyOfSource.com | Avatar=C2=AE https://AvatarAcade= my.com
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Received: (at 75658) by debbugs.gnu.org; 20 Mar 2025 14:18:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 20 10:18:30 2025 Received: from localhost ([127.0.0.1]:58399 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tvGj7-0000st-Vt for submit <at> debbugs.gnu.org; Thu, 20 Mar 2025 10:18:30 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:34132) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tvGj1-0000sS-9d for 75658 <at> debbugs.gnu.org; Thu, 20 Mar 2025 10:18:26 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id C76FD87F; Thu, 20 Mar 2025 15:18:12 +0100 (CET) Authentication-Results: hera.aquilenet.fr; none X-Virus-Scanned: Debian amavis at hera.aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavis, port 10024) with ESMTP id IM3lWOUDinWh; Thu, 20 Mar 2025 15:18:12 +0100 (CET) Received: from ribbon (unknown [193.50.110.142]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 737DF1F6; Thu, 20 Mar 2025 15:18:10 +0100 (CET) From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: gash-devel@HIDDEN Subject: Re: bug#75658: [PATCH 0/4] Fixes for subshells and redirections In-Reply-To: <20250319212033.4643-1-ludo@HIDDEN> ("Ludovic =?utf-8?Q?Cour?= =?utf-8?Q?t=C3=A8s=22's?= message of "Wed, 19 Mar 2025 22:20:29 +0100") References: <87msfnsrli.fsf@HIDDEN> <20250319212033.4643-1-ludo@HIDDEN> Date: Thu, 20 Mar 2025 15:18:09 +0100 Message-ID: <87msdfbxb2.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: C76FD87F X-Spamd-Result: default: False [4.90 / 15.00]; SPAM_FLAG(5.00)[]; BAYES_HAM(-3.00)[100.00%]; NEURAL_SPAM(3.00)[1.000]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; MID_RHS_MATCH_FROM(0.00)[] X-Spam-Level: **** X-Rspamd-Action: no action X-Spamd-Bar: ++++ X-Rspamd-Server: hera X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 75658 Cc: Timothy Sample <samplet@HIDDEN>, 75658 <at> debbugs.gnu.org, Jan Nieuwenhuizen <janneke@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) Ludovic Court=C3=A8s <ludo@HIDDEN> skribis: > shell: Exit child process when =E2=80=98execle=E2=80=99 fails. > shell: Remove dead code in =E2=80=98install-current-ports!=E2=80=99. > shell: =E2=80=98install-current-ports!=E2=80=99 opens file descriptors,= not ports. > Open low-numbered file descriptors for use by the shell. For the record, I also built this series with Guile 2.0.9, by modifying =E2=80=98guix.scm=E2=80=99 to refer to it instead of =E2=80=98guile-3.0=E2= =80=99 and turning off tests (since they require (srfi srfi-64), which 2.0.9 doesn=E2=80=99t have). It appears to work fine and passes this test: timeout 10m \ /gnu/store/3ylfablfwsdaapgk2y3x8yjchmapasxs-gash-0.3.0.6-f988cb-dirty/bin= /gash -c 'exec 7>/dev/null; while true; do echo $(sh --version) > /dev/null= ; done' Ludo=E2=80=99.
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Received: (at 75658) by debbugs.gnu.org; 19 Mar 2025 21:27:31 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 19 17:27:31 2025 Received: from localhost ([127.0.0.1]:53553 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tv0wl-00088G-8M for submit <at> debbugs.gnu.org; Wed, 19 Mar 2025 17:27:31 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:35038) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tv0wi-00087u-33 for 75658 <at> debbugs.gnu.org; Wed, 19 Mar 2025 17:27:28 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 0A112806; Wed, 19 Mar 2025 22:27:20 +0100 (CET) Authentication-Results: hera.aquilenet.fr; none X-Virus-Scanned: Debian amavis at hera.aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavis, port 10024) with ESMTP id U6sEB8i9ekcd; Wed, 19 Mar 2025 22:27:19 +0100 (CET) Received: from ribbon (91-160-117-201.subs.proxad.net [91.160.117.201]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 62A16107; Wed, 19 Mar 2025 22:27:16 +0100 (CET) From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Timothy Sample <samplet@HIDDEN> Subject: Re: bug#75658: Non-deterministic Gash error in =?utf-8?Q?=E2=80=98gcc-mesboot-4=2E9=2E4=E2=80=99?= In-Reply-To: <87sencmzl8.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Sun, 16 Mar 2025 22:32:03 +0100") References: <87msfnsrli.fsf@HIDDEN> <87wmeqpspy.fsf@HIDDEN> <87bju7i6rr.fsf@HIDDEN> <871pv0wkfu.fsf@HIDDEN> <87senex4m0.fsf@HIDDEN> <87wmcpnhol.fsf@HIDDEN> <87sencmzl8.fsf@HIDDEN> Date: Wed, 19 Mar 2025 22:27:15 +0100 Message-ID: <87v7s4emoc.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Rspamd-Queue-Id: 0A112806 X-Spamd-Result: default: False [6.50 / 15.00]; SPAM_FLAG(5.00)[]; BAYES_HAM(-3.00)[99.99%]; NEURAL_SPAM(3.00)[1.000]; MIME_BAD_ATTACHMENT(1.60)[sh:text/plain]; MIME_GOOD(-0.10)[multipart/mixed,text/plain]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+]; RCVD_COUNT_TWO(0.00)[2]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; MID_RHS_MATCH_FROM(0.00)[] X-Spam-Level: ****** X-Rspamd-Action: add header X-Spamd-Bar: ++++++ X-Rspamd-Server: hera X-Spam: Yes X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 75658 Cc: 75658 <at> debbugs.gnu.org, Janneke Nieuwenhuizen <janneke@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello Timothy, Ludovic Court=C3=A8s <ludo@HIDDEN> skribis: > The hack below addresses that (mostly) by reserving low-number file > descriptors before the signal and finalization threads create their > pipe. (In practice, we can only reserve FDs above 5; FDs 3 and 4 are > the =E2=80=9Csleep pipe=E2=80=9D I believe.) I=E2=80=99ve just sent cleaned-up patches to gash-devel including this fix/workaround. It passes my tests, meaning that I cannot reproduce the original bug in a timely fashion when running: ./pre-inst-env gash -c 'exec 2>/dev/null; while true; do echo $(sh --vers= ion) > /dev/null; done' or when running part of the GCC 4.9.4 =E2=80=98configure=E2=80=99 script in= a loop (attached is the helper script I used for that; not shown here is a manual modification of said script so that it exits after =E2=80=9Cchecking= for a sed that does not truncate output=E2=80=9D, which was sufficient to repro= duce the bug, possibly after many iterations). It would be great to cut a Gash release soonish as this bug has been blocking the =E2=80=98core-packages-team=E2=80=99 branch for a while alread= y. Thanks, Ludo=E2=80=99. --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=gash-redirect-EBADF-reproducer.sh Content-Description: Helper script to reproduce the bug with GCC's configure script. #!/bin/sh set -x export COLUMNS=200 #STRACE="strace -s 100 -f -o log.strace" PATCH=--with-patch=gash=$PWD/gash-redirect-EBADF.patch export SHELL=$(guix build gash $PATCH)/bin/gash export CONFIG_SHELL=$SHELL OPTIONS="--prefix=/wherever --disable-bootstrap --disable-decimal-float --disable-libatomic --disable-libcilkrts --disable-libgomp --disable-libitm --disable-libmudflap --disable-libquadmath --disable-libsanitizer --disable-libssp --disable-libvtv --disable-lto --disable-lto-plugin --disable-multilib --disable-plugin --disable-threads --enable-languages=c,c++ --enable-static --enable-shared --enable-threads=single --disable-libstdcxx-pch --disable-build-with-cxx" cd /data/src/gcc-4.9.4 while $STRACE $SHELL -e ./configure $OPTIONS $OPTIONS $OPTIONS do grep fcntl.*EBADF log.strace && break done --=-=-=--
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Received: (at 75658) by debbugs.gnu.org; 19 Mar 2025 21:20:54 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Wed Mar 19 17:20:54 2025 Received: from localhost ([127.0.0.1]:53533 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tv0qM-0007ot-6G for submit <at> debbugs.gnu.org; Wed, 19 Mar 2025 17:20:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35264) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tv0qJ-0007oY-Gg for 75658 <at> debbugs.gnu.org; Wed, 19 Mar 2025 17:20:52 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1tv0qD-0005fm-Q2; Wed, 19 Mar 2025 17:20:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=IlV81GnsYVtkjCCD/omZzmZBkhGkpfypZtmp9adQqkc=; b=hscldkabC1aPzo y6zCucsNbLLZWscDiQn3FfP5LWIxm/rLZL1jd9LNLwuLlAx4JaqTus+hBDCZduHBhOKjUFiIH7ZYI iAqDGh865jig7WvdPvnACR0xLCIxmQ83Q1IYLs/qcwN5YyAB7H5a0h24fbX+AOKlD1a3w/8eW5eSA hozLiRZP8DzhzQxiueHZ/3Qpv+wQ+F5LatTJB8OsXa024A6viBKK/JXCTiy+7wdauCQlSYKYTDPN1 iL7s+1KV7MjuSU8+TSxyi2hpSMBwyJGrJLltFyrt7HkaHznrv0c2whZvzbyItaFXmr+fKTi2X4KlS cmA1XwvUOBfxNf/loakA==; From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@HIDDEN> To: gash-devel@HIDDEN Subject: [PATCH 0/4] Fixes for subshells and redirections Date: Wed, 19 Mar 2025 22:20:29 +0100 Message-ID: <20250319212033.4643-1-ludo@HIDDEN> X-Mailer: git-send-email 2.48.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75658 Cc: Timothy Sample <samplet@HIDDEN>, =?UTF-8?q?Ludovic=20Court=C3=A8s?= <ludo@HIDDEN>, 75658 <at> debbugs.gnu.org, Jan Nieuwenhuizen <janneke@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Hello, This fixes issues reported at <https://issues.guix.gnu.org/75658> and related I noticed while looking at the code. Feedback welcome! Thanks, Ludo'. Ludovic Courtès (4): shell: Exit child process when ‘execle’ fails. shell: Remove dead code in ‘install-current-ports!’. shell: ‘install-current-ports!’ opens file descriptors, not ports. Open low-numbered file descriptors for use by the shell. gash/shell.scm | 29 +++++++++++++++++++++-------- scripts/gash.in | 14 +++++++++++++- tests/exiting.org | 27 +++++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 9 deletions(-) base-commit: ec9f0313190e380687da387b4207469a0a0a8cd8 -- 2.48.1
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Received: (at 75658) by debbugs.gnu.org; 16 Mar 2025 21:32:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 16 17:32:17 2025 Received: from localhost ([127.0.0.1]:51036 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ttvai-0005Zc-OO for submit <at> debbugs.gnu.org; Sun, 16 Mar 2025 17:32:17 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:60910) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1ttvad-0005Xj-QO for 75658 <at> debbugs.gnu.org; Sun, 16 Mar 2025 17:32:14 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id A11A240C; Sun, 16 Mar 2025 22:32:05 +0100 (CET) Authentication-Results: hera.aquilenet.fr; none X-Virus-Scanned: Debian amavis at hera.aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavis, port 10024) with ESMTP id XiHGDMZvJxFA; Sun, 16 Mar 2025 22:32:04 +0100 (CET) Received: from ribbon (91-160-117-201.subs.proxad.net [91.160.117.201]) by hera.aquilenet.fr (Postfix) with ESMTPSA id E7C7F1BE; Sun, 16 Mar 2025 22:32:03 +0100 (CET) From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Timothy Sample <samplet@HIDDEN> Subject: Re: bug#75658: Non-deterministic Gash error in =?utf-8?Q?=E2=80=98gcc-mesboot-4=2E9=2E4=E2=80=99?= In-Reply-To: <87wmcpnhol.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Sun, 16 Mar 2025 16:01:14 +0100") References: <87msfnsrli.fsf@HIDDEN> <87wmeqpspy.fsf@HIDDEN> <87bju7i6rr.fsf@HIDDEN> <871pv0wkfu.fsf@HIDDEN> <87senex4m0.fsf@HIDDEN> <87wmcpnhol.fsf@HIDDEN> Date: Sun, 16 Mar 2025 22:32:03 +0100 Message-ID: <87sencmzl8.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Rspamd-Queue-Id: A11A240C X-Spamd-Result: default: False [-5.10 / 15.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM(-3.00)[-1.000]; CTYPE_MIXED_BOGUS(1.00)[]; MIME_GOOD(-0.10)[multipart/mixed,text/plain,text/x-patch]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; ARC_NA(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; MID_RHS_MATCH_FROM(0.00)[] X-Rspamd-Action: no action X-Spamd-Bar: ----- X-Rspamd-Server: hera X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 75658 Cc: 75658 <at> debbugs.gnu.org, Janneke Nieuwenhuizen <janneke@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s <ludo@HIDDEN> skribis: > But this illustrates another problem: in the child process, right before > =E2=80=98execve=E2=80=99, the finalization thread may be restarted, in wh= ich case it > creates a new pipe. > > In the example below, the finalization pipe is on FDs 9 and 7, but > =E2=80=98install-current-ports!=E2=80=99 blindly dups to FD 7, thereby cl= osing one end > of the finalization pipe that was just created: The hack below addresses that (mostly) by reserving low-number file descriptors before the signal and finalization threads create their pipe. (In practice, we can only reserve FDs above 5; FDs 3 and 4 are the =E2=80=9Csleep pipe=E2=80=9D I believe.) It seems to be good enough though. Thoughts? Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch Content-Disposition: inline diff --git a/gash/shell.scm b/gash/shell.scm index 3611067..68e74e7 100644 --- a/gash/shell.scm +++ b/gash/shell.scm @@ -68,14 +68,13 @@ not a @code{file-port?}, its corresponding file descriptor will refer to @file{/dev/null}." ;; XXX: Input/output ports? Closing other FDs? (for-each (lambda (i) - (match ((fd->current-port i)) - ((? file-port? port) - (dup port i)) - ((? input-port? port) - (dup (open-file "/dev/null" "r") i)) - ((? output-port? port) - (dup (open-file "/dev/null" "w") i)) - (_ #t))) + (gc) + (let ((current-port (fd->current-port i))) + (match (current-port) + ((? file-port? port) + (let ((new (dup port i))) + (redirect-port port new))) + (#f #t)))) (iota *fd-count*))) (define (exec-utility bindings path name args) @@ -89,8 +88,14 @@ to @file{/dev/null}." ;; the buffer) produces its output. (flush-all-ports) (match (primitive-fork) - (0 (install-current-ports!) - (apply execle path utility-env name args)) + (0 + (dynamic-wind + (lambda () + (install-current-ports!)) + (lambda () + (apply execle path utility-env name args)) + (lambda () + (primitive-exit 127)))) (pid (match-let (((pid . status) (waitpid pid))) (set-status! (status:exit-val status))))))) @@ -182,7 +187,10 @@ if it is our responsibility to close the port." (define* (make-processed-redir fd target #:optional (open-flags 0)) (let ((port (match target ((? port?) target) - ((? string?) (open target open-flags)) + ((? string?) + (let ((port (open target open-flags))) + (set-port-revealed! port 10) + port)) ;; TODO: Verify open-flags. ((? integer?) ((fd->current-port target))) (#f #f)))) @@ -213,6 +221,7 @@ if it is our responsibility to close the port." (make-processed-redir fd #f)) (('<< (? integer? fd) text) (let ((port (tmpfile))) + (set-port-revealed! port 10) (display text port) (seek port 0 SEEK_SET) (make-processed-redir fd port))))) @@ -264,6 +273,7 @@ process." (lambda () #t) (lambda () (restore-signals) + (gc) (set-atexit! #f) ;; We need to preserve the status given to 'exit', so we ;; catch the 'quit' key here. diff --git a/scripts/gash.in b/scripts/gash.in index f851c1d..57506ba 100644 --- a/scripts/gash.in +++ b/scripts/gash.in @@ -21,5 +21,13 @@ ;;; along with Gash. If not, see <http://www.gnu.org/licenses/>. (define (main args) + ;; Reserve file descriptors 5 to 12 (roughly) before the signal and + ;; finalization threads grab them so that a script willing to use + ;; them can do so without breaking Guile. + (let loop ((i 3)) + (when (<= i 10) + (open-fdes "/dev/null" (logior O_RDONLY O_CLOEXEC)) + (loop (+ i 1)))) + (setenv "SHELL" ((compose canonicalize-path car command-line))) - ((@ (gash gash) main) (command-line))) + ((module-ref (resolve-interface '(gash gash)) 'main) (command-line))) --=-=-=--
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Received: (at 75658) by debbugs.gnu.org; 16 Mar 2025 15:01:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Mar 16 11:01:30 2025 Received: from localhost ([127.0.0.1]:50311 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ttpUW-000575-SG for submit <at> debbugs.gnu.org; Sun, 16 Mar 2025 11:01:30 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:41180) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1ttpUS-00055I-9G for 75658 <at> debbugs.gnu.org; Sun, 16 Mar 2025 11:01:26 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id EF0D2395; Sun, 16 Mar 2025 16:01:15 +0100 (CET) Authentication-Results: hera.aquilenet.fr; none X-Virus-Scanned: Debian amavis at hera.aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavis, port 10024) with ESMTP id Vej31GerxxsK; Sun, 16 Mar 2025 16:01:15 +0100 (CET) Received: from ribbon (91-160-117-201.subs.proxad.net [91.160.117.201]) by hera.aquilenet.fr (Postfix) with ESMTPSA id A9C281BE; Sun, 16 Mar 2025 16:01:14 +0100 (CET) From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: Timothy Sample <samplet@HIDDEN> Subject: Re: bug#75658: Non-deterministic Gash error in =?utf-8?Q?=E2=80=98gcc-mesboot-4=2E9=2E4=E2=80=99?= In-Reply-To: <87senex4m0.fsf@HIDDEN> (Timothy Sample's message of "Fri, 14 Mar 2025 23:08:55 -0600") References: <87msfnsrli.fsf@HIDDEN> <87wmeqpspy.fsf@HIDDEN> <87bju7i6rr.fsf@HIDDEN> <871pv0wkfu.fsf@HIDDEN> <87senex4m0.fsf@HIDDEN> Date: Sun, 16 Mar 2025 16:01:14 +0100 Message-ID: <87wmcpnhol.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: EF0D2395 X-Spamd-Result: default: False [-6.10 / 15.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM(-3.00)[-1.000]; MIME_GOOD(-0.10)[text/plain]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; MID_RHS_MATCH_FROM(0.00)[] X-Rspamd-Action: no action X-Spamd-Bar: ------ X-Rspamd-Server: hera X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 75658 Cc: 75658 <at> debbugs.gnu.org, Janneke Nieuwenhuizen <janneke@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) Hello Timothy, Thanks for chiming in. Timothy Sample <samplet@HIDDEN> skribis: > And here=E2=80=99s a reproducer: > > (let loop () > (define fd #f) > (let ((P (open-input-file "/dev/null"))) > ;; Does not change the revealed count of P. > (set! fd (fileno P))) > (let ((port (open-input-file "/dev/null"))) > (dup->port port "r" fd) > (close-port port) > (loop))) > > This results in EBADF in seemingly exactly the same way. (I had to run > it a few times: sometimes it runs out of file descriptors first.) This > happens on bootstrap Guile (2.0.9) and modern Guile. Nice reproducer; I fully agree with your analysis. See3in that =E2=80=98install-current-ports!=E2=80=99 creates temporary port= s (via =E2=80=98dup=E2=80=99) for no reason since nobody captures their reference and they get GC=E2=80= =99d soon after, I rewrote it like this: --8<---------------cut here---------------start------------->8--- (define (install-current-ports!) "Install all current ports into their usual file descriptors. For example, if @code{current-input-port} is a @code{file-port?}, make the process file descriptor 0 refer to the file open for @code{current-input-port}. If any current port is a @code{port?} but not a @code{file-port?}, its corresponding file descriptor will refer to @file{/dev/null}." ;; XXX: Input/output ports? Closing other FDs? (for-each (lambda (i) (gc) ;to trigger bugs (let ((current-port (fd->current-port i))) (match (current-port) ((? file-port? port) (dup->fdes port i)) (#f #t)))) (iota *fd-count*))) --8<---------------cut here---------------end--------------->8--- But this illustrates another problem: in the child process, right before =E2=80=98execve=E2=80=99, the finalization thread may be restarted, in whic= h case it creates a new pipe. In the example below, the finalization pipe is on FDs 9 and 7, but =E2=80=98install-current-ports!=E2=80=99 blindly dups to FD 7, thereby clos= ing one end of the finalization pipe that was just created: --8<---------------cut here---------------start------------->8--- 23647 pipe2([7, 9], O_CLOEXEC) =3D 0 23647 rt_sigprocmask(SIG_BLOCK, ~[], [], 8) =3D 0 23647 clone3({flags=3DCLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THR= EAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, ch= ild_tid=3D0x7f84204b3990, parent_tid=3D0x7f84204b3990, exit_signal=3D0, sta= ck=3D0x7f841fb24000, stack_size=3D0x98ef80, tls=3D0x7f84204b36c0} =3D> {par= ent_tid=3D[23648]}, 88) =3D 23648 [=E2=80=A6] 23647 write(9, "\0", 1) =3D 1 23648 <... read resumed>"\0", 1) =3D 1 23648 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) =3D 0 23648 read(7, <unfinished ...> 23647 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=3D0, tv_nsec=3D358458= 39}) =3D 0 23647 dup2(12, 7) =3D 7 23647 fcntl(7, F_GETFL) =3D 0x8002 (flags O_RDWR|O_LARGEFIL= E) 23647 lseek(7, 0, SEEK_CUR) =3D -1 ESPIPE (Illegal seek) 23647 dup2(12, 7) =3D 7 23647 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=3D0, tv_nsec=3D358993= 20}) =3D 0 23647 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) =3D 0 23647 madvise(0x7f842207c000, 12288, MADV_DONTNEED) =3D 0 23647 write(9, "\0", 1) =3D 1 23648 <... read resumed>"\0", 1) =3D 1 23648 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) =3D 0 23648 read(7, <unfinished ...> 23647 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=3D0, tv_nsec=3D395398= 30}) =3D 0 23647 clock_gettime(CLOCK_PROCESS_CPUTIME_ID, {tv_sec=3D0, tv_nsec=3D395559= 97}) =3D 0 23647 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) =3D 0 23647 madvise(0x7f842207c000, 12288, MADV_DONTNEED) =3D 0 23647 madvise(0x7f8421d74000, 8192, MADV_DONTNEED) =3D 0 23647 write(9, "\0", 1) =3D -1 EPIPE (Broken pipe) 23647 --- SIGPIPE {si_signo=3DSIGPIPE, si_code=3DSI_USER, si_pid=3D23647, s= i_uid=3D1000} --- --8<---------------cut here---------------end--------------->8--- After that dup2(12, 7) call, writing to the finalization pipe yields SIGPIPE, which terminates the process (here it corresponds to a subshell running =E2=80=98expr=E2=80=99). Since we=E2=80=99re going to exec right after fork, we could turn off finalization around =E2=80=98primitive-fork=E2=80=99 such that the child do= esn=E2=80=99t attempt to restart the finalization thread before exec. The Shepherd has code like this: --8<---------------cut here---------------start------------->8--- (define %set-automatic-finalization-enabled?! ;; When using a statically-linked Guile, for instance in the initrd, we ;; cannot resolve this symbol, but most of the time we don't need it ;; anyway. Thus, delay it. (let ((proc (delay (pointer->procedure int (dynamic-func "scm_set_automatic_finalization_enable= d" (dynamic-link)) (list int))))) (lambda (enabled?) "Switch on or off automatic finalization in a separate thread. Turning finalization off shuts down the finalization thread as a side effec= t." (->bool ((force proc) (if enabled? 1 0)))))) (define-syntax-rule (without-automatic-finalization exp ...) "Turn off automatic finalization within the dynamic extent of EXP." (let ((enabled? #t)) (dynamic-wind (lambda () (set! enabled? (%set-automatic-finalization-enabled?! #f))) (lambda () exp ...) (lambda () (%set-automatic-finalization-enabled?! enabled?))))) --8<---------------cut here---------------end--------------->8--- Problem is, we cannot use the FFI on the statically-linked Guile. We could implement fork+exec in C, but we don=E2=80=99t have a C compiler at this early bootstrap stage. Thoughts? Ludo=E2=80=99.
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Received: (at 75658) by debbugs.gnu.org; 15 Mar 2025 05:09:11 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Mar 15 01:09:10 2025 Received: from localhost ([127.0.0.1]:37620 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ttJlm-00060v-Cp for submit <at> debbugs.gnu.org; Sat, 15 Mar 2025 01:09:10 -0400 Received: from fhigh-b8-smtp.messagingengine.com ([202.12.124.159]:39075) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <samplet@HIDDEN>) id 1ttJlg-00060I-7r for 75658 <at> debbugs.gnu.org; Sat, 15 Mar 2025 01:09:08 -0400 Received: from phl-compute-09.internal (phl-compute-09.phl.internal [10.202.2.49]) by mailfhigh.stl.internal (Postfix) with ESMTP id 38CFB25400D8; Sat, 15 Mar 2025 01:08:58 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-09.internal (MEProxy); Sat, 15 Mar 2025 01:08:58 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ngyro.com; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm2; t=1742015338; x=1742101738; bh=twzkuZ/11mpZTKj6NmrQcedHprhKj9ljXct0gffJISI=; b= WDZJ2DUfh7rSYJyuRUYGDX1UYqROuvd9pXKvn/1mWUrugizYz7N1VEGf01O9c1Yw GF4T1gFRov+BG92iCTJeulvY37nrXYLOlLPoywPxITO6VsmM8ey/K2W7n22nHFPz 1m9E9hppXS0dVgRHuGENah6QuQ7Nac0XyPM8Xr8nBkiy5II7Sm5akKig6T/VPFOS Xf8MBXHTYNXOG9C0KO46WJxXX0hte9IvaF1fvxE+mmbfd1i5Tkeg1N3xYr8Zftn1 Iud/CYRUEUXdP4lCHaV6Wfm8GO5h+sKnzuAwEGpPcNmqZTnROF7Q9GC2zoQSVi0M AVMatLj5VjiSFlPyP/dwPQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1742015338; x= 1742101738; bh=twzkuZ/11mpZTKj6NmrQcedHprhKj9ljXct0gffJISI=; b=d a/62xfiTj5MvpVloRxas9fc7PUcdQ/HshLugXgZbXK92Bk73Do7Ap6XHIDMsVzkG 4//GGRQ6f8F3Do/ILLaS/cW1tV1ocKag3m9ODMb/gySOa+jfUhQVsgV12xfYlrv/ PeP18j5x+L2Bcx/SM0g3d3Re+Wgm1vFa+dIjfrqhccbI0X2RlOwNu57ACSd9EIfK 6wpGTnxwkH3ojAemntR6r38vT+x/rESKiugSoYHH21Gf9D38JY2JIn0OIPoHNStR Bhg1iAlqMSXi7NV8mJChq6q5ZpXN9RLflWOiH600XGTAtNffETCnVLks8k4e9elh YAqPuBXa9VOmuUKkuiU+A== X-ME-Sender: <xms:aQvVZ-MPcdI3RcSKeDoFD5d3llABjc5EOQW7gRZLeqws77k0DM6PwQ> <xme:aQvVZ8_Ro_UpA2N1NOv2ID9O2-ZKCHcldKMYFebPSQjZgWbWx9ae6utpMv2_fW5VY UjIdwV_WOiUfPIy2Q> X-ME-Received: <xmr:aQvVZ1SndKlDQrJrRFk5raVsK29Qb2jA25BY7fbJiPTGJZQiW8wuIIo6bA> X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgddufedvkeegucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhephffvvefujghffffkfgggtgfgsehtqhertddt reejnecuhfhrohhmpefvihhmohhthhihucfurghmphhlvgcuoehsrghmphhlvghtsehngh ihrhhordgtohhmqeenucggtffrrghtthgvrhhnpeetfeffffettdelveekgfeffeevudeh hedtffdvfffhudethfefvdduudejlefhvdenucevlhhushhtvghrufhiiigvpedtnecurf grrhgrmhepmhgrihhlfhhrohhmpehsrghmphhlvghtsehnghihrhhordgtohhmpdhnsggp rhgtphhtthhopeefpdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehjrghnnhgvkh gvsehgnhhurdhorhhgpdhrtghpthhtohepjeehieehkeesuggvsggsuhhgshdrghhnuhdr ohhrghdprhgtphhtthhopehluhguohesghhnuhdrohhrgh X-ME-Proxy: <xmx:aQvVZ-siVFPmlg5ihnY4N3len-ar93iVzexmAHBZ2jHyKQNUMskkMw> <xmx:aQvVZ2fEGUlSNEckwaURVPq0JQCKeg0IXo3Q48wFwQAdwf79XWyi4Q> <xmx:aQvVZy3GRyhuGHXdu9_OeOmhJsucFSKzBbPH2fSwqDqIYss73TLoBw> <xmx:aQvVZ69gtcxrJaAmsQS_0qqNa5TdHLv4_BNFbIMBLzkbv2vHvXTKIw> <xmx:agvVZ27kf0JYe3UXNOCWgGmsLz6GnVMe7RvUxnuOd0lHSQ25UnLmpazI> Feedback-ID: i4721425c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sat, 15 Mar 2025 01:08:56 -0400 (EDT) From: Timothy Sample <samplet@HIDDEN> To: Ludovic =?utf-8?Q?Court=C3=A8s?= <ludo@HIDDEN> Subject: Re: bug#75658: Non-deterministic Gash error in =?utf-8?Q?=E2=80=98gcc-mesboot-4=2E9=2E4=E2=80=99?= In-Reply-To: <871pv0wkfu.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Fri, 14 Mar 2025 01:00:05 +0100") References: <87msfnsrli.fsf@HIDDEN> <87wmeqpspy.fsf@HIDDEN> <87bju7i6rr.fsf@HIDDEN> <871pv0wkfu.fsf@HIDDEN> Date: Fri, 14 Mar 2025 23:08:55 -0600 Message-ID: <87senex4m0.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 75658 Cc: 75658 <at> debbugs.gnu.org, Janneke Nieuwenhuizen <janneke@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.7 (-) Ludovic Court=C3=A8s <ludo@HIDDEN> writes: > I was able to capture an strace log of this: > > 15837 clone(child_stack=3DNULL, flags=3DCLONE_CHILD_CLEARTID|CLONE_CHILD_= SETTID|SIGCHLD, child_tidptr=3D0x7fb10dad7850) =3D 15838 > 15838 set_robust_list(0x7fb10dad7860, 24) =3D 0 > 15837 wait4(15838, <unfinished ...> > 15838 close(3) =3D 0 > 15838 close(4) =3D 0 > 15838 pipe2([3, 4], O_CLOEXEC) =3D 0 > [...] > 15838 clone3({flags=3DCLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_T= HREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, = child_tid=3D0x7fb10beaa990, parent_tid=3D0x7fb10beaa990, exit_signal=3D0, s= tack=3D0x7fb10b51b000, stack_size=3D0x98ef80, tls=3D0x7fb10beaa6c0} =3D> {p= arent_tid=3D[15839]}, 88) =3D 15839 > 15839 rseq(0x7fb10beaafe0, 0x20, 0, 0x53053053 <unfinished ...> > 15838 rt_sigprocmask(SIG_SETMASK, [], <unfinished ...> > [...] > 15838 lseek(2, 0, SEEK_CUR) =3D -1 ESPIPE (Illegal seek) > 15839 close(10) =3D 0 > 15839 close(17 <unfinished ...> > 15838 dup2(22, 6 <unfinished ...> > 15839 <... close resumed>) =3D 0 > 15838 <... dup2 resumed>) =3D 6 > 15839 close(6 <unfinished ...> > 15838 fcntl(6, F_GETFL <unfinished ...> > 15839 <... close resumed>) =3D 0 > 15838 <... fcntl resumed>) =3D -1 EBADF (Bad file descriptor) > 15839 close(7) =3D 0 > 15839 close(18) =3D 0 > 15839 close(15) =3D 0 > 15839 close(12) =3D 0 > 15839 close(9) =3D 0 > 15839 close(16) =3D 0 > 15838 write(2, "Backtrace:\n", 11) =3D 11 > > The sequence goes like this: > > 1. A child process (15837) corresponding to the subshell is created; > > 2. That process creates a finalization thread (15839); > > 3. Main thread does dup2(22, 6); finalization does close(6); main > thread does fcntl(6, F_GETFL), which fails with EBADF. > > I suspect something like a wrong revealed count on the relevant ports, > possibly those created in =E2=80=98install-current-ports!=E2=80=99. In =E2=80=9Cboot-9.scm=E2=80=9D, we have (define dup->port (case-lambda ((port/fd mode) (fdopen (dup->fdes port/fd) mode)) ((port/fd mode new-fd) (let ((port (fdopen (dup->fdes port/fd new-fd) mode))) (set-port-revealed! port 1) port)))) It looks like the system calls on the main thread correspond to this code (which is called from =E2=80=98install-current-ports!=E2=80=99 via =E2= =80=98dup=E2=80=99). Specifically, =E2=80=98dup2=E2=80=99 is called from =E2=80=98dup->fdes=E2= =80=99 and =E2=80=98fcntl=E2=80=99 is called from =E2=80=98fdopen=E2=80=99. The way that =E2=80=98dup->fdes=E2=80=99 works is that it first makes sure = that no existing port has the desired file descriptor (=E2=80=98scm_evict_ports=E2= =80=99), and then calls =E2=80=98dup2=E2=80=98. This should mean that the requested fil= e descriptor is up for grabs. Here=E2=80=99s my guess as to what=E2=80=98s happening. For brevity let=E2= =80=99s call the port with file descriptor 6 =E2=80=9CP=E2=80=9D. 1. The GC runs, nullifying the entry for P in the port table (weak key hash table), and queuing its finalizer. 2. The evict ports loop runs, missing P because it was nullified (see =E2=80=98scm_internal_hash_fold=E2=80=99). 3. =E2=80=98dup2=E2=80=99 turns 22 to 6. 4. The finalizer for P runs, closing 6. 5. =E2=80=98fdopen=E2=80=99 calls =E2=80=98fcntl=E2=80=99 on 6, which res= ults in EBADF. And here=E2=80=99s a reproducer: (let loop () (define fd #f) (let ((P (open-input-file "/dev/null"))) ;; Does not change the revealed count of P. (set! fd (fileno P))) (let ((port (open-input-file "/dev/null"))) (dup->port port "r" fd) (close-port port) (loop))) This results in EBADF in seemingly exactly the same way. (I had to run it a few times: sometimes it runs out of file descriptors first.) This happens on bootstrap Guile (2.0.9) and modern Guile. That=E2=80=99s all I have for now. I=E2=80=99m not sure how to avoid this = without resorting to calling =E2=80=9C(gc)=E2=80=9D to synchronously run the finali= zers before trying to mess with the file descriptors. -- Tim
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Received: (at 75658) by debbugs.gnu.org; 14 Mar 2025 00:00:19 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Thu Mar 13 20:00:19 2025 Received: from localhost ([127.0.0.1]:58945 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tssTK-000814-Jg for submit <at> debbugs.gnu.org; Thu, 13 Mar 2025 20:00:19 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:36780) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tssTH-0007zB-HJ for 75658 <at> debbugs.gnu.org; Thu, 13 Mar 2025 20:00:16 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 95EA962D; Fri, 14 Mar 2025 01:00:08 +0100 (CET) Authentication-Results: hera.aquilenet.fr; none X-Virus-Scanned: Debian amavis at hera.aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavis, port 10024) with ESMTP id SwI-jKDg4AzW; Fri, 14 Mar 2025 01:00:08 +0100 (CET) Received: from ribbon (unknown [83.118.207.42]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 693D95B8; Fri, 14 Mar 2025 01:00:06 +0100 (CET) From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: 75658 <at> debbugs.gnu.org Subject: Re: bug#75658: Non-deterministic Gash error in =?utf-8?Q?=E2=80=98gcc-mesboot-4=2E9=2E4=E2=80=99?= In-Reply-To: <87bju7i6rr.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Tue, 11 Mar 2025 22:42:16 +0100") References: <87msfnsrli.fsf@HIDDEN> <87wmeqpspy.fsf@HIDDEN> <87bju7i6rr.fsf@HIDDEN> Date: Fri, 14 Mar 2025 01:00:05 +0100 Message-ID: <871pv0wkfu.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: hera X-Rspamd-Queue-Id: 95EA962D X-Spamd-Result: default: False [4.90 / 15.00]; SPAM_FLAG(5.00)[]; BAYES_HAM(-3.00)[100.00%]; NEURAL_SPAM(3.00)[1.000]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; MID_RHS_MATCH_FROM(0.00)[] X-Spamd-Bar: ++++ X-Rspamd-Action: no action X-Spam-Level: **** X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 75658 Cc: Timothy Sample <samplet@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) Ludovic Court=C3=A8s <ludo@HIDDEN> skribis: > In gash/shell.scm: > 289: 9 [sh:substitute-command #<procedure 2da0f560 at gash/eval.scm:129:= 35 ()>] > 270: 8 [%subshell #<procedure v ()>] > In ice-9/boot-9.scm: > 157: 7 [catch quit #<procedure v ()> ...] > In ice-9/r4rs.scm: > 176: 6 [with-output-to-port #<variable 2de5dc00 value: #<output: file /d= ev/pts/19>> ...] > In srfi/srfi-1.scm: > 619: 5 [for-each #<procedure eval-sh (exp)> ((<sh-exec> "expr" # ":" ...= ))] > In gash/shell.scm: > 129: 4 [sh:exec-let () "expr" ...] > 92: 3 [exec-utility () ...] > In srfi/srfi-1.scm: > 616: 2 [for-each #<procedure 2d60f0a0 at gash/shell.scm:70:12 (i)> (0 1 = 2 ...)] > In ice-9/boot-9.scm: > 1473: 1 [dup->port #<input: file /dev/pts/19> "r0" 7] > In unknown file: > ?: 0 [fdopen 7 "r0"] > > ERROR: In procedure fdopen: > ERROR: In procedure scm_fdes_to_port: Bad file descriptor I was able to capture an strace log of this: --8<---------------cut here---------------start------------->8--- 15837 clone(child_stack=3DNULL, flags=3DCLONE_CHILD_CLEARTID|CLONE_CHILD_SE= TTID|SIGCHLD, child_tidptr=3D0x7fb10dad7850) =3D 15838 15838 set_robust_list(0x7fb10dad7860, 24) =3D 0 15837 wait4(15838, <unfinished ...> 15838 close(3) =3D 0 15838 close(4) =3D 0 15838 pipe2([3, 4], O_CLOEXEC) =3D 0 [...] 15838 clone3({flags=3DCLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THR= EAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, ch= ild_tid=3D0x7fb10beaa990, parent_tid=3D0x7fb10beaa990, exit_signal=3D0, sta= ck=3D0x7fb10b51b000, stack_size=3D0x98ef80, tls=3D0x7fb10beaa6c0} =3D> {par= ent_tid=3D[15839]}, 88) =3D 15839 15839 rseq(0x7fb10beaafe0, 0x20, 0, 0x53053053 <unfinished ...> 15838 rt_sigprocmask(SIG_SETMASK, [], <unfinished ...> [...] 15838 lseek(2, 0, SEEK_CUR) =3D -1 ESPIPE (Illegal seek) 15839 close(10) =3D 0 15839 close(17 <unfinished ...> 15838 dup2(22, 6 <unfinished ...> 15839 <... close resumed>) =3D 0 15838 <... dup2 resumed>) =3D 6 15839 close(6 <unfinished ...> 15838 fcntl(6, F_GETFL <unfinished ...> 15839 <... close resumed>) =3D 0 15838 <... fcntl resumed>) =3D -1 EBADF (Bad file descriptor) 15839 close(7) =3D 0 15839 close(18) =3D 0 15839 close(15) =3D 0 15839 close(12) =3D 0 15839 close(9) =3D 0 15839 close(16) =3D 0 15838 write(2, "Backtrace:\n", 11) =3D 11 --8<---------------cut here---------------end--------------->8--- The sequence goes like this: 1. A child process (15837) corresponding to the subshell is created; 2. That process creates a finalization thread (15839); 3. Main thread does dup2(22, 6); finalization does close(6); main thread does fcntl(6, F_GETFL), which fails with EBADF. I suspect something like a wrong revealed count on the relevant ports, possibly those created in =E2=80=98install-current-ports!=E2=80=99. Ludo=E2=80=99.
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Received: (at 75658) by debbugs.gnu.org; 11 Mar 2025 21:42:30 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Tue Mar 11 17:42:30 2025 Received: from localhost ([127.0.0.1]:46123 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ts7Mr-0004qb-Dk for submit <at> debbugs.gnu.org; Tue, 11 Mar 2025 17:42:30 -0400 Received: from hera.aquilenet.fr ([185.233.100.1]:52944) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1ts7Mp-0004qN-Dk for 75658 <at> debbugs.gnu.org; Tue, 11 Mar 2025 17:42:28 -0400 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 98EB7420; Tue, 11 Mar 2025 22:42:20 +0100 (CET) Authentication-Results: hera.aquilenet.fr; none X-Virus-Scanned: Debian amavis at hera.aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavis, port 10024) with ESMTP id 2MrHQ3sTNoRK; Tue, 11 Mar 2025 22:42:19 +0100 (CET) Received: from ribbon (unknown [83.118.207.42]) by hera.aquilenet.fr (Postfix) with ESMTPSA id BFAE31AA; Tue, 11 Mar 2025 22:42:18 +0100 (CET) From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: 75658 <at> debbugs.gnu.org Subject: Re: bug#75658: Non-deterministic Gash error in =?utf-8?Q?=E2=80=98gcc-mesboot-4=2E9=2E4=E2=80=99?= In-Reply-To: <87wmeqpspy.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Sun, 19 Jan 2025 19:24:25 +0100") References: <87msfnsrli.fsf@HIDDEN> <87wmeqpspy.fsf@HIDDEN> Date: Tue, 11 Mar 2025 22:42:16 +0100 Message-ID: <87bju7i6rr.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: hera X-Rspamd-Queue-Id: 98EB7420 X-Spamd-Result: default: False [4.86 / 15.00]; SPAM_FLAG(5.00)[]; BAYES_HAM(-3.00)[100.00%]; NEURAL_SPAM(2.96)[0.987]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; MID_RHS_MATCH_FROM(0.00)[] X-Spamd-Bar: ++++ X-Rspamd-Action: no action X-Spam-Level: **** X-Spam-Score: 1.0 (+) X-Debbugs-Envelope-To: 75658 Cc: Timothy Sample <samplet@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -0.0 (/) Ludovic Court=C3=A8s <ludo@HIDDEN> skribis: > Ludovic Court=C3=A8s <ludovic.courtes@HIDDEN> skribis: > >> I stumbled upon this interesting non-deterministic failure while >> building =E2=80=98gcc-mesboot-4.9.4.drv=E2=80=99 on current =E2=80=98cor= e-packages-team=E2=80=99 (which >> is unchanged compared to =E2=80=98master=E2=80=99): > > Just got another one: A few more, obtained by running the start of the =E2=80=98configure=E2=80= =99 script in a loop (added an =E2=80=98exit=E2=80=99 on line 2562, which is after the firs= t 4 lines of output). while ./configure CONFIG_SHELL=3D/gnu/store/98bd49rhyia49y0b9d7sk8phsq14g= 3nk-gash-boot-0.3.0/bin/bash SHELL=3D/gnu/store/98bd49rhyia49y0b9d7sk8phsq1= 4g3nk-gash-boot-0.3.0/bin/bash --prefix=3D/gnu/store/awkbdj5j41pv5kiy9ifs0z= l40jamwfw4-gcc-mesboot-4.9.4 --enable-fast-install --build=3Dx86_64-unknown= -linux-gnu --prefix=3D/gnu/store/awkbdj5j41pv5kiy9ifs0zl40jamwfw4-gcc-mesbo= ot-4.9.4 --build=3Di686-unknown-linux-gnu --host=3Di686-unknown-linux-gnu -= -with-host-libstdcxx=3D-lsupc++ --with-native-system-header-dir=3D/gnu/stor= e/gc91zbacrk6prhvm91cj3x9rr3v2k17q-glibc-mesboot-2.16.0/include --with-buil= d-sysroot=3D/gnu/store/gc91zbacrk6prhvm91cj3x9rr3v2k17q-glibc-mesboot-2.16.= 0/include --disable-bootstrap --disable-decimal-float --disable-libatomic -= -disable-libcilkrts --disable-libgomp --disable-libitm --disable-libmudflap= --disable-libquadmath --disable-libsanitizer --disable-libssp --disable-li= bvtv --disable-lto --disable-lto-plugin --disable-multilib --disable-plugin= --disable-threads --enable-languages=3Dc,c++ --enable-static --enable-shar= ed --enable-threads=3Dsingle --disable-libstdcxx-pch --disable-build-with-c= xx ; do : ;done --8<---------------cut here---------------start------------->8--- warning: failed to install locale: Invalid argument Backtrace: In gash/environment.scm: 371: 19 [call-with-break #<procedure 2dda9450 at gash/shell.scm:400:6 ()>] In srfi/srfi-1.scm: 619: 18 [for-each #<procedure 2dda9420 at gash/shell.scm:401:18 (value)> #] In gash/environment.scm: 353: 17 [call-with-continue #<procedure 2de13460 at gash/eval.scm:158:14 (= )>] In srfi/srfi-1.scm: 616: 16 [for-each #<procedure eval-sh (exp)> (# # #)] 619: 15 [for-each #<procedure eval-sh (exp)> ((<sh-set!> ("ac_optarg" #)))] In gash/eval.scm: 221: 14 [eval-sh (<sh-set!> ("ac_optarg" (<sh-cmd-sub> #)))] In srfi/srfi-1.scm: 642: 13 [for-each #<procedure 2da0f5e0 at gash/eval.scm:221:17 (name word)= > # #] In gash/eval.scm: 222: 12 [#<procedure 2da0f5e0 at gash/eval.scm:221:17 (name word)> "ac_opt= arg" #] 131: 11 [eval-word (<sh-cmd-sub> (<sh-exec> "expr" # ":" ...)) #:output st= ring ...] 121: 10 [expand-word (<sh-cmd-sub> (<sh-exec> "expr" # ...)) #:output ...] In gash/shell.scm: 289: 9 [sh:substitute-command #<procedure 2da0f560 at gash/eval.scm:129:35= ()>] 270: 8 [%subshell #<procedure v ()>] In ice-9/boot-9.scm: 157: 7 [catch quit #<procedure v ()> ...] In ice-9/r4rs.scm: 176: 6 [with-output-to-port #<variable 2de5dc00 value: #<output: file /dev= /pts/19>> ...] In srfi/srfi-1.scm: 619: 5 [for-each #<procedure eval-sh (exp)> ((<sh-exec> "expr" # ":" ...))] In gash/shell.scm: 129: 4 [sh:exec-let () "expr" ...] 92: 3 [exec-utility () ...] In srfi/srfi-1.scm: 616: 2 [for-each #<procedure 2d60f0a0 at gash/shell.scm:70:12 (i)> (0 1 2 = ...)] In ice-9/boot-9.scm: 1473: 1 [dup->port #<input: file /dev/pts/19> "r0" 7] In unknown file: ?: 0 [fdopen 7 "r0"] ERROR: In procedure fdopen: ERROR: In procedure scm_fdes_to_port: Bad file descriptor --8<---------------cut here---------------end--------------->8--- And: --8<---------------cut here---------------start------------->8--- Backtrace: In ice-9/boot-9.scm: 157: 17 [catch #t #<catch-closure 25cdf0a0> ...] In unknown file: ?: 16 [apply-smob/1 #<catch-closure 25cdf0a0>] In ice-9/boot-9.scm: 63: 15 [call-with-prompt prompt0 ...] In ice-9/eval.scm: 432: 14 [eval # #] In ice-9/boot-9.scm: 793: 13 [call-with-input-file "./configure" ...] In gash/gash.scm: 121: 12 [#<procedure 262f7700 at gash/gash.scm:120:19 (port)> #<input: ./c= onfigure 5>] In gash/repl.scm: 38: 11 [run-repl #<input: ./configure 5> #f] In gash/environment.scm: 371: 10 [call-with-break #<procedure 26335c00 at gash/shell.scm:400:6 ()>] In srfi/srfi-1.scm: 616: 9 [for-each #<procedure 26335bd0 at gash/shell.scm:401:18 (value)> #] In gash/environment.scm: 353: 8 [call-with-continue #<procedure 26315260 at gash/eval.scm:158:14 ()= >] In srfi/srfi-1.scm: 619: 7 [for-each #<procedure eval-sh (exp)> (# # #)] In gash/shell.scm: 441: 6 [sh:cond #] 55: 5 [without-errexit #<procedure 26861c80 at gash/eval.scm:149:6 ()>] 129: 4 [sh:exec-let () "test" "-n" ""] 92: 3 [exec-utility () ...] In srfi/srfi-1.scm: 619: 2 [for-each #<procedure 26272b60 at gash/shell.scm:70:12 (i)> (0 1 2 = ...)] In ice-9/boot-9.scm: 1473: 1 [dup->port #<output: file /dev/pts/19> "w0" 6] In unknown file: ?: 0 [fdopen 6 "w0"] ERROR: In procedure fdopen: ERROR: In procedure scm_fdes_to_port: Bad file descriptor --8<---------------cut here---------------end--------------->8--- And: --8<---------------cut here---------------start------------->8--- Backtrace: In ice-9/boot-9.scm: 157: 13 [catch #t #<catch-closure 1879d00> ...] In unknown file: ?: 12 [apply-smob/1 #<catch-closure 1879d00>] In ice-9/boot-9.scm: 63: 11 [call-with-prompt prompt0 ...] In ice-9/eval.scm: 432: 10 [eval # #] In ice-9/boot-9.scm: 793: 9 [call-with-input-file "./configure" ...] In gash/gash.scm: 121: 8 [#<procedure 1e905e0 at gash/gash.scm:120:19 (port)> #<input: ./con= figure 5>] In gash/repl.scm: 38: 7 [run-repl #<input: ./configure 5> #f] In gash/shell.scm: 441: 6 [sh:cond #] 55: 5 [without-errexit #<procedure 2192680 at gash/eval.scm:149:6 ()>] 129: 4 [sh:exec-let () "test" "xi686-unknown-linux-gnu" "!=3D" "x"] 92: 3 [exec-utility () ...] In srfi/srfi-1.scm: 619: 2 [for-each #<procedure 1e06920 at gash/shell.scm:70:12 (i)> (0 1 2 .= ..)] In ice-9/boot-9.scm: 1473: 1 [dup->port #<output: file /dev/pts/19> "w0" 6] In unknown file: ?: 0 [fdopen 6 "w0"] ERROR: In procedure fdopen: ERROR: In procedure scm_fdes_to_port: Bad file descriptor --8<---------------cut here---------------end--------------->8--- All these happen before the line: --8<---------------cut here---------------start------------->8--- checking build system type... i686-unknown-linux-gnu --8<---------------cut here---------------end--------------->8--- Good news: I was able to reproduce with Gash over Guile 3.0.9: --8<---------------cut here---------------start------------->8--- ludo@ribbon /tmp/guix-build-gcc-mesboot-4.9.4.drv-0/gcc-4.9.4$ guix build g= ash /gnu/store/mz5swdf35iwplrgdvm4z256py585nxi6-gash-0.3.0 ludo@ribbon /tmp/guix-build-gcc-mesboot-4.9.4.drv-0/gcc-4.9.4$ while /gnu/s= tore/mz5swdf35iwplrgdvm4z256py585nxi6-gash-0.3.0/bin/gash ./configure CONFI= G_SHELL=3D/gnu/store/98bd49rhyia49y0b9d7sk8phsq14g3nk-gash-boot-0.3.0/bin/b= ash SHELL=3D/gnu/store/98bd49rhyia49y0b9d7sk8phsq14g3nk-gash-boot-0.3.0/bin= /bash --prefix=3D/gnu/store/awkbdj5j41pv5kiy9ifs0zl40jamwfw4-gcc-mesboot-4.= 9.4 --enable-fast-install --build=3Dx86_64-unknown-linux-gnu --prefix=3D/gn= u/store/awkbdj5j41pv5kiy9ifs0zl40jamwfw4-gcc-mesboot-4.9.4 --build=3Di686-u= nknown-linux-gnu --host=3Di686-unknown-linux-gnu --with-host-libstdcxx=3D-l= supc++ --with-native-system-header-dir=3D/gnu/store/gc91zbacrk6prhvm91cj3x9= rr3v2k17q-glibc-mesboot-2.16.0/include --with-build-sysroot=3D/gnu/store/gc= 91zbacrk6prhvm91cj3x9rr3v2k17q-glibc-mesboot-2.16.0/include --disable-boots= trap --disable-decimal-float --disable-libatomic --disable-libcilkrts --dis= able-libgomp --disable-libitm --disable-libmudflap --disable-libquadmath --= disable-libsanitizer --disable-libssp --disable-libvtv --disable-lto --disa= ble-lto-plugin --disable-multilib --disable-plugin --disable-threads --enab= le-languages=3Dc,c++ --enable-static --enable-shared --enable-threads=3Dsin= gle --disable-libstdcxx-pch --disable-build-with-cxx ; do : ;done [=E2=80=A6] Backtrace: In ice-9/boot-9.scm: 1752:10 18 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _) In unknown file: 17 (apply-smob/0 #<thunk 7f8e78d15300>) In ice-9/boot-9.scm: 724:2 16 (call-with-prompt _ _ #<procedure default-prompt-handler (k pr= oc)>) In ice-9/eval.scm: 619:8 15 (_ #(#(#<directory (guile-user) 7f8e78d18c80>))) In ice-9/ports.scm: 433:17 14 (call-with-input-file _ _ #:binary _ #:encoding _ #:guess-enco= ding _) In gash/gash.scm: 121:27 13 (_ _) In gash/repl.scm: 38:14 12 (run-repl _ _) In gash/environment.scm: 375:8 11 (call-with-break _) In srfi/srfi-1.scm: 634:9 10 (for-each #<procedure 7f8e75612420 at gash/shell.scm:401:18 (v= alue)> _) In gash/environment.scm: 357:8 9 (call-with-continue _) In srfi/srfi-1.scm: 634:9 8 (for-each #<procedure eval-sh (exp)> _) 634:9 7 (for-each #<procedure eval-sh (exp)> _) In gash/shell.scm: 55:39 6 (sh:and _ #<procedure 7f8e75656da0 at gash/eval.scm:149:6 ()>) 245:24 5 (_) 159:10 4 (sh:exec-let _ "expr" . _) 92:9 3 (exec-utility _ "/run/current-system/profile/bin/expr" "expr" = ("xliba=E2=80=A6" =E2=80=A6)) In srfi/srfi-1.scm: 634:9 2 (for-each #<procedure 7f8e760654c0 at gash/shell.scm:70:12 (i)= > _) In ice-9/ports.scm: 317:17 1 (dup->port _ _ _) In unknown file: 0 (fdopen 6 "w0") ERROR: In procedure fdopen: In procedure scm_fdes_to_port: Bad file descriptor --8<---------------cut here---------------end--------------->8--- Enough backtraces for now. To be continued=E2=80=A6 Ludo=E2=80=99.
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Ludovic Courtès <ludo@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Ludovic Courtès <ludo@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at 75658) by debbugs.gnu.org; 19 Jan 2025 18:24:52 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jan 19 13:24:52 2025 Received: from localhost ([127.0.0.1]:47413 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tZZye-0001mI-3l for submit <at> debbugs.gnu.org; Sun, 19 Jan 2025 13:24:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44154) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tZZyb-0001m1-R1 for 75658 <at> debbugs.gnu.org; Sun, 19 Jan 2025 13:24:50 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@HIDDEN>) id 1tZZyW-0001aD-5F; Sun, 19 Jan 2025 13:24:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=rwfufuv4htGpobiT/bvtCiVlW78cIKadLK30pvdb7zg=; b=OBtBEJ02EPGRNjIpC9je 5agKxiHn6tbzKi5WRHozyb0AHQANYaSRnf8EpMiszql2LH8KEgQM81nQgeCzStzIBoluXAP1TLm1+ mHmSo/mkvrA9gO6hl5Nhs6ETjfCrx7XDYoNKdBR/DgeAykrVFKu120d8KUkdIbM7JmqqOQBLLXFI4 x7gsgTR/wci0V85hh9P7AoMkexv2+8czMTFtO2vc+A+h8jYIXPTMB0N7On2ji2d/PZw5K8ei/wQB0 VDMA3UFTCoBo4gLe1/W3BdCXDlXG/moJAJg+/JLGSQo/X7IHcVVeWyCHHOOIIMHwwT7bXcUgot0SI EIkq1Zo5vO6T3Q==; From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN> To: 75658 <at> debbugs.gnu.org Subject: Re: bug#75658: Non-deterministic Gash error in =?utf-8?Q?=E2=80=98gcc-mesboot-4=2E9=2E4=E2=80=99?= In-Reply-To: <87msfnsrli.fsf@HIDDEN> ("Ludovic =?utf-8?Q?Court=C3=A8s=22?= =?utf-8?Q?'s?= message of "Sat, 18 Jan 2025 23:08:09 +0100") References: <87msfnsrli.fsf@HIDDEN> Date: Sun, 19 Jan 2025 19:24:25 +0100 Message-ID: <87wmeqpspy.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 75658 Cc: Timothy Sample <samplet@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Ludovic Court=C3=A8s <ludovic.courtes@HIDDEN> skribis: > I stumbled upon this interesting non-deterministic failure while > building =E2=80=98gcc-mesboot-4.9.4.drv=E2=80=99 on current =E2=80=98core= -packages-team=E2=80=99 (which > is unchanged compared to =E2=80=98master=E2=80=99): Just got another one: --8<---------------cut here---------------start------------->8--- checking for struct sigaction.sa_sigaction... yes checking for volatile sig_atomic_t... yes checking for sighandler_t... yes checking for sigprocmask... (cached) yes checking whether sleep is declared... yes checking for working sleep... yes checking for socklen_t... Backtrace: In gash/shell.scm: 129: 19 [sh:exec-let () "ac_fn_c_try_compile" "2817"] In gash/environment.scm: 215: 18 [save-variables-excursion () ...] 292: 17 [with-arguments # #<procedure 2210f00 at gash/shell.scm:145:25 ()>] 389: 16 [call-with-return #<procedure 2210e40 at gash/shell.scm:147:28 ()>] In srfi/srfi-1.scm: 619: 15 [for-each #<procedure eval-sh (exp)> ((<sh-begin> # # # ...))] 619: 14 [for-each #<procedure eval-sh (exp)> (# # # # ...)] In gash/shell.scm: 441: 13 [sh:cond # #] 55: 12 [without-errexit #<procedure 13185e0 at gash/eval.scm:149:6 ()>] 372: 11 [sh:and #<procedure 1318560 at gash/eval.scm:149:6 ()> ...] 55: 10 [without-errexit #<procedure 1318560 at gash/eval.scm:149:6 ()>] 372: 9 [sh:and #<procedure 1318500 at gash/eval.scm:149:6 ()> ...] 55: 8 [without-errexit #<procedure 1318500 at gash/eval.scm:149:6 ()>] In srfi/srfi-1.scm: 616: 7 [for-each #<procedure eval-sh (exp)> (# # # # ...)] 619: 6 [for-each #<procedure eval-sh (exp)> (# # #)] In gash/shell.scm: 245: 5 [#<procedure 1f63030 at gash/shell.scm:239:17 ()>] 129: 4 [sh:exec-let () "grep" "-v" "^ *+" "conftest.err"] 92: 3 [exec-utility () ...] In srfi/srfi-1.scm: 616: 2 [for-each #<procedure ea9a60 at gash/shell.scm:70:12 (i)> (0 1 2 ..= .)] In ice-9/boot-9.scm: 1473: 1 [dup->port #<input: file 20> "r" 7] In unknown file: ?: 0 [fdopen 7 "r"] ERROR: In procedure fdopen: ERROR: In procedure scm_fdes_to_port: Bad file descriptor yes checking whether symlink handles trailing slash correctly... yes checking whether <sys/ioctl.h> declares ioctl... yes checking for unsetenv... yes checking for unsetenv() return type... int --8<---------------cut here---------------end--------------->8--- That one likely doesn=E2=80=99t change the build outcome since it still determines that =E2=80=98socklen_t=E2=80=99 is defined, but it sounds a bit= like a dice roll. Ludo=E2=80=99.
bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.Received: (at submit) by debbugs.gnu.org; 18 Jan 2025 22:08:26 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sat Jan 18 17:08:26 2025 Received: from localhost ([127.0.0.1]:44014 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1tZGzS-0002dH-4X for submit <at> debbugs.gnu.org; Sat, 18 Jan 2025 17:08:26 -0500 Received: from lists.gnu.org ([2001:470:142::17]:42860) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from <ludovic.courtes@HIDDEN>) id 1tZGzP-0002cz-Ke for submit <at> debbugs.gnu.org; Sat, 18 Jan 2025 17:08:24 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludovic.courtes@HIDDEN>) id 1tZGzJ-0004QZ-Jy for bug-guix@HIDDEN; Sat, 18 Jan 2025 17:08:17 -0500 Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludovic.courtes@HIDDEN>) id 1tZGzG-0007Cu-TX for bug-guix@HIDDEN; Sat, 18 Jan 2025 17:08:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=inria.fr; s=dc; h=from:to:subject:date:message-id:mime-version: content-transfer-encoding; bh=do7/7X6RkY54a2ip0zLVejvNzO6YPAN3yojljKXPrHo=; b=qx4WOiFSZZV5vcCZN+KFOzQrKaiXxdPcNheoGK34Ude73lMPGVqIhn6E EolOC4HpmQtwj1lzXZiIBu6dv9jZWBDEQKLwD9vEMIj4kXwGMnzeWnzEn AiMrDZmmqZBs+sZ4Ts2uPmgmn5mt60yk4k6RiQjFvzZDwe9f1GO3Je4od A=; Authentication-Results: mail2-relais-roc.national.inria.fr; dkim=none (message not signed) header.i=none; spf=SoftFail smtp.mailfrom=ludovic.courtes@HIDDEN; dmarc=fail (p=none dis=none) d=inria.fr X-IronPort-AV: E=Sophos;i="6.13,216,1732575600"; d="scan'208";a="203824290" Received: from 91-160-117-201.subs.proxad.net (HELO ribbon) ([91.160.117.201]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jan 2025 23:08:09 +0100 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludovic.courtes@HIDDEN> To: bug-guix@HIDDEN Subject: Non-deterministic Gash error in =?utf-8?Q?=E2=80=98gcc-mesboot-4?= =?utf-8?Q?=2E9=2E4=E2=80=99?= X-Debbugs-Cc: Janneke Nieuwenhuizen <janneke@HIDDEN>, Timothy Sample <samplet@HIDDEN> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Nonidi 29 =?utf-8?Q?Niv=C3=B4se?= an 233 de la =?utf-8?Q?R=C3=A9volution=2C?= jour du Mercure X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Sat, 18 Jan 2025 23:08:09 +0100 Message-ID: <87msfnsrli.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=192.134.164.83; envelope-from=ludovic.courtes@HIDDEN; helo=mail2-relais-roc.national.inria.fr X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Hello, I stumbled upon this interesting non-deterministic failure while building =E2=80=98gcc-mesboot-4.9.4.drv=E2=80=99 on current =E2=80=98core-p= ackages-team=E2=80=99 (which is unchanged compared to =E2=80=98master=E2=80=99): --8<---------------cut here---------------start------------->8--- source directory: "/tmp/guix-build-gcc-mesboot-4.9.4.drv-0/gcc-4.9.4" (rela= tive from build: ".") build directory: "/tmp/guix-build-gcc-mesboot-4.9.4.drv-0/gcc-4.9.4" configure flags: ("CONFIG_SHELL=3D/gnu/store/bhmkf29xki04mmydpm0axpbh35md4v= fb-gash-boot-0.3.0/bin/bash" "SHELL=3D/gnu/store/bhmkf29xki04mmydpm0axpbh35= md4vfb-gash-boot-0.3.0/bin/bash" "--prefix=3D/gnu/store/mgbd56zvid129vkk8l9= zir7pf46r5038-gcc-mesboot-4.9.4" "--enable-fast-install" "--build=3Dx86_64-= unknown-linux-gnu" "--prefix=3D/gnu/store/mgbd56zvid129vkk8l9zir7pf46r5038-= gcc-mesboot-4.9.4" "--build=3Di686-unknown-linux-gnu" "--host=3Di686-unknow= n-linux-gnu" "--with-host-libstdcxx=3D-lsupc++" "--with-native-system-heade= r-dir=3D/gnu/store/qxp7icgwbn1hqqwvkan7aljgzfn439zh-glibc-mesboot-2.16.0/in= clude" "--with-build-sysroot=3D/gnu/store/qxp7icgwbn1hqqwvkan7aljgzfn439zh-= glibc-mesboot-2.16.0/include" "--disable-bootstrap" "--disable-decimal-floa= t" "--disable-libatomic" "--disable-libcilkrts" "--disable-libgomp" "--disa= ble-libitm" "--disable-libmudflap" "--disable-libquadmath" "--disable-libsa= nitizer" "--disable-libssp" "--disable-libvtv" "--disable-lto" "--disable-l= to-plugin" "--disable-multilib" "--disable-plugin" "--disable-threads" "--e= nable-languages=3Dc,c++" "--enable-static" "--enable-shared" "--enable-thre= ads=3Dsingle" "--disable-libstdcxx-pch" "--disable-build-with-cxx") Backtrace: In gash/eval.scm: 221: 19 [eval-sh (<sh-set!> ("ac_useropt" (<sh-cmd-sub> #)))] In srfi/srfi-1.scm: 642: 18 [for-each #<procedure 1502320 at gash/eval.scm:221:17 (name word)>= # #] In gash/eval.scm: 222: 17 [#<procedure 1502320 at gash/eval.scm:221:17 (name word)> "ac_user= opt" #] 131: 16 [eval-word (<sh-cmd-sub> (<sh-pipeline> # #)) #:output string ...] 121: 15 [expand-word (<sh-cmd-sub> (<sh-pipeline> # #)) #:output string ..= .] In gash/shell.scm: 289: 14 [sh:substitute-command #<procedure 15022a0 at gash/eval.scm:129:35= ()>] 270: 13 [%subshell #<procedure v ()>] In ice-9/boot-9.scm: 157: 12 [catch quit #<procedure v ()> ...] In ice-9/r4rs.scm: 176: 11 [with-output-to-port #<variable 13a02e0 value: #<output: file 39>>= ...] In srfi/srfi-1.scm: 619: 10 [for-each #<procedure eval-sh (exp)> ((<sh-pipeline> # #))] In gash/shell.scm: 344: 9 [sh:pipeline #<procedure 1506f40 at gash/eval.scm:149:6 ()> ...] 310: 8 [plumb #<input: #{read pipe}# 36> #f ...] 270: 7 [%subshell #<procedure thunk* ()>] In ice-9/boot-9.scm: 157: 6 [catch quit #<procedure thunk* ()> ...] In gash/shell.scm: 316: 5 [thunk*] 129: 4 [sh:exec-let () "sed" "s/[-+.]/_/g"] 92: 3 [exec-utility () ...] In srfi/srfi-1.scm: 616: 2 [for-each #<procedure ec3b20 at gash/shell.scm:70:12 (i)> (0 1 2 ..= .)] In ice-9/boot-9.scm: 1473: 1 [dup->port #<input: file 38> "r" 7] In unknown file: ?: 0 [fdopen 7 "r"] ERROR: In procedure fdopen: ERROR: In procedure scm_fdes_to_port: Bad file descriptor Backtrace: In gash/eval.scm: 221: 19 [eval-sh (<sh-set!> ("ac_useropt" (<sh-cmd-sub> #)))] In srfi/srfi-1.scm: 642: 18 [for-each #<procedure 1502320 at gash/eval.scm:221:17 (name word)>= # #] In gash/eval.scm: 222: 17 [#<procedure 1502320 at gash/eval.scm:221:17 (name word)> "ac_user= opt" #] 131: 16 [eval-word (<sh-cmd-sub> (<sh-pipeline> # #)) #:output string ...] 121: 15 [expand-word (<sh-cmd-sub> (<sh-pipeline> # #)) #:output string ..= .] In gash/shell.scm: 289: 14 [sh:substitute-command #<procedure 15022a0 at gash/eval.scm:129:35= ()>] 270: 13 [%subshell #<procedure v ()>] In ice-9/boot-9.scm: 157: 12 [catch quit #<procedure v ()> ...] In ice-9/r4rs.scm: 176: 11 [with-output-to-port #<variable 13a02e0 value: #<output: file 39>>= ...] In srfi/srfi-1.scm: 619: 10 [for-each #<procedure eval-sh (exp)> ((<sh-pipeline> # #))] In gash/shell.scm: 347: 9 [sh:pipeline #<procedure 1506f40 at gash/eval.scm:149:6 ()> ...] 310: 8 [plumb #f #<output: #{write pipe}# 38> ...] 270: 7 [%subshell #<procedure thunk* ()>] In ice-9/boot-9.scm: 157: 6 [catch quit #<procedure thunk* ()> ...] In gash/shell.scm: 316: 5 [thunk*] 129: 4 [sh:exec-let () "printf" "%s\\n" "libsanitizer"] 92: 3 [exec-utility () ...] In srfi/srfi-1.scm: 616: 2 [for-each #<procedure ec3b20 at gash/shell.scm:70:12 (i)> (0 1 2 ..= .)] In ice-9/boot-9.scm: 1473: 1 [dup->port #<input: file 36> "r" 7] In unknown file: ?: 0 [fdopen 7 "r"] ERROR: In procedure fdopen: ERROR: In procedure scm_fdes_to_port: Bad file descriptor checking build system type... i686-unknown-linux-gnu checking host system type... i686-unknown-linux-gnu checking target system type... i686-unknown-linux-gnu checking for a BSD-compatible install... ./install-sh -c checking whether ln works... yes checking whether ln -s works... yes checking for a sed that does not truncate output... /gnu/store/i61mvrw30k8n= g8hxym8s180nydnsbji6-gash-utils-boot-0.2.0/bin/sed checking for gawk... gawk checking for libsanitizer support... yes --8<---------------cut here---------------end--------------->8--- What happens is that Gash crashes in the middle of a substitution on $ac_useropt. As a result, =E2=80=98--disable-libsanitizer=E2=80=99 (and ot= her options, it seems) are discarded, hence the =E2=80=9Clibsanitizer support... yes=E2= =80=9D line. Hours later, build fails while trying to build libsanitizer. Any idea what could cause EBADF? Thanks, Ludo=E2=80=99.
Ludovic Courtès <ludovic.courtes@HIDDEN>
:janneke@HIDDEN, samplet@HIDDEN, bug-guix@HIDDEN
.
Full text available.janneke@HIDDEN, samplet@HIDDEN, bug-guix@HIDDEN
:bug#75658
; Package guix
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.