GNU logs - #75658, boring messages


Message sent to janneke@HIDDEN, samplet@HIDDEN, bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: Non-deterministic Gash error in =?UTF-8?Q?=E2=80=98gcc-mesboot-4.9.4=E2=80=99?=
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludovic.courtes@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: janneke@HIDDEN, samplet@HIDDEN, bug-guix@HIDDEN
Resent-Date: Sat, 18 Jan 2025 22:09:01 +0000
Resent-Message-ID: <handler.75658.B.173723810610127 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: 75658 <at> debbugs.gnu.org
Cc: Janneke Nieuwenhuizen <janneke@HIDDEN>, Timothy Sample <samplet@HIDDEN>
X-Debbugs-Original-To: bug-guix@HIDDEN
X-Debbugs-Original-Xcc: Janneke Nieuwenhuizen <janneke@HIDDEN>, Timothy Sample <samplet@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.173723810610127
          (code B ref -1); Sat, 18 Jan 2025 22:09:01 +0000
Received: (at submit) by debbugs.gnu.org; 18 Jan 2025 22:08:26 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludovic.courtes@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,?= 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-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.




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludovic.courtes@HIDDEN>
Subject: bug#75658: Acknowledgement (Non-deterministic Gash error in
 =?UTF-8?Q?=E2=80=98gcc-mesboot-4.9.4=E2=80=99?=)
Message-ID: <handler.75658.B.173723810610127.ack <at> debbugs.gnu.org>
References: <87msfnsrli.fsf@HIDDEN>
X-Gnu-PR-Message: ack 75658
X-Gnu-PR-Package: guix
Reply-To: 75658 <at> debbugs.gnu.org
Date: Sat, 18 Jan 2025 22:09:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

As you requested using X-Debbugs-CC, your message was also forwarded to
  Janneke Nieuwenhuizen <janneke@HIDDEN>, Timothy Sample <samplet@HIDDEN=
m>
(after having been given a bug report number, if it did not have one).

Your message has been sent to the package maintainer(s):
 bug-guix@HIDDEN

If you wish to submit further information on this problem, please
send it to 75658 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
75658: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D75658
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: Non-deterministic Gash error in =?UTF-8?Q?=E2=80=98gcc-mesboot-4.9.4=E2=80=99?=
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Sun, 19 Jan 2025 18:25:01 +0000
Resent-Message-ID: <handler.75658.B75658.17373110926843 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: 75658 <at> debbugs.gnu.org
Cc: Timothy Sample <samplet@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN>
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.17373110926843
          (code B ref 75658); Sun, 19 Jan 2025 18:25:01 +0000
Received: (at 75658) by debbugs.gnu.org; 19 Jan 2025 18:24:52 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
In-Reply-To: <87msfnsrli.fsf@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'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-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.




Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 6 Feb 2025 15:17:29 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 06 10:17:29 2025
Received: from localhost ([127.0.0.1]:58852 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tg3dB-0000Qr-J1
	for submit <at> debbugs.gnu.org; Thu, 06 Feb 2025 10:17:29 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:47126)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tg3d8-0000QZ-N8
 for control <at> debbugs.gnu.org; Thu, 06 Feb 2025 10:17:27 -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 1tg3d3-0002ZQ-3m
 for control <at> debbugs.gnu.org; Thu, 06 Feb 2025 10:17:21 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-version:Subject:From:To:Date:in-reply-to:
 references; bh=dMWYLEIOuvJIaUBD0PW1JRS7houWkf7cCF7aM331s+k=; b=TUmqttij90MBnc
 GEPj568Bx4AeUmIqCYQ4Ll9swkA0b6hvoUMoMXBBcVRchmsJZe8/4lXuuFPgmhtdZo2Pvq0trnSOy
 QHSmMgQ7XHJkiRMrLUwToyBDCQ6xjBZQWX1cjbOzh67o9lCg3NuSURl5rW4Rs4GhmTH6bkfQSZ2gE
 aHTLF/2WIOsYbP6jtTKzLcQmp/JyJJ98xTsHmg0XKaPNjeDHefd6kF7xtUB3w6aElrNA5CpKQvSzC
 qaG2Xanm4b/3IOZ0PYF74ZuRjKzxOfM5oEnzVhZ58p0LbGdC9c6gwaWpRiRlwHby1t+XM+wSvMU23
 CrH8PItamxhNHAzndRmg==;
