Hello,
Julien Lepiller <address@hidden> skribis:
Hi, running guix pull this morning corrupted my current guix command.
Let’s not jump to the conclusion. :-)
I am running on guixsd. Because I don't have a lot of memory, I sent a
generation of .config/guix/current to the server with:
guix archive --export -r `readlink -f .config/guix/current` | ssh
machine guix archive --import
Note that you can use ‘guix copy’ instead, which avoids sending store
items already present on the target.
This morning, I tried to run guix pull to see how far it would go (and
if I could download some parts from hydra or berlin). As expected, it
ran out of memory, but left my store in a state where the guix command
linked to from .config/guix/current only contains garbage. Attached is
the output of "guix pull --cores=1" on that machine that lead to the
bug, and the new content of the guix command.
The corrupted file is from a store item that was present (and valid)
before I ran guix pull, so I thought it was impossible for guix to
modify it.
[...]
compiling... 100.0% of 1 files
compiling... 65.0% of 40 filesIn ice-9/boot-9.scm:
829:9 19 guile: symbol lookup error:
/gnu/store/6mfd4f8gy11rgn2xk00cnslmrslg9w7h-guile-2.2.3/lib/libguile-2.2.so.1:
undefined symbol: u8_mbtoucr
guix pull: error: corrupt input while restoring archive from #<closed:
file 31742a0>
To me, this error suggests that
/gnu/store/6mfd4f8gy11rgn2xk00cnslmrslg9w7h-guile-2.2.3 was already
corrupt at the time you run ‘guix pull’.
Did you try running ‘guix gc --verify’ on that machine (using an older
Guix)?
Are there signs in the kernel log of a file system corruption?
Thanks,
Ludo’.