From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id ko+RGpyx9V7afgAA0tVLHw (envelope-from ) for ; Fri, 26 Jun 2020 08:28:12 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id 4Bb9FZyx9V6kWgAAB5/wlQ (envelope-from ) for ; Fri, 26 Jun 2020 08:28:12 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D19EB9403C4 for ; Fri, 26 Jun 2020 08:28:11 +0000 (UTC) Received: from localhost ([::1]:50334 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jojiT-0006iO-5J for larch@yhetil.org; Fri, 26 Jun 2020 04:28:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43246) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jojiM-0006iD-FT for bug-guix@gnu.org; Fri, 26 Jun 2020 04:28:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:58481) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jojiM-0005F4-60 for bug-guix@gnu.org; Fri, 26 Jun 2020 04:28:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jojiM-0004HK-0I for bug-guix@gnu.org; Fri, 26 Jun 2020 04:28:02 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#42047: [PATCH 3/3] guix: gc: Support for the Hurd. In-Reply-To: <20200625203400.24644-1-janneke@gnu.org> Resent-From: Jan Nieuwenhuizen Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 26 Jun 2020 08:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 42047 X-GNU-PR-Package: guix X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Received: via spool by 42047-submit@debbugs.gnu.org id=B42047.159316007216432 (code B ref 42047); Fri, 26 Jun 2020 08:28:01 +0000 Received: (at 42047) by debbugs.gnu.org; 26 Jun 2020 08:27:52 +0000 Received: from localhost ([127.0.0.1]:41794 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jojiC-0004Gw-8V for submit@debbugs.gnu.org; Fri, 26 Jun 2020 04:27:52 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57100) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1joji9-0004Gi-Sx for 42047@debbugs.gnu.org; Fri, 26 Jun 2020 04:27:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52681) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1joji3-0005DV-18; Fri, 26 Jun 2020 04:27:43 -0400 Received: from [2001:980:1b4f:1:42d2:832d:bb59:862] (port=45590 helo=dundal.peder.onsbrabantnet.nl) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1joji1-0002fQ-LO; Fri, 26 Jun 2020 04:27:42 -0400 From: Jan Nieuwenhuizen Organization: AvatarAcademy.nl References: <20200625203850.25057-1-janneke@gnu.org> <20200625203850.25057-3-janneke@gnu.org> <87pn9mq3bo.fsf@gnu.org> X-Url: http://AvatarAcademy.nl Date: Fri, 26 Jun 2020 10:27:38 +0200 Message-ID: <87d05m9qpx.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) 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@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -3.3 (---) X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: 42047@debbugs.gnu.org Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of bug-guix-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=bug-guix-bounces@gnu.org X-Spam-Score: 0.49 X-TUID: Cl2A7P4M/wR8 Ludovic Court=C3=A8s writes: Hello, A new day! > "Jan (janneke) Nieuwenhuizen" skribis: > >> * guix/store/roots.scm (proc-environ-roots): Handle EIO, for the Hurd. >> * gnu/build/hurd-boot.scm (set-hurd-device-translators): Mount /proc. A= dd >> symlink to /etc/mtab. Remove duplicate calls to 'scope'. > > Nitpick: I see 3 mostly unrelated patches: (1) fix duplicate called to > =E2=80=98scope=E2=80=99, (2) mount /proc, and (3) handle EIO. I think it= =E2=80=99s clearer to > view them separately. Yes, I agree. I will split into 3 patches. (Initially my plan was to post a DRAFT/RFC for (3) that would either fix "guix gc", or show us the next error. Then I needed the other two and found there was yet another problem...) >> - (mkdir* (scope "dev/vcs/1")) >> - (mkdir* (scope "dev/vcs/2")) >> - (mkdir* (scope "dev/vcs/2")) > > Was it creating like /some/root/some/root/dev/vcs/1? No... "just" //dev/vcs/1. However, in my bare-iron experiments I stumbled upon several "Not a directory", so...just being careful here. >> (append-map rhs-file-names >> - (split-on-nul >> - (call-with-input-file environ >> - get-string-all)))) >> + (catch 'system-error >> + (lambda _ >> + (split-on-nul >> + (call-with-input-file environ >> + get-string-all))) >> + (lambda args >> + (if (=3D EIO (system-error-errno args)) >> + '() >> + (apply throw args)))))) > > This may be papering over a real problem. Before doing that, I think > =E2=80=9Cwe=E2=80=9D :-) should investigate why procfs returns EIO in som= e cases and > look into fixing it. Sure, let "us" look into that! :) > Then maybe we can still have the =E2=80=98catch=E2=80=99 above, but this = time as a > temporary measure and with a reference to the upstream issue/commit. > > WDYT? Sure, thanks. So...I think that I found the problem: Using guile-3.0.[34]. This patch --8<---------------cut here---------------start------------->8--- diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index a32bd33293..b191a7b93b 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -312,14 +312,14 @@ without requiring the source code to be rewritten.") ;; TODO: Make this 'guile-3.0' on the next rebuild cycle. (package (inherit guile-3.0) - (version "3.0.4") + (version "3.0.2") (source (origin (inherit (package-source guile-3.0)) (uri (string-append "mirror://gnu/guile/guile-" version ".tar.xz")) (sha256 (base32 - "0c8dkyvs6xbxp7rgnhkyakajzhakay7qn9kahj1mj49x5vf4fybb"))))= )) + "12lziar4j27j9whqp2n18427q45y9ghq7gdd8lqhmj1k0lr7vi2k"))))= )) =20 (define-public guile-next (deprecated-package "guile-next" guile-3.0)) --8<---------------cut here---------------end--------------->8--- fixes guix build...(terrible!) What shall "we" do with this, maybe "someone" wants to have a look? Guess this should find its way into a Guile bug report? [later...] I checked-out guile master on Debian/Hurd and ran the Guile test suite, which (apart from known failures) passed. Leaving that for now. So, then it "must" be our cross-compiled guile-3.0.4 for the Hurd; best to check that, right? Look: --8<---------------cut here---------------start------------->8--- root@guixydevel ~/guile# ./check-guile -i /run/current-system/profile/bin/g= uile Testing /run/current-system/profile/bin/guile ... with GUILE_LOAD_PATH=3D/root/guile/test-suite:/run/current-system/profile/s= hare/guile/site/3.0 WARNING: Use of `load' in declarative module (test-suite guile-test). Add = #:declarative? #f to your define-module invocation. Running 00-initial-env.test Running 00-repl-server.test Running 00-socket.test UNRESOLVED: 00-socket.test: AF_INET6/SOCK_STREAM: bind UNRESOLVED: 00-socket.test: AF_INET6/SOCK_STREAM: bind/sockaddr UNRESOLVED: 00-socket.test: AF_INET6/SOCK_STREAM: listen UNRESOLVED: 00-socket.test: AF_INET6/SOCK_STREAM: connect UNRESOLVED: 00-socket.test: AF_INET6/SOCK_STREAM: connect/sockaddr UNRESOLVED: 00-socket.test: AF_INET6/SOCK_STREAM: accept [...] Running asyncs.test ERROR: asyncs.test: preemption via sigprof - arguments: ((system-error "set= itimer" "~A" ("Function not implemented") (1073741902))) [...] Running bytevectors.test FAIL: bytevectors.test: 2.8 Operations on IEEE-754 Representations: bytevec= tor-ieee-single-native-{ref,set!} (compile -O2) FAIL: bytevectors.test: 2.8 Operations on IEEE-754 Representations: bytevec= tor-ieee-double-native-{ref,set!} (compile -O2) [...] Running ftw.test ERROR: ftw.test: file-system-fold: test-suite - arguments: ((match-error "m= atch" "no matching pattern" ((error "/tmp/guix-build-guile-3.0.4.drv-0/guil= e-3.0.4/test-suite")))) FAIL: ftw.test: file-system-fold: test-suite (never enter) - arguments: (ex= pected-value ((skip "/tmp/guix-build-guile-3.0.4.drv-0/guile-3.0.4/test-sui= te")) actual-value ((error "/tmp/guix-build-guile-3.0.4.drv-0/guile-3.0.4/t= est-suite"))) FAIL: ftw.test: file-system-fold: test-suite/lib.scm (flat file) - argument= s: (expected-value ((leaf "/tmp/guix-build-guile-3.0.4.drv-0/guile-3.0.4/te= st-suite/test-suite/lib.scm")) actual-value ((error "/tmp/guix-build-guile-= 3.0.4.drv-0/guile-3.0.4/test-suite/test-suite/lib.scm"))) UNRESOLVED: ftw.test: file-system-fold: EACCES ERROR: ftw.test: file-system-tree: test-suite (never enter) - arguments: ((= match-error "match" "no matching pattern" #f)) ERROR: ftw.test: file-system-tree: test-suite/* - arguments: ((match-error = "match" "no matching pattern" #f)) ERROR: ftw.test: file-system-tree: test-suite (recursive) - arguments: ((ma= tch-error "match" "no matching pattern" #f)) ERROR: ftw.test: scandir: top-srcdir - arguments: ((match-error "match" "no= matching pattern" #f)) ERROR: ftw.test: scandir: test-suite - arguments: ((match-error "match" "no= matching pattern" #f)) FAIL: ftw.test: scandir: no select Running popen.test ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=3D0 ;;; or pass the --no-auto-compile argument to disable. ;;; compiling /root/guile/module/ice-9/command-line.scm ;;; compiling /root/guile/module/system/base/compile.scm ;;; it seems /root/guile/module/system/base/compile.scm ;;; is part of the compiler; skipping auto-compilation ;;; compiling /root/guile/module/system/base/language.scm ;;; WARNING: compilation of /root/guile/module/system/base/language.scm fai= led: ;;; In procedure variable-ref: variable is unbound: #> ;;; compiling /root/guile/module/system/base/syntax.scm [hmm?] Running ports.test ERROR: ports.test: %file-port-name-canonicalization: absolute canonicalizat= ion from ice-9 - arguments: ((system-error "canonicalize-path" "~A" ("No su= ch file or directory") (1073741826))) [...] Running signals.test ERROR: signals.test: setitimer: current itimers are 0: ITIMER_VIRTUAL - arg= uments: ((system-error "setitimer" "~A" ("Function not implemented") (10737= 41902))) ERROR: signals.test: setitimer: current itimers are 0: ITIMER_PROF - argume= nts: ((system-error "setitimer" "~A" ("Function not implemented") (10737419= 02))) ERROR: signals.test: setitimer: setting values correctly: initial setting -= arguments: ((system-error "setitimer" "~A" ("Function not implemented") (1= 073741902))) ERROR: signals.test: setitimer: setting values correctly: reset to zero - a= rguments: ((system-error "setitimer" "~A" ("Function not implemented") (107= 3741902))) ERROR: signals.test: setitimer: usecs > 1e6: initial setting - arguments: (= (system-error "setitimer" "~A" ("Function not implemented") (1073741902))) ERROR: signals.test: setitimer: usecs > 1e6: reset to zero - arguments: ((s= ystem-error "setitimer" "~A" ("Function not implemented") (1073741902))) [...] Running srfi-18.test FAIL: srfi-18.test: thread-sleep!: thread sleeps fractions of a second [...] Running srfi-4.test FAIL: srfi-4.test: f32 vectors: f32vector-ref FAIL: srfi-4.test: f32 vectors: f32vector-set!/ref FAIL: srfi-4.test: f32 vectors: f32vector->list/array->list FAIL: srfi-4.test: f64 vectors: f64vector-ref FAIL: srfi-4.test: f64 vectors: f64vector-set!/ref FAIL: srfi-4.test: f64 vectors: f64vector->list/array->list FAIL: srfi-4.test: c32 vectors: c32vector-ref FAIL: srfi-4.test: c32 vectors: c32vector-set!/ref FAIL: srfi-4.test: c32 vectors: c32vector->list/array->list FAIL: srfi-4.test: c32 vectors: array-ref FAIL: srfi-4.test: c64 vectors: c64vector-ref FAIL: srfi-4.test: c64 vectors: c64vector-set!/ref FAIL: srfi-4.test: c64 vectors: c64vector->list/list->c64vector FAIL: srfi-4.test: c64 vectors: c64vector->list/array->list FAIL: srfi-4.test: c64 vectors: array-ref [...] Running suspendable-ports.test warning: call to primitive-fork while multiple threads are running; further behavior unspecified. See "Processes" in the manual, for more information. ERROR: suspendable-ports.test: %file-port-name-canonicalization: absolute c= anonicalization from ice-9 - arguments: ((system-error "canonicalize-path" = "~A" ("No such file or directory") (1073741826))) [...] Running weaks.test ERROR: weaks.test: weak-hash: assoc can do anything - arguments: ((out-of-r= ange #f "Value out of range ~S to ~S: ~S" (1 4294967295 1844674407370955161= 5) (18446744073709551615))) --8<---------------cut here---------------end--------------->8--- Some of these are "known" and I didn't run a "baseline" using 3.0.2 (which works). However the srfi-4 and bytevector look real bad to me. (FTW could also be real bad, but running "find-files" from (guix build utils) by hand just works; looks like a compilation-time file name problem with the/how I ran the/ test-suite.?) Greetings, Janneke --=20 Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | Avatar=C2=AE http://AvatarAcademy.com