Date: Thu, 06 Feb 2025 16:17:12 +0100
Message-Id: <877c636r2f.fsf@HIDDEN>
To: control <at> debbugs.gnu.org
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
Subject: control message for bug #75518
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: control
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 (---)

block 75518 by 75658
quit





Message received at control <at> debbugs.gnu.org:


Received: (at control) by debbugs.gnu.org; 17 Feb 2025 21:18:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 17 16:18:00 2025
Received: from localhost ([127.0.0.1]:50148 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1tk8V6-0001e4-Fd
	for submit <at> debbugs.gnu.org; Mon, 17 Feb 2025 16:18:00 -0500
Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]:12127)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <ludo@HIDDEN>) id 1tk8V3-0001dV-L8
 for control <at> debbugs.gnu.org; Mon, 17 Feb 2025 16:17:58 -0500
Authentication-Results: mail2-relais-roc.national.inria.fr;
 dkim=none (message not signed) header.i=none;
 spf=SoftFail smtp.mailfrom=ludo@HIDDEN;
 dmarc=fail (p=none dis=none) d=gnu.org
X-IronPort-AV: E=Sophos;i="6.13,293,1732575600"; d="scan'208";a="208701208"
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; 17 Feb 2025 22:17:51 +0100
Date: Mon, 17 Feb 2025 22:17:50 +0100
Message-Id: <87frkcl18h.fsf@HIDDEN>
To: control <at> debbugs.gnu.org
From: =?utf-8?Q?Ludovic_Court=C3=A8s?= <ludo@HIDDEN>
Subject: control message for bug #75658
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: control
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: -2.3 (--)

severity 75658 important
quit





Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: Non-deterministic Gash error in =?UTF-8?Q?=E2=80=98gcc-mesboot-4.9.4=E2=80=99?=
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Tue, 11 Mar 2025 21:43:02 +0000
Resent-Message-ID: <handler.75658.B75658.174172935018642 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: 75658 <at> debbugs.gnu.org
Cc: Timothy Sample <samplet@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN>
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.174172935018642
          (code B ref 75658); Tue, 11 Mar 2025 21:43:02 +0000
Received: (at 75658) by debbugs.gnu.org; 11 Mar 2025 21:42:30 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
In-Reply-To: <87wmeqpspy.fsf@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'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-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.




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: Non-deterministic Gash error in =?UTF-8?Q?=E2=80=98gcc-mesboot-4.9.4=E2=80=99?=
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Fri, 14 Mar 2025 00:01:02 +0000
Resent-Message-ID: <handler.75658.B75658.174191041930862 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: 75658 <at> debbugs.gnu.org
Cc: Timothy Sample <samplet@HIDDEN>, Janneke Nieuwenhuizen <janneke@HIDDEN>
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.174191041930862
          (code B ref 75658); Fri, 14 Mar 2025 00:01:02 +0000
Received: (at 75658) by debbugs.gnu.org; 14 Mar 2025 00:00:19 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
In-Reply-To: <87bju7i6rr.fsf@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'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-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.




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: Non-deterministic Gash error in =?UTF-8?Q?=E2=80=98gcc-mesboot-4.9.4=E2=80=99?=
Resent-From: Timothy Sample <samplet@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Sat, 15 Mar 2025 05:10:02 +0000
Resent-Message-ID: <handler.75658.B75658.174201535123125 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Cc: 75658 <at> debbugs.gnu.org, Janneke Nieuwenhuizen <janneke@HIDDEN>
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.174201535123125
          (code B ref 75658); Sat, 15 Mar 2025 05:10:02 +0000
Received: (at 75658) by debbugs.gnu.org; 15 Mar 2025 05:09:11 +0000
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>
In-Reply-To: <871pv0wkfu.fsf@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'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-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




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: Non-deterministic Gash error in =?UTF-8?Q?=E2=80=98gcc-mesboot-4.9.4=E2=80=99?=
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Sun, 16 Mar 2025 15:02:03 +0000
Resent-Message-ID: <handler.75658.B75658.174213729019683 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Timothy Sample <samplet@HIDDEN>
Cc: 75658 <at> debbugs.gnu.org, Janneke Nieuwenhuizen <janneke@HIDDEN>
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.174213729019683
          (code B ref 75658); Sun, 16 Mar 2025 15:02:03 +0000
