GNU bug report logs

#56014 'guix substitute' crashes in zstd on transient networking issues

PackageSource(s)Maintainer(s)
guix PTS Buildd Popcon
Reply or subscribe to this bug. View this bug as an mbox, status mbox, or maintainer mbox

Report forwarded to bug-guix@gnu.org:
bug#56014; Package guix. (Thu, 16 Jun 2022 06:27:03 GMT) (full text, mbox, link).


Acknowledgement sent to Matthias <matthias.kaak@smartflyer.de>:
New bug report received and forwarded. Copy sent to bug-guix@gnu.org. (Thu, 16 Jun 2022 06:27:03 GMT) (full text, mbox, link).


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

From: Matthias <matthias.kaak@smartflyer.de>
To: bug-guix@gnu.org
Subject: Guix crashes at while downloading an update
Date: Thu, 16 Jun 2022 04:09:52 +0000
[Message part 1 (text/plain, inline)]
I just downloaded the QEMU image for the Guix distribution and wanted to 
try it out.  I use QEMU and AQEMU from the current Debian Testing.

To try out the package manager I installed the Lynx terminal browser. 
That worked without any problems (lynx is working), but guix said I 
should update the system with the commands "guix pull" and "guix package 
-u".  Excited to be able to explore more features I typed in the first 
command, but while downloading the package "apr" it crashed.  See the 
attachment for guix' output.

Guix version ("guix --version"): 1.3.0-1.771b866

PS: The "You found a bug" message is awesome!  Instead of getting angry 
at a not working program, I got excited to have found something new.
[guix_bug_report.txt (text/plain, attachment)]

Information forwarded to bug-guix@gnu.org:
bug#56014; Package guix. (Sun, 26 Jun 2022 15:29:02 GMT) (full text, mbox, link).


Message #8 received at 56014@debbugs.gnu.org (full text, mbox, reply):

From: Ludovic Courtès <ludo@gnu.org>
To: Matthias <matthias.kaak@smartflyer.de>
Cc: 56014@debbugs.gnu.org
Subject: Re: bug#56014: Guix crashes at while downloading an update
Date: Sun, 26 Jun 2022 17:28:36 +0200
Hi Matthias,

Matthias <matthias.kaak@smartflyer.de> skribis:

> I just downloaded the QEMU image for the Guix distribution and wanted
> to try it out.  I use QEMU and AQEMU from the current Debian Testing.
>
> To try out the package manager I installed the Lynx terminal
> browser. That worked without any problems (lynx is working), but guix
> said I should update the system with the commands "guix pull" and
> "guix package -u".  Excited to be able to explore more features I
> typed in the first command, but while downloading the package "apr" it
> crashed.  See the attachment for guix' output.
>
> Guix version ("guix --version"): 1.3.0-1.771b866

[...]

