Hello Guix developers!

I am writing to report several issues trying to `guix pull` and subsequently `guix package -u` on my X200 (so not the most powerful machine, but a lovely one).

This machine is running Trisquel, with Guix on foreign distro.

So I did a `guix pull`, which went through, and after which the channels are (`guix describe --format=channels` output):

~~~~
(list (channel
        (name 'guix)
        (url "https://git.savannah.gnu.org/git/guix.git")
        (branch "master")
        (commit
          "bf96496f177c961260523ada850d10a057f9032a")
        (introduction
          (make-channel-introduction
            "9edb3f66fd807b096b48283debdcddccfea34bad"
            (openpgp-fingerprint
              "BBB0 2DDF 2CEA F6A8 0D1D  E643 A2A0 6DF2 A33A 54FA")))))
~~~~

Then I did `guix package -u` to update installed packages. However, I ran into an error:

~~~~
The following packages will be upgraded:
   font-dejavu            (dependencies or package changed)
   font-fira-code         (dependencies or package changed)
   font-fira-mono         (dependencies or package changed)
   font-fira-sans         (dependencies or package changed)
   font-iosevka           (dependencies or package changed)
   font-iosevka-aile      (dependencies or package changed)
   font-iosevka-etoile    (dependencies or package changed)
   font-iosevka-slab      (dependencies or package changed)
   font-iosevka-term      (dependencies or package changed)
   font-iosevka-term-slab (dependencies or package changed)
   font-wqy-microhei      (dependencies or package changed)
   font-wqy-zenhei        (dependencies or package changed)
   glibc-locales          2.35 → 2.39
   guile                  (dependencies or package changed)
   guile-colorized        (dependencies or package changed)
   guile-fibers           (dependencies or package changed)
   guile-readline         (dependencies or package changed)
   keepassxc              2.7.5 → 2.7.9
   lyx                    (dependencies or package changed)
   openvpn                2.5.8 → 2.6.12
   python                 (dependencies or package changed)

substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
91,9 MB will be downloaded
 glibc-locales-2.39  11.2MiB                                                                                       510KiB/s 00:23 ▕██████████████████▏ 100.0%
 attr-2.5.1  68KiB                                                                                                1007KiB/s 00:00 ▕██████████████████▏ 100.0%
 bdb-6.2.32  1.0MiB                                                                                                893KiB/s 00:01 ▕██████████████████▏ 100.0%
 acl-2.3.1  126KiB                                                                                                 686KiB/s 00:00 ▕██████████████████▏ 100.0%
 cups-minimal-2.4.9  4.9MiB                                                                                        1.0MiB/s 00:05 ▕██████████████████▏ 100.0%
 coreutils-9.1  2.4MiB                                                                                             994KiB/s 00:03 ▕██████████████████▏ 100.0%
 grep-3.11  225KiB                                                                                                 949KiB/s 00:00 ▕██████████████████▏ 100.0%
 jbig2dec-0.19  67KiB                                                                                              991KiB/s 00:00 ▕██████████████████▏ 100.0%
 libcap-ng-0.8.3  47KiB                                                                                            925KiB/s 00:00 ▕██████████████████▏ 100.0%
 libexif-0.6.24  461KiB                                                                                            1.0MiB/s 00:00 ▕██████████████████▏ 100.0%
 libmnl-1.0.5  18KiB                                                                                               2.1MiB/s 00:00 ▕██████████████████▏ 100.0%
 libpaper-2.0.0  30KiB                                                                                             1.6MiB/s 00:00 ▕██████████████████▏ 100.0%
 libnftnl-1.2.3  73KiB                                                                                            1007KiB/s 00:00 ▕██████████████████▏ 100.0%
 libtiff-4.4.0  403KiB                                                                                             866KiB/s 00:00 ▕██████████████████▏ 100.0%
 iptables-1.8.8  363KiB                                                                                            1.2MiB/s 00:00 ▕██████████████████▏ 100.0%
 ghostscript-with-cups-9.56.1  11.5MiB                                                                            1007KiB/s 00:12 ▕██████████████████▏ 100.0%
 iproute2-6.4.0  974KiB                                                                                            959KiB/s 00:01 ▕██████████████████▏ 100.0%
 lcms-2.13.1  193KiB                                                                                               1.0MiB/s 00:00 ▕██████████████████▏ 100.0%
Backtrace:
          16 (primitive-load "/gnu/store/vkyprwq3g00ki69ahby3mhdxa65…")
In guix/ui.scm:
   2275:7 15 (run-guix . _)
  2238:10 14 (run-guix-command _ . _)
In ice-9/boot-9.scm:
  1752:10 13 (with-exception-handler _ _ #:unwind? _ # _)
  1752:10 12 (with-exception-handler _ _ #:unwind? _ # _)
In guix/scripts/substitute.scm:
   856:15 11 (_)
    650:2 10 (process-substitution _ _ _ #:cache-urls _ #:acl _ # _ # …)
In ice-9/boot-9.scm:
  1752:10  9 (with-exception-handler _ _ #:unwind? _ # _)
In guix/scripts/substitute.scm:
    467:7  8 (download-nar #<<narinfo> path: "/gnu/store/bqk5b108p6…> …)
In ice-9/boot-9.scm:
  1747:15  7 (with-exception-handler #<procedure 7f3fc999ede0 at ic…> …)
  1685:16  6 (raise-exception _ #:continuable? _)
  1683:16  5 (raise-exception _ #:continuable? _)
  1685:16  4 (raise-exception _ #:continuable? _)
  1780:13  3 (_ #<&compound-exception components: (#<&error> #<&irri…>)
  1685:16  2 (raise-exception _ #:continuable? _)
  1683:16  1 (raise-exception _ #:continuable? _)
  1685:16  0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
ERROR:
  1. &http-get-error:
      uri: #<<uri> scheme: https userinfo: #f host: "ci.guix.gnu.org" port: #f path: "/nar/lzip/bqk5b108p6wxd5iwmn080zjcfav48wmr-libxext-1.3.4" query: #f fragment: #f>
      code: 502
      reason: "Bad Gateway"
      headers: ((server . "nginx") (date . #<date nanosecond: 0 second: 26 minute: 14 hour: 19 day: 13 month: 11 year: 2024 zone-offset: 0>) (content-type text/html) (content-length . 150) (connection keep-alive))
  2. &message: "https://ci.guix.gnu.org/nar/lzip/bqk5b108p6wxd5iwmn080zjcfav48wmr-libxext-1.3.4: HTTP download failed: 502 (\"Bad Gateway\")"
substitution of /gnu/store/bqk5b108p6wxd5iwmn080zjcfav48wmr-libxext-1.3.4 failed
guix package: error: corrupt input while restoring archive from socket
~~~~

Hm, maybe I merely lost connection and it did not handle that well? Try again:

~~~~
The following packages will be upgraded:
   font-dejavu            (dependencies or package changed)
   font-fira-code         (dependencies or package changed)
   font-fira-mono         (dependencies or package changed)
   font-fira-sans         (dependencies or package changed)
   font-iosevka           (dependencies or package changed)
   font-iosevka-aile      (dependencies or package changed)
   font-iosevka-etoile    (dependencies or package changed)
   font-iosevka-slab      (dependencies or package changed)
   font-iosevka-term      (dependencies or package changed)
   font-iosevka-term-slab (dependencies or package changed)
   font-wqy-microhei      (dependencies or package changed)
   font-wqy-zenhei        (dependencies or package changed)
   glibc-locales          2.35 → 2.39
   guile                  (dependencies or package changed)
   guile-colorized        (dependencies or package changed)
   guile-fibers           (dependencies or package changed)
   guile-readline         (dependencies or package changed)
   keepassxc              2.7.5 → 2.7.9
   lyx                    (dependencies or package changed)
   openvpn                2.5.8 → 2.6.12
   python                 (dependencies or package changed)

substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
56,2 MB will be downloaded
 linux-pam-1.5.2  414KiB                                                                                           620KiB/s 00:01 ▕██████████████████▏ 100.0%
 libxext-1.3.4  32KiB                                                                                              1.2MiB/s 00:00 ▕██████████████████▏ 100.0%
 libxrender-0.9.10  22KiB                                                                                          1.2MiB/s 00:00 ▕██████████████████▏ 100.0%
 lz4-1.9.3  147KiB                                                                                                1002KiB/s 00:00 ▕██████████████████▏ 100.0%
 libxft-2.3.8  54KiB                                                                                               789KiB/s 00:00 ▕██████████████████▏ 100.0%
 lzo-2.10  94KiB                                                                                                   707KiB/s 00:00 ▕██████████████████▏ 100.0%
 nspr-4.35  235KiB                                                                                                 820KiB/s 00:00 ▕██████████████████▏ 100.0%
 openjpeg-2.5.0  224KiB                                                                                            1.3MiB/s 00:00 ▕██████████████████▏ 100.0%
 nss-3.99  2.3MiB                                                                                                  851KiB/s 00:03 ▕██████████████████▏ 100.0%
 openvpn-2.6.12  454KiB                                                                                            781KiB/s 00:01 ▕██████████████████▏ 100.0%
 pixman-0.42.2  232KiB                                                                                             759KiB/s 00:00 ▕██████████████████▏ 100.0%
 poppler-data-0.4.11  1.5MiB                                                                                       651KiB/s 00:02 ▕██████████████████▏ 100.0%
 cairo-1.18.0  615KiB                                                                                              831KiB/s 00:01 ▕██████████████████▏ 100.0%
 qpdf-11.8.0  961KiB                                                                                               871KiB/s 00:01 ▕██████████████████▏ 100.0%
 poppler-22.09.0  1.4MiB                                                                                           781KiB/s 00:02 ▕██████████████████▏ 100.0%
 tcl-8.6.12  2.3MiB                                                                                                792KiB/s 00:03 ▕██████████████████▏ 100.0%
 cups-filters-1.28.16  804KiB                                                                                      802KiB/s 00:01 ▕██████████████████▏ 100.0%
 tk-8.6.12  1.3MiB                                                                                                 827KiB/s 00:02 ▕██████████████████▏ 100.0%
 cups-2.4.9  5.2MiB                                                                                                706KiB/s 00:08 ▕██████████████████▏ 100.0%
 python-3.10.7  11.1MiB                                                                                            809KiB/s 00:14 ▕██████████████████▏ 100.0%
 python-3.10.7-idle  692KiB                                                                                        799KiB/s 00:01 ▕██████████████████▏ 100.0%
 python-3.10.7-tk  25KiB                                                                                           1.4MiB/s 00:00 ▕██████████████████▏ 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'...   0.0%guix substitute: error: TLS error in procedure 'read_from_session_record_port': Error in the pull function.
guix package: error: `/gnu/store/vkyprwq3g00ki69ahby3mhdxa65hnzgy-guix-command substitute' died unexpectedly
~~~~

So I could not update for some reason. OK, lets try the ol' `guix pull --no-substitutes`. Dreading, that it would need hours and hours to finish on this old hardware, but trying nevertheless. It gets stuck at:

~~~~
building /gnu/store/[some-long-hash-here]-gzip-1.2.4.tar.drv...
\[CURSOR HERE]
~~~~

Before someone tells me again "it was not stuck, just needing a long time": I checked in `htop`. The guix processes had zero CPU usage and zero CPU time increment over something like half an hour. I think it got stuck somewhere and simply did not handle it well. I am quite sure I could have waited another day and they still would not have budged. Believe me, the CPU time remained firmly stuck at "0:17:47" and even after checking again and again, that number would not increase. (see screenshots)

Then I cancelled that and since I don't know what else to, I simply ran again `guix pull`. But I get another error:

~~~~
guix substitute: error: failed to find alternative substitute for '/gnu/store/[LONG HASH HERE]-module-import-compiled'
substitution of /gnu/store/[SAME LONG HASH HERE]-module-import-compiled failed
guix pull: error: corrupt input while restoring archive from #<closed: file [SOME HASH]>
~~~~

So basically, I cannot update packages on that machine, unless there are more tricks to try.

I guess I can still upgrade guix itself as root user with sudo -i.

There was the guix survey recently, and I had already forgotten about these issues. I should have mentioned in the survey, that it would be great, if guix was handling unstable connections better or needs to output more info when it gets stuck, or needs to detect, when it gets stuck. Or handles somehow corrupt input better. I am not sure how much these issues are related.

My `guix --version` is:

~~~~
guix (GNU Guix) bf96496f177c961260523ada850d10a057f9032a
~~~~

Can you help me out? What more can I try?

I will try to upgrade guix itself and see if that makes it work.

Best wishes,
Zelphir

-- 
repositories: https://notabug.org/ZelphirKaltstahl, https://codeberg.org/ZelphirKaltstahl