Received: (at 75658) by debbugs.gnu.org; 16 Mar 2025 15:01:30 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
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-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.




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: Non-deterministic Gash error in =?UTF-8?Q?=E2=80=98gcc-mesboot-4.9.4=E2=80=99?=
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Sun, 16 Mar 2025 21:33:03 +0000
Resent-Message-ID: <handler.75658.B75658.174216073721437 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Timothy Sample <samplet@HIDDEN>
Cc: 75658 <at> debbugs.gnu.org, Janneke Nieuwenhuizen <janneke@HIDDEN>
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.174216073721437
          (code B ref 75658); Sun, 16 Mar 2025 21:33:03 +0000
Received: (at 75658) by debbugs.gnu.org; 16 Mar 2025 21:32:17 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
In-Reply-To: <87wmcpnhol.fsf@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'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-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)))

--=-=-=--




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: [PATCH 0/4] Fixes for subshells and redirections
References: <87msfnsrli.fsf@HIDDEN>
In-Reply-To: <87msfnsrli.fsf@HIDDEN>
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Wed, 19 Mar 2025 21:21:01 +0000
Resent-Message-ID: <handler.75658.B75658.174241925430067 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: gash-devel@HIDDEN
Cc: Timothy Sample <samplet@HIDDEN>, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, 75658 <at> debbugs.gnu.org, Jan Nieuwenhuizen <janneke@HIDDEN>
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.174241925430067
          (code B ref 75658); Wed, 19 Mar 2025 21:21:01 +0000
Received: (at 75658) by debbugs.gnu.org; 19 Mar 2025 21:20:54 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
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-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





Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: Non-deterministic Gash error in =?UTF-8?Q?=E2=80=98gcc-mesboot-4.9.4=E2=80=99?=
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Wed, 19 Mar 2025 21:28:02 +0000
Resent-Message-ID: <handler.75658.B75658.174241965131268 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Timothy Sample <samplet@HIDDEN>
Cc: 75658 <at> debbugs.gnu.org, Janneke Nieuwenhuizen <janneke@HIDDEN>
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.174241965131268
          (code B ref 75658); Wed, 19 Mar 2025 21:28:02 +0000
Received: (at 75658) by debbugs.gnu.org; 19 Mar 2025 21:27:31 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
In-Reply-To: <87sencmzl8.fsf@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'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-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

--=-=-=--




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: [PATCH 0/4] Fixes for subshells and redirections
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Thu, 20 Mar 2025 14:19:02 +0000
Resent-Message-ID: <handler.75658.B75658.17424803103408 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: gash-devel@HIDDEN
Cc: Timothy Sample <samplet@HIDDEN>, 75658 <at> debbugs.gnu.org, Jan Nieuwenhuizen <janneke@HIDDEN>
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.17424803103408
          (code B ref 75658); Thu, 20 Mar 2025 14:19:02 +0000
Received: (at 75658) by debbugs.gnu.org; 20 Mar 2025 14:18:30 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
In-Reply-To: <20250319212033.4643-1-ludo@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'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-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.




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: [PATCH 0/4] Fixes for subshells and redirections
Resent-From: Janneke Nieuwenhuizen <janneke@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Thu, 27 Mar 2025 07:17:02 +0000
Resent-Message-ID: <handler.75658.B75658.174305980118457 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Cc: Timothy Sample <samplet@HIDDEN>, gash-devel@HIDDEN, 75658 <at> debbugs.gnu.org
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.174305980118457
          (code B ref 75658); Thu, 27 Mar 2025 07:17:02 +0000
Received: (at 75658) by debbugs.gnu.org; 27 Mar 2025 07:16:41 +0000
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>
In-Reply-To: <20250319212033.4643-1-ludo@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'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-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




Message sent to bug-guix@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#75658: [PATCH 0/4] Fixes for subshells and redirections
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Wed, 02 Apr 2025 14:30:03 +0000
Resent-Message-ID: <handler.75658.B75658.174360416030246 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 75658
X-GNU-PR-Package: guix
X-GNU-PR-Keywords: 
To: Janneke Nieuwenhuizen <janneke@HIDDEN>
Cc: Timothy Sample <samplet@HIDDEN>, gash-devel@HIDDEN, 75658 <at> debbugs.gnu.org
Received: via spool by 75658-submit <at> debbugs.gnu.org id=B75658.174360416030246
          (code B ref 75658); Wed, 02 Apr 2025 14:30:03 +0000
Received: (at 75658) by debbugs.gnu.org; 2 Apr 2025 14:29:20 +0000
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: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
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-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.





Last modified: Wed, 2 Apr 2025 14:45:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.