GNU bug report logs - #55583
guix-daemon doesn't cleanly error-out on case-sensitive file systems.

Previous Next

Package: guix;

Reported by: Brian Cully <bjc <at> spork.org>

Date: Sun, 22 May 2022 20:15:02 UTC

Severity: normal

To reply to this bug, email your comments to 55583 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#55583; Package guix. (Sun, 22 May 2022 20:15:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Brian Cully <bjc <at> spork.org>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sun, 22 May 2022 20:15:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Brian Cully <bjc <at> spork.org>
To: bug-guix <at> gnu.org
Subject: nar-error on pull
Date: Sun, 22 May 2022 16:09:46 -0400
I’m getting an error when trying to pull inside a docker 
container:

--8<---------------cut here---------------start------------->8---
guix# guix pull
substitute: updating substitutes from 
'https://ci.guix.gnu.org'... 100.0%
0.0 MB will be downloaded
le-certs-1  5KiB 
552KiB/s 00:00 [##################] 100.0%Updating channel 'guix' 
from Git repository at 
'https://git.savannah.gnu.org/git/guix.git'...
Authenticating channel 'guix', commits 9edb3f6 to f0e9048 (92 new 
commits)...
Building from this channel:
 guix      https://git.savannah.gnu.org/git/guix.git   f0e9048
substitute: updating substitutes from 
'https://ci.guix.gnu.org'... 100.0%

[…]

lz4-1.9.3  156KiB
libxft-2.3.3  45KiB
perl-5.34.0  15.1MiB
guix substitute: error: mkdir: File exists
Backtrace:
         18 (primitive-load 
         "/gnu/store/p411j4q9hjk639rwcy1p3s6v89c9bxhr-comput
In ice-9/eval.scm:
   155:9 17 (_ _)
   159:9 16 (_ #(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#<directory 
   (guile-u?> ?) ?) ?)
In ice-9/boot-9.scm:
   152:2 15 (with-fluid* _ _ _)
   152:2 14 (with-fluid* _ _ _)
In ./guix/store.scm:
 2155:24 13 (run-with-store #<store-connection 256.99 
 7fe9ea44c140> #<procedure
  1983:8 12 (_ #<store-connection 256.99 7fe9ea44c140>)
In ./guix/gexp.scm:
  300:22 11 (_ #<store-connection 256.99 7fe9ea44c140>)
  1181:2 10 (_ #<store-connection 256.99 7fe9df0440f0>)
  1047:2  9 (_ #<store-connection 256.99 7fe9df0440f0>)
   893:4  8 (_ #<store-connection 256.99 7fe9df0440f0>)
In ./guix/store.scm:
 2040:12  7 (_ #<store-connection 256.99 7fe9df0440f0>)
 1395:13  6 (map/accumulate-builds #<store-connection 256.99 
 7fe9df0440f0> #<pr
  1391:5  5 (map/accumulate-builds #<store-connection 256.99 
  7fe9df0440f0> #<pr
 1406:15  4 (_ #<store-connection 256.99 7fe9df0440f0> 
 ("/gnu/store/8v8y8rc4rwd
 1406:15  3 (loop #f)
  711:11  2 (process-stderr #<store-connection 256.99 
  7fe9df0440f0> _)
In ./guix/serialization.scm:
  102:11  1 (read-int #<input-output: file 10>)
    80:6  0 (get-bytevector-n* #<input-output: file 10> 8)

./guix/serialization.scm:80:6: In procedure get-bytevector-n*:
ERROR:
 1. &nar-error:
     file: #f
     port: #<input-output: file 10>
guix pull: error: You found a bug: the program 
'/gnu/store/p411j4q9hjk639rwcy1p3
failed to compute the derivation for Guix (version: 
"f0e9048e98f0789aa98de88984f
host version: "1.3.0-27.598f728"; pull-version: 1).
Please report the COMPLETE output above by email to 
<bug-guix <at> gnu.org>.
--8<---------------cut here---------------end--------------->8---

The container was made from this manifest:

--8<---------------cut here---------------start------------->8---
(use-modules (gnu))
(use-package-modules shells)

(operating-system
(host-name "guix")
(timezone "America/New_York")

(bootloader (bootloader-configuration
             (bootloader grub-bootloader)
             (targets '("/dev/vda"))))

(file-systems (list
               (file-system
                (mount-point "/")
                (device "/dev/vda1")
                (type "ext4"))))

(packages (append (map specification->package
                       '("zsh"))
                  %base-packages))

(users (cons* (user-account
               (name "bjc")
               (group "users")
               (comment "brian")
               (shell (file-append zsh "/bin/zsh"))
               (home-directory "/home/bjc")
               (supplementary-groups
                '("wheel" "netdev" "audio" "video")))
              %base-user-accounts)))
--8<---------------cut here---------------end--------------->8---

With this command:

--8<---------------cut here---------------start------------->8---
$ guix system image -t docker minimal-sysconf.scm
--8<---------------cut here---------------end--------------->8---

-bjc




Information forwarded to bug-guix <at> gnu.org:
bug#55583; Package guix. (Sun, 22 May 2022 21:10:01 GMT) Full text and rfc822 format available.

Message #8 received at 55583 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Brian Cully <bjc <at> spork.org>, 55583 <at> debbugs.gnu.org
Subject: Re: bug#55583: nar-error on pull
Date: Sun, 22 May 2022 23:09:24 +0200
[Message part 1 (text/plain, inline)]
retitle 55583 ‘error: mkdir: File exits’ during substitution
thanks

Brian Cully via Bug reports for GNU Guix schreef op zo 22-05-2022 om
16:09 [-0400]:
>  lz4-1.9.3  156KiB
>  libxft-2.3.3  45KiB
>  perl-5.34.0  15.1MiB
> guix substitute: error: mkdir: File exists
> Backtrace:
> [...]
> ("gnu/store/8v8y8rc4rwd

This looks a bit different from the usual ‘failed to compute the
derivation’ errors so I've renamed it.

The relevant store item name has been truncated, could you run
"echo /gnu/store/8v8y8rc4rwd*" in a shell and report the output?

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#55583; Package guix. (Sun, 22 May 2022 21:13:02 GMT) Full text and rfc822 format available.

Message #11 received at 55583 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Brian Cully <bjc <at> spork.org>, 55583 <at> debbugs.gnu.org
Subject: Re: bug#55583: nar-error on pull
Date: Sun, 22 May 2022 23:12:08 +0200
[Message part 1 (text/plain, inline)]
retitle 55583 "error: mkdir: File exists" during substitution
thanks

(Debbugs rejected the previous title because of ‘non-printable’
characters, apparently it's not non-ASCII capable?)


[signature.asc (application/pgp-signature, inline)]

Changed bug title to '"error: mkdir: File exists" during substitution' from 'nar-error on pull' Request was from Maxime Devos <maximedevos <at> telenet.be> to control <at> debbugs.gnu.org. (Sun, 22 May 2022 21:13:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#55583; Package guix. (Sun, 22 May 2022 23:11:01 GMT) Full text and rfc822 format available.

Message #16 received at 55583 <at> debbugs.gnu.org (full text, mbox):

From: Brian Cully <bjc <at> spork.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 55583 <at> debbugs.gnu.org
Subject: Re: bug#55583: nar-error on pull
Date: Sun, 22 May 2022 19:06:58 -0400
Maxime Devos <maximedevos <at> telenet.be> writes:

> The relevant store item name has been truncated, could you run
> "echo /gnu/store/8v8y8rc4rwd*" in a shell and report the output?

⇒ 
/gnu/store/8v8y8rc4rwdwx5kbkfr1w1rl8g3dxsa3-guile-avahi-0.4.0-1.6d43caf.drv

In case it matters, here’s its contents:

--8<---------------cut here---------------start------------->8---
Derive([("out","/gnu/store/8ggx0372360592j1b0q0hd722m19yrvg-guile-avahi-0.4.0-1.6d43caf","","")],[("/gnu/store/08s1nz9bpv6k6a56idv6l7r2zjqphszl-file-5.39.drv",["out"]),("/gnu/store/1d8bi67rdpjisk3qy06mzg71g0zxj7ay-libgc-8.0.4.drv",["out"]),("/gnu/store/1x2g7ysm16xqnrpbkqdc4hhni1r42dgg-patch-2.7.6.drv",["out"]),("/gnu/store/3fy0f7gy85ddy6rpa4mmhjygns8qzk03-findutils-4.8.0.drv",["out"]),("/gnu/store/3xh80313ik5h410d9qn00w84ykck0ndh-ld-wrapper-0.drv",["out"]),("/gnu/store/45wsr6x878i3fyr12lf9v496cl9x5jh6-gzip-1.10.drv",["out"]),("/gnu/store/7fm542dl9f73pvw2n8y46mns9jqb0mai-glibc-2.33.drv",["out","static"]),("/gnu/store/812jrdyy4dvhy9j52bkjhj034ryysgnz-texinfo-6.7.drv",["out"]),("/gnu/store/8xf8nnfvvy13vhkygxwg49fwf8mqbk0d-libunistring-0.9.10.drv",["out"]),("/gnu/store/9iqh8mcqcssijac0i7hkbfp83fxcaxnk-pkg-config-0.29.2.drv",["out"]),("/gnu/store/ajk17vrxljb7x6h92pd590865wa4vj9p-gawk-5.1.0.drv",["out"]),("/gnu/store/bvv5bx3pj6s5b6ih10r7l9d18w8rzmkq-guile-3.0.7.drv",["out"]),("/gnu/store/csmcig21pcykhn1yg3ga6863s6b9k38c-gcc-10.3.0.drv",["out"]),("/gnu/store/fr7c3sylihc946096irz7s70m3hwcjav-xz-5.2.5.drv",["out"]),("/gnu/store/g73za4qfn4fffdqnqmywsh2ychjb92n2-linux-libre-headers-5.10.35.drv",["out"]),("/gnu/store/gkjk02msi4nwxh384md5c0w1db3rg71m-binutils-2.37.drv",["out"]),("/gnu/store/gmvmryrkvih05790hzzb0njj9q5xq4p5-glibc-utf8-locales-2.33.drv",["out"]),("/gnu/store/hxk4ckdlacwfwmnisjiimkc1vkglka32-autoconf-2.69.drv",["out"]),("/gnu/store/k5889v7ms3f5x1rjr3php71k4743fn19-bash-minimal-5.1.8.drv",["out"]),("/gnu/store/k77fsxpnpj5y16mnsxw7719lzgp4ks58-libtool-2.4.6.drv",["out"]),("/gnu/store/ldh1m27kvrwqgx5rmrc8j9xg3xmifx5n-avahi-0.8.drv",["out"]),("/gnu/store/mqyv8wj38m51wa9g3cb0p0qqsckx836j-grep-3.6.drv",["out"]),("/gnu/store/nd9ypg18kkh6bryfz458zym8xd4gaair-diffutils-3.8.drv",["out"]),("/gnu/store/ni7fpz4paf824s2nrhfcd5iqp0kbj4h1-m4-1.4.18.drv",["out"]),("/gnu/store/prwhkd8j57v07c0qlxxi708ccsh65vxp-bzip2-1.0.8.drv",["out"]),("/gnu/store/pv30dwfrly1h54dpdpck6wizma3x739x-guile-avahi-0.4.0-1.6d43caf-checkout.drv",["out"]),("/gnu/store/qpg6frs91vaajd5yjk9m46dlgn03sfi9-tar-1.34.drv",["out"]),("/gnu/store/rn11b92k2g90dhiwzgmazb5aqd426wg3-automake-1.16.3.drv",["out"]),("/gnu/store/vvkpaxrcic1dzmgpqb861jd8nix1n78j-module-import-compiled.drv",["out"]),("/gnu/store/xfm8z55ah263g4yvygqy7iph7vv5703v-guile-3.0.7.drv",["out"]),("/gnu/store/xk22lpxqh73rjaiaibsldmbrv6pxmcqm-make-4.3.drv",["out"]),("/gnu/store/xxyl6g6qclbwkfxinibrxd9ba48hgjff-coreutils-8.32.drv",["out"]),("/gnu/store/yb9zbq7d45cdx03z8q1j2w1ah2xqzd9p-sed-4.8.drv",["out"])],["/gnu/store/71jfcpb626wb4kpj4m5lsr68xm9ih50d-guile-avahi-0.4.0-1.6d43caf-builder","/gnu/store/dwvpffvh0cvm1v7j5bgmdh7j9mld1cx9-module-import"],"x86_64-linux","/gnu/store/1kws5vkl0glvpxg7arabsv6q9vazp0hx-guile-3.0.7/bin/guile",["--no-auto-compile","-L","/gnu/store/dwvpffvh0cvm1v7j5bgmdh7j9mld1cx9-module-import","-C","/gnu/store/0q6z17h9nfybhjgwgwwj81r3q9ik554x-module-import-compiled","/gnu/store/71jfcpb626wb4kpj4m5lsr68xm9ih50d-guile-avahi-0.4.0-1.6d43caf-builder"],[("out","/gnu/store/8ggx0372360592j1b0q0hd722m19yrvg-guile-avahi-0.4.0-1.6d43caf")])
--8<---------------cut here---------------end--------------->8---

-bjc




Information forwarded to bug-guix <at> gnu.org:
bug#55583; Package guix. (Mon, 23 May 2022 13:02:02 GMT) Full text and rfc822 format available.

Message #19 received at 55583 <at> debbugs.gnu.org (full text, mbox):

From: Brian Cully <bjc <at> spork.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 55583 <at> debbugs.gnu.org
Subject: Re: bug#55583: nar-error on pull
Date: Mon, 23 May 2022 09:00:16 -0400
This bug was caused by having my Guix filesystem mounted on a 
case-insensitive file system. Re-running pull within the Docker 
container mounted on a case-sensitive file system works correctly.

This bug can be closed. Sorry for the noise.

-bjc




Information forwarded to bug-guix <at> gnu.org:
bug#55583; Package guix. (Mon, 23 May 2022 14:26:01 GMT) Full text and rfc822 format available.

Message #22 received at 55583 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Brian Cully <bjc <at> spork.org>
Cc: 55583 <at> debbugs.gnu.org
Subject: guix-daemon doesn't cleanly error-out on case-insensitive file
 systems.
Date: Mon, 23 May 2022 16:25:50 +0200
[Message part 1 (text/plain, inline)]
retitle 55583 guix-daemon doesn't cleanly error-out on case-sensitive file systems.
thanks

Brian Cully schreef op ma 23-05-2022 om 09:00 [-0400]:
This bug was caused by having my Guix filesystem mounted on a 
case-insensitive file system. Re-running pull within the Docker 
container mounted on a case-sensitive file system works correctly.

This bug can be closed. Sorry for the noise.

-bjc

Not sure how a case-insensitivity would cause this, but I think we
can keep this open -- wouldn't it be better if "guix-daemon" just says
‘nope, case-sensitivity is required (*), not continuing)?

(*) For reproducible builds, and apparently for substitution.

Greetings,
Maxime
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#55583; Package guix. (Mon, 23 May 2022 17:01:02 GMT) Full text and rfc822 format available.

Message #25 received at 55583 <at> debbugs.gnu.org (full text, mbox):

From: Brian Cully <bjc <at> spork.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 55583 <at> debbugs.gnu.org
Subject: Re: guix-daemon doesn't cleanly error-out on case-insensitive file
 systems.
Date: Mon, 23 May 2022 12:54:36 -0400
Maxime Devos <maximedevos <at> telenet.be> writes:
> Not sure how a case-insensitivity would cause this, but I think 
> we
> can keep this open -- wouldn't it be better if "guix-daemon" 
> just says
> ‘nope, case-sensitivity is required (*), not continuing)?
>
> (*) For reproducible builds, and apparently for substitution.

The issue is wide-spread: there are a number of packages that will 
install files who’s names only vary by case. It’s also 
per-package; most work fine, but some will just break 
randomly. Some don’t seem to break until you try to use them, and 
then they yell and complain. This is something I run into often 
enough that it’s familiar to me and know how to fix, but not often 
enough to prevent my surprise when it happens.

Guix can’t fix it, unfortunately. Maybe checking case sensitivity 
would be a worthwhile thing to do, just to warn people, but: I 
don’t know of a good way to check this in a file-system 
independent manner, and I honestly doubt it’s something that 
actually happens that often. I’ve been trucking a ZFS storage pool 
around since I first installed it on macOS about a decade ago, and 
since macOS is case-insensitive, that’s how it was installed (case 
sensitivity causes its own issues there). Short of running Guix on 
Windows or macOS, I don’t see this being a problem.

-bjc




Information forwarded to bug-guix <at> gnu.org:
bug#55583; Package guix. (Mon, 23 May 2022 17:20:01 GMT) Full text and rfc822 format available.

Message #28 received at 55583 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: Brian Cully <bjc <at> spork.org>
Cc: 55583 <at> debbugs.gnu.org
Subject: Re: guix-daemon doesn't cleanly error-out on case-insensitive file
 systems.
Date: Mon, 23 May 2022 19:19:07 +0200
[Message part 1 (text/plain, inline)]
Brian Cully schreef op ma 23-05-2022 om 12:54 [-0400]:
> I don’t know of a good way to check this in a file-system 
> independent manner

Create a file /gnu/store/case-sensitivity-test (if it doesn't already
exist).  Open /gnu/store/CASE-SENSITIVITY-TEST.  If it succeeds, you
have a case-sensitive file system.

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#55583; Package guix. (Tue, 24 May 2022 23:03:01 GMT) Full text and rfc822 format available.

Message #31 received at 55583 <at> debbugs.gnu.org (full text, mbox):

From: Brian Cully <bjc <at> spork.org>
To: Maxime Devos <maximedevos <at> telenet.be>
Cc: 55583 <at> debbugs.gnu.org
Subject: Re: guix-daemon doesn't cleanly error-out on case-insensitive file
 systems.
Date: Tue, 24 May 2022 18:54:31 -0400
Maxime Devos <maximedevos <at> telenet.be> writes:

> Create a file /gnu/store/case-sensitivity-test (if it doesn't 
> already
> exist).  Open /gnu/store/CASE-SENSITIVITY-TEST.  If it succeeds, 
> you
> have a case-sensitive file system.

Hah. I was so wrapped up in thinking about kernel or POSIX APIs I 
missed the obvious thing. ;)

/If/ we go this route, though, I’d suggest a small change to 
handle so-called “mixed-case” file-systems, where you can have two 
files differentiated by case, but if there’s no ambiguity, then 
one may address a file using any case:

- echo lower-case > case-sensitivity-test
- echo UPPER-CASE > CASE-SENSITIVITY-TEST
- test x$(cat CASE-SENSITIVITY-TEST) = xUPPER-CASE

-bjc




Information forwarded to bug-guix <at> gnu.org:
bug#55583; Package guix. (Mon, 13 Jun 2022 07:47:01 GMT) Full text and rfc822 format available.

Message #34 received at 55583 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: control <at> debbugs.gnu.org
Cc: 55583 <at> debbugs.gnu.org
Date: Mon, 13 Jun 2022 09:46:36 +0200
[Message part 1 (text/plain, inline)]
retitle 55583 guix-daemon doesn't cleanly error-out on case-sensitive file systems.
thanks

(previous command doesn't seem to have worked)
[signature.asc (application/pgp-signature, inline)]

Changed bug title to 'guix-daemon doesn't cleanly error-out on case-sensitive file systems.' from '"error: mkdir: File exists" during substitution' Request was from Maxime Devos <maximedevos <at> telenet.be> to control <at> debbugs.gnu.org. (Mon, 13 Jun 2022 07:47:02 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 6 days ago.

Previous Next


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