guix pull corrupted current guix

  • Done
  • quality assurance status badge
Details
2 participants
  • Julien Lepiller
  • Ludovic Courtès
Owner
unassigned
Submitted by
Julien Lepiller
Severity
normal
J
J
Julien Lepiller wrote on 15 Jun 2018 13:25
(address . bug-guix@gnu.org)
599124aabcd5140179562c358198ecd1@lepiller.eu
Hi, running guix pull this morning corrupted my current guix command.

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

Then, I created a link from /var/guix/gcroots to the
.config/guix/current, and from that to the store item that was
transferred.


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.

I think a fix is to remove .config/guix/current, run an older version of
guix to try and repair the store with guix gc, and send the guix package
from my other machine again. I haven't tried that yet, as my broken
machine still mostly works, although I doubt it can boot now. Since I
didn't try to fix anything, I can give more details if you want. The
guix I used to pull is from commit
85d79a79e4b721e24cdfb11a90beef6d566c499a, and the pulled commit is
0017e55f892828f7a4d29a50f06e5146270ab8cb.
s?ra?onn an sainmh?ni? ar `%T' an ceann coitianta
%B: rabhadh: ceann coitianta n?os m? anseo
%B: rabhadh: t? tuilleadh tagairt? do `%T' gan sainmh?ni? th?os
%B: rabhadh: ilchoitianta `%T'
%B: rabhadh: ceann coitianta roimhe anseo
%B: rabhadh: ceann coitianta n?os l? anseo
%B: rabhadh: tagairt do `%T' gan sainmh?ni?
%C: N? f?idir ?bhar an rann?in a fh?il - eisceacht uathiomp?rt?la
%C: n? f?idir athr?g '%T' a uathiomp?rt?il. L?igh an doicim?ad? "ld" ar --enable-auto-import chun na mionsonra? a fh?il.
%C: rabhadh: tagairt do `%T' gan sainmh?ni?
%D: an ch?ad mh?ni? anseo
%D: rabhadh: t? tuilleadh tagairt? do `%T' gan sainmh?ni? th?os
%F%B: n?orbh fh?idir na siombail? a l?amh: %E
%F%B: comhad gan aimsi?: %E
%F%B: theip ar dh?nadh deiridh: %E
%F%B: n? r?ad ? ball %B sa chartlann
%F%P: %s (%s): N?l a leith?id de chomhad: %E
%F%P: %s: N?l a leith?id de chomhad: %E
%F%P: iarracht ar nasc statach de r?ad dinimici?il `%s' a dh?anamh
%F%P: theip ar bfd_hash_lookup: %E
%F%P: theip ar bfd_hash_table_init: %E
%F%P: theip ar bfd_record_phdr: %E
%F%P: n? f?idir ainm roinnte a chruth? ar rann?n %s
%F%P: n? f?idir %s a aimsi?
%F%P: n? f?idir %s a aimsi? i %s
%F%P: n? f?idir oibr?ochta? PE a dh?anamh ar aschomhad neamh-PE '%B'.
%F%P: theip ar chl?n?il an rann?in: %E
%F%P: theip ar an nascadh deiridh: %E
%F%P: earr?id inmhe?nach %s %d
%F%P: sprioc neamhbhail? BFD `%s'
%F%P: r?iteas neamhbhail? sonra?
%F%P: r?iteas neamhbhail? athshuite
%F%P: st?l anaithnid d?choscartha `%s'%F%S %% le nialas
%F%S / le nialas
%F%S n?l sannadh don ?iritheoir su?omhanna bail? taobh amuigh de RANN?N
N? f?idir le %F%S sannadh a shol?thar d'?iritheoir su?omhanna
%F%S n? f?idir an t-?iritheoir su?omhanna a bhogadh ar ais (? %V go %V)
%F%S sannadh neamhbhail? ar ?iritheoir su?omhanna
%F%S slonn inathraitheach do %s
%F%S: slonn seolta tagartha ar aghaidh n? slonn inathraitheach do rann?n %s
%F%S: slonn inathraitheach do %s
%F%S: rinneadh tagairt do r?igi?n CUIMHNE `%s' gan sainmh?ni? i slonn
%F%S: rinneadh tagairt do rann?n `%s' gan sainmh?ni? i slonn
%F%S: rinneadh tagairt do shiombail `%s' gan sainmh?ni? i slonn
%F%S: rinneadh t
Attachment: guix-pull.log (.02 MiB)
L
L
Ludovic Courtès wrote on 15 Jun 2018 17:27
(name . Julien Lepiller)(address . julien@lepiller.eu)(address . 31843@debbugs.gnu.org)
87tvq4rrxn.fsf@gnu.org
Hello,

Julien Lepiller <julien@lepiller.eu> skribis:

Toggle quote (2 lines)
> Hi, running guix pull this morning corrupted my current guix command.

Let’s not jump to the conclusion. :-)

Toggle quote (6 lines)
> 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.

Toggle quote (11 lines)
> 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.

[...]

Toggle quote (5 lines)
> 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’.
J
J
Julien Lepiller wrote on 15 Jun 2018 17:39
(address . 31843-done@debbugs.gnu.org)
c19c61a6211b7cccfd9f5172d4526bdb@lepiller.eu
Le 2018-06-15 17:27, ludo@gnu.org a écrit :
Toggle quote (50 lines)
> Hello,
>
> Julien Lepiller <julien@lepiller.eu> 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’.

Ok, that was it. Not guix' fault so closing this ticket :)

Thank you!
Closed
?