Subject: bug#54651: Guix pull failing on ARM 32bit with "Please report the COMPLETE output above by email"

From: Denis 'GNUtoo' Carikli <[email-masked]>
Date: Wed, 18 May 2022 15:47:42 +0200

Hi,

Now it fails with the following error:

> substitute: updating substitutes from 'https://ci.guix.gnu.org'...
> 0.0%
>                  /Backtrace:
>                                                                                                         \
>          16 (primitive-load
> "/gnu/store/v1ag4yp033kib2cf3ggcgqiyygk47n89-compute-guix-derivation")
> In ice-9/eval.scm: 155:9 15 (_ _) 159:9 14 (_
> #(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#(#<directory (guile-u?> ?) ?) ?) ?) ?)
> ?) ?) ?) ?) ?) ?) ?) ?) ?) ?) ?)) In ice-9/boot-9.scm: 152:2 13
> (with-fluid* _ _ _) 152:2 12 (with-fluid* _ _ _) In ./guix/store.scm:
> 2129:24 11 (run-with-store #<store-connection 256.99 b367fcf8> _
> #:guile-for-build _ #:system _ #:target _) 1966:8 10 (_ _) In
> ./guix/gexp.scm: 300:22  9 (_ _) 1181:2  8 (_ _)
>    1047:2  7 (_ _)
>     893:4  6 (_ _)
> In ./guix/store.scm:
>   2014:12  5 (_ #<store-connection 256.99 b21572d0>)
>   1410:13  4 (map/accumulate-builds #<store-connection 256.99
> b21572d0> #<procedure b1e0aa50 at ./guix/store.scm:20?> ?) 1406:5  3
> b21572d0> (map/accumulate-builds #<store-connection 256.99 b21572d0>
> b21572d0> #<procedure a3711810 at ./guix/store.scm:14?> ?)
>   1421:15  2 (_ #<store-connection 256.99 b21572d0> _ _)
>    733:11  1 (process-stderr #<store-connection 256.99 b21572d0> _)
> In ./guix/serialization.scm:
>      80:6  0 (read-int #<input-output: file 10>)
> 
> ./guix/serialization.scm:80:6: In procedure read-int:
> ERROR:
>   1. &nar-error:
>       file: #f
>       port: #<input-output: file 10>
> guix pull: error: You found a bug: the program
> '/gnu/store/v1ag4yp033kib2cf3ggcgqiyygk47n89-compute-guix-derivation'
> failed to compute the derivation for Guix (version:
> "edf86bacf294fea4decabeda77dd1cae9308b28e"; system: "armhf-linux";
> host version: "1.3.0"; pull-version: 1). Please report the COMPLETE
> output above by email to <[email-masked]>.

I've been trying again and again a lot of times for more than 1 month,
and I still can't update Guix.

I've also made sure that /gnu/tmp has space and I added a big swap
(16GiB):
> $ cat /etc/systemd/system/guix-daemon.service
> # This is a "service unit file" for the systemd init system to launch
> # 'guix-daemon'.  Drop it in /etc/systemd/system or similar to have
> # 'guix-daemon' automatically started.
> 
> [Unit]
> Description=Build daemon for GNU Guix
> 
> [Service]
> ExecStart=/var/guix/profiles/per-user/root/current-guix/bin/guix-daemon
> --build-users-group=guixbuild
> Environment='GUIX_LOCPATH=/var/guix/profiles/per-user/root/guix-profile/lib/locale'
> LC_ALL=en_US.utf8 TMPDIR=/gnu/tmp RemainAfterExit=yes
> StandardOutput=syslog StandardError=syslog
> 
> # See
> <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00608.html>.
> # Some package builds (for example, [email-masked]) may require even more
> than # 1024 tasks. TasksMax=8192
> 
> [Install]
> WantedBy=multi-user.target
> $ df -h  
> Filesystem      Size  Used Avail Use% Mounted on
> /dev/root       9.5G  7.2G  2.3G  77% /
> devtmpfs        403M     0  403M   0% /dev
> tmpfs           500M     0  500M   0% /dev/shm
> tmpfs           200M  2.1M  198M   2% /run
> tmpfs           500M     0  500M   0% /tmp
> /dev/mmcblk2p3   16M  5.5M  9.9M  36% /efs
> /dev/mmcblk0p2   42G   24K   40G   1% /gnu/tmp
> $ cat /proc/swaps 
> Filename				Type
> Size		Used		Priority /dev/mmcblk0p1
>                    partition	16777212	76544
> 	-2

The issue is that in addition to the Guix issue I've a network
connection that is not very reliable (I need to unplug and re-plug the
USB cable from time to time) so that makes it impossible to have a
brute-force approach where it would try for months to do a guix pull
through various ways (guix pull, guix pull -M 1 -c 1, etc).

Still I also tried an automatic script but because of the network issue
I had to re-launch it each time the connection broke during fetch.

The issue is that at some point this brings rage because I 
think that it will work as it starts doing things (fetching, building
etc) so I try again and again and again and wait for it to finish, and
spend a lot of time trying again and for more than 1 month and it
didn't work yet:
> $ guix pull -l
> guix pull: error: profile
> '/var/guix/profiles/per-user/replicant/current-guix' does not exist

If I run that command as root instead we have:
> # guix pull -l
> Generation 1	mars 30 2022 13:38:03	(current)
but the manual doesn't tell to run guix pull as root.

And the issue is that the log I pasted above doesn't tell me much so 
I've no idea of what could be the issue.

Could it be that the amount of free space on / is too small?

I've also looked if there was some minimal device requirements to run
Guix on top of an existing distribution (here Parabola ARM) but I
found none.

And I also need Guix to work on that device to do builds of a library 
to continue working on that library. 

The issue is that guix pack -R 
or -RR doesn't work for cross compilation so if I install a pack it
will probably conflict with the store.

What could be the issue here?

In the meantime I'll try again with 'guix pull -M 1 -c 1
--commit=69ec5baaf7aa6ed3ce5ecaad9bb66d122f91c3ec' as root to see if
that works better.

But the issue is that I keep trying things and at the end nothing gives
me a clue or workarounds that issue.

Denis.