From: Jan Nieuwenhuizen <janneke@gnu.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 42047@debbugs.gnu.org
Subject: bug#42047: [PATCH 3/3] guix: gc: Support for the Hurd.
Date: Fri, 26 Jun 2020 10:27:38 +0200 [thread overview]
Message-ID: <87d05m9qpx.fsf@gnu.org> (raw)
In-Reply-To: <20200625203400.24644-1-janneke@gnu.org>
Ludovic Courtès writes:
Hello,
A new day!
> "Jan (janneke) Nieuwenhuizen" <janneke@gnu.org> skribis:
>
>> * guix/store/roots.scm (proc-environ-roots): Handle EIO, for the Hurd.
>> * gnu/build/hurd-boot.scm (set-hurd-device-translators): Mount /proc. Add
>> symlink to /etc/mtab. Remove duplicate calls to 'scope'.
>
> Nitpick: I see 3 mostly unrelated patches: (1) fix duplicate called to
> ‘scope’, (2) mount /proc, and (3) handle EIO. I think it’s 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 (= EIO (system-error-errno args))
>> + '()
>> + (apply throw args))))))
>
> This may be papering over a real problem. Before doing that, I think
> “we” :-) should investigate why procfs returns EIO in some cases and
> look into fixing it.
Sure, let "us" look into that! :)
> Then maybe we can still have the ‘catch’ 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"))))))
(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/guile
Testing /run/current-system/profile/bin/guile ...
with GUILE_LOAD_PATH=/root/guile/test-suite:/run/current-system/profile/share/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 "setitimer" "~A" ("Function not implemented") (1073741902)))
[...]
Running bytevectors.test
FAIL: bytevectors.test: 2.8 Operations on IEEE-754 Representations: bytevector-ieee-single-native-{ref,set!} (compile -O2)
FAIL: bytevectors.test: 2.8 Operations on IEEE-754 Representations: bytevector-ieee-double-native-{ref,set!} (compile -O2)
[...]
Running ftw.test
ERROR: ftw.test: file-system-fold: test-suite - arguments: ((match-error "match" "no matching pattern" ((error "/tmp/guix-build-guile-3.0.4.drv-0/guile-3.0.4/test-suite"))))
FAIL: ftw.test: file-system-fold: test-suite (never enter) - arguments: (expected-value ((skip "/tmp/guix-build-guile-3.0.4.drv-0/guile-3.0.4/test-suite")) actual-value ((error "/tmp/guix-build-guile-3.0.4.drv-0/guile-3.0.4/test-suite")))
FAIL: ftw.test: file-system-fold: test-suite/lib.scm (flat file) - arguments: (expected-value ((leaf "/tmp/guix-build-guile-3.0.4.drv-0/guile-3.0.4/test-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: ((match-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=0
;;; 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 failed:
;;; In procedure variable-ref: variable is unbound: #<variable 3882d0 value: #<undefined>>
;;; compiling /root/guile/module/system/base/syntax.scm
[hmm?]
Running ports.test
ERROR: ports.test: %file-port-name-canonicalization: absolute canonicalization from ice-9 - arguments: ((system-error "canonicalize-path" "~A" ("No such file or directory") (1073741826)))
[...]
Running signals.test
ERROR: signals.test: setitimer: current itimers are 0: ITIMER_VIRTUAL - arguments: ((system-error "setitimer" "~A" ("Function not implemented") (1073741902)))
ERROR: signals.test: setitimer: current itimers are 0: ITIMER_PROF - arguments: ((system-error "setitimer" "~A" ("Function not implemented") (1073741902)))
ERROR: signals.test: setitimer: setting values correctly: initial setting - arguments: ((system-error "setitimer" "~A" ("Function not implemented") (1073741902)))
ERROR: signals.test: setitimer: setting values correctly: reset to zero - arguments: ((system-error "setitimer" "~A" ("Function not implemented") (1073741902)))
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: ((system-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 canonicalization 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-range #f "Value out of range ~S to ~S: ~S" (1 4294967295 18446744073709551615) (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
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
next prev parent reply other threads:[~2020-06-26 8:28 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-25 20:34 bug#42047: [PATCH 0/3] Running guix gc on the Hurd Jan (janneke) Nieuwenhuizen
2020-06-25 20:38 ` bug#42047: [PATCH 1/3] image: hurd: Create hurd-compatible ext2 file-system Jan (janneke) Nieuwenhuizen
2020-06-25 20:38 ` bug#42047: [PATCH 2/3] image: hurd: Initialize root partition for the Hurd Jan (janneke) Nieuwenhuizen
2020-06-25 20:38 ` bug#42047: [PATCH 3/3] guix: gc: Support " Jan (janneke) Nieuwenhuizen
2020-06-25 20:48 ` Ludovic Courtès
2020-06-25 22:25 ` Bengt Richter
2020-06-25 20:44 ` bug#42047: [PATCH 1/3] image: hurd: Create hurd-compatible ext2 file-system Ludovic Courtès
2020-06-25 20:53 ` Jan Nieuwenhuizen
2020-06-26 8:27 ` Jan Nieuwenhuizen [this message]
2020-06-27 11:25 ` bug#42047: [PATCH v2] guix: gc: Support for the Hurd Jan Nieuwenhuizen
2020-06-28 14:31 ` Ludovic Courtès
2020-06-26 15:46 ` bug#42047: [PATCH 0/3] Running guix gc on " Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d05m9qpx.fsf@gnu.org \
--to=janneke@gnu.org \
--cc=42047@debbugs.gnu.org \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).