[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#43518: Guix substitute crash in procedure raise-exception: wrong typ
From: |
Ludovic Courtès |
Subject: |
bug#43518: Guix substitute crash in procedure raise-exception: wrong type agument in position 1: #f |
Date: |
Wed, 30 Sep 2020 19:19:34 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Hi,
Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
> downloading from
> https://ci.guix.gnu.org/nar/6m9zimmw8p6gbc1yfbg454c1r587b7h4-gcc-10.2.0.tar.xz
> ...
[…]
> gcc-10.2.0.tar.xz 74.3MiB 1.1MiB/s
> 00:25 [####### ] 39.1%Backtrace:
[…]
> In unknown file:
> 5 (display "@ substituter-succeeded
> /gnu/store/r06j3ms57z4mzfpdzfclsi3i9hr4184g-module-imp…" …)
> In guix/status.scm:
> 699:16 4 (write! _ _ _)
> 613:6 3 (_ (download-progress
> "/gnu/store/6m9zimmw8p6gbc1yfbg454c1r587b7h4-gcc-10.2.0.tar.xz" # …) …)
> In guix/progress.scm:
> 213:14 2 (display-download-progress "6m9zimmw8p6gbc1yfbg454c1r58@" _
> #:start-time _ #:transferred _ …)
> In ice-9/boot-9.scm:
> 1669:16 1 (raise-exception _ #:continuable? _)
> 1669:16 0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1669:16: In procedure raise-exception:
> In procedure =: Wrong type argument in position 1: #f
If you have a case that’s reproducible, please take advantage of it and
add ‘pk’ calls in (guix progress) to see what happens. Here it seems
that ‘transferred’ (in ‘display-download-progress’) is #f.
The #f would come from this clause in (guix status):
('download-progress item uri
(= string->number size)
(= string->number transferred)) ;<- here
That in turn comes from ‘progress-reporter/trace’, called from (guix
scripts substitute).
It looks like this issue happens when max-jobs is (noticeably) greater
than 1, as if the client was receiving intermingled “@
download-progress” traces, and thus not getting the right ‘transferred’
value.
Could you try to reproduce it while ‘guix’ is running under strace?
Like:
strace -o log -s 200 guix build whatever --max-jobs=20
?
Then, if you reproduce the error, we’ll look for intermingled traces in
the log.
Thanks,
Ludo’.