Subject: bug#42047: [PATCH 3/3] guix: gc: Support for the Hurd.

From: Ludovic Courtès <[email-masked]>
Date: Thu, 25 Jun 2020 22:48:43 +0200

"Jan (janneke) Nieuwenhuizen" <[email-masked]> 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.

(1) and (2) LGTM!

> -  (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?

>    (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.

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?

Thank you!

Ludo’.