>  xz-5.2.5  308KiB                                                                 568.9MiB/s 00:00 [##################] 100.0%
>  glib-2.70.2  2.7MiB                                                               4.68GiB/s 00:00 [##################] 100.0%
>  apr-1.7.0  314KiB                                                                581.4MiB/s 00:00 [#######           ]  40.7%Backtrace:
> In guix/serialization.scm:
>    468:33 19 (read "/gnu/store/rbb9h501zyf8mg1hz47plql80gsl99za-apr?" ?)
>    468:33 18 (read "/gnu/store/rbb9h501zyf8mg1hz47plql80gsl99za-apr?" ?)
>    442:24 17 (read "/gnu/store/rbb9h501zyf8mg1hz47plql80gsl99za-apr?" ?)
>    525:24 16 (_ "/gnu/store/rbb9h501zyf8mg1hz47plql80gsl99za-apr-1.?" ?)
> In guix/store/deduplication.scm:
>     227:2 15 (dump-file/deduplicate "/gnu/store/rbb9h501zyf8mg1hz47?" ?)
> In ice-9/ports.scm:
>    463:17 14 (call-with-output-file _ _ #:binary _ #:encoding _)
> In guix/store/deduplication.scm:
>    232:10 13 (_ _)
> In guix/serialization.scm:
>     261:6 12 (dump _)
>    247:20 11 (dump #<input: string 7fd40c2b5af0> #<output: string 7?> ?)
> In unknown file:
>           10 (get-bytevector-n! #<input: string 7fd40c2b5af0> # 0 #)
> In guix/store/deduplication.scm:
>    203:22  9 (read! #vu8(47 42 32 76 105 99 101 110 115 101 100 32 ?) ?)
> In unknown file:
>            8 (get-bytevector-n! #<input: string 7fd409cdcd20> # 0 #)
> In gcrypt/hash.scm:
>    223:13  7 (read! #vu8(47 42 32 76 105 99 101 110 115 101 100 32 ?) ?)
> In unknown file:
>            6 (get-bytevector-n! #<input: string 7fd409cdce70> # 0 #)
> In zstd.scm:
>    256:12  5 (read! _ _ _)
> In ice-9/boot-9.scm:
>   1669:16  4 (raise-exception _ #:continuable? _)
>   1669:16  3 (raise-exception _ #:continuable? _)
>   1764:13  2 (_ #<&compound-exception components: (#<&error> #<&irri?>)
>   1669:16  1 (raise-exception _ #:continuable? _)
>   1669:16  0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1669:16: In procedure raise-exception:
> Throw to key `zstd-error' with args `(decompress! 18446744073709551544)'.

This is the root cause; its meaning:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> ,use(zstd)
scheme@(guile-user)> (error-name 18446744073709551544)
$23 = "Src size is incorrect"
--8<---------------cut here---------------end--------------->8---

Downloading and uncompressing the same thing works like this:

--8<---------------cut here---------------start------------->8---
$ wget -qO - https://ci.guix.gnu.org/nar/zstd/rbb9h501zyf8mg1hz47plql80gsl99za-apr-1.7.0 | zstd -d |sha256sum 
e15bd1d4f4628969c461d99e23d27d76fb0d77b709eb393b9b2b2bcac67a8b19  -
--8<---------------cut here---------------end--------------->8---

Likewise with Guile + Guile-zstd:

--8<---------------cut here---------------start------------->8---
$ wget -qO - https://ci.guix.gnu.org/nar/zstd/rbb9h501zyf8mg1hz47plql80gsl99za-apr-1.7.0 | guile -c '(use-modules (zstd) (guix build utils)) (call-with-zstd-input-port (current-input-port) (lambda (port) (dump-port port (current-output-port))))' | sha256sum 
e15bd1d4f4628969c461d99e23d27d76fb0d77b709eb393b9b2b2bcac67a8b19  -
--8<---------------cut here---------------end--------------->8---

So my guess is that the connection was closed early for some reason,
leading to a decompression error down the road.

> guix pull: error: You found a bug: the program '/gnu/store/aaik6090bx4vdp9rn2g6w89296my5445-compute-guix-derivation'
> failed to compute the derivation for Guix (version: "128697d43c21eb229ff5413f1c4cf79ae1a9dcd4"; system: "x86_64-linux";
> host version: "1.3.0-1.771b866"; pull-version: 1).
> Please report the COMPLETE output above by email to <bug-guix@gnu.org>.

The bug here is that Guix should (1) handle transient networking issues
gracefully, and (2) retry downloads instead of aborting.

To be continued…

Thanks for reporting the issue!

Ludo’.




Changed bug title to ''guix substitute' crashes in zstd on transient networking issues' from 'Guix crashes at while downloading an update' Request was from Ludovic Courtès <ludo@gnu.org> to control@debbugs.gnu.org. (Sun, 26 Jun 2022 15:30:01 GMT) (full text, mbox, link).


Severity set to 'important' from 'normal' Request was from Ludovic Courtès <ludo@gnu.org> to control@debbugs.gnu.org. (Sun, 03 Jul 2022 20:57:02 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


debbugs.gnu.org maintainers <help-debbugs@gnu.org>. Last modified: Wed Apr 9 15:52:59 2025; Machine Name: wallace-server

GNU bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.