[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Error handling when 'guix substitute' dies
From: |
Ludovic Courtès |
Subject: |
Re: Error handling when 'guix substitute' dies |
Date: |
Fri, 29 Mar 2024 16:10:34 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Hello,
Ada Stevenson <adanskana@gmail.com> skribis:
>> diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
>> index 37cd08e289..3af0bf0019 100755
>> --- a/guix/scripts/substitute.scm
>> +++ b/guix/scripts/substitute.scm
>> @@ -494,7 +494,9 @@ (define* (download-nar narinfo destination
>> (define (try-fetch choices)
>> (match choices
>> (((uri compression file-size) rest ...)
>> - (guard (c ((and (pair? rest) (http-get-error? c))
>> + (guard (c ((and (pair? rest)
>> + (or (http-get-error? c)
>> + (network-error? c)))
>> (warning (G_ "download from '~a' failed, trying next
>> URL~%")
>> (uri->string uri))
>> (try-fetch rest)))
>>
>> I’ll go ahead with this change if there are no objections.
> Looks good to me! Thanks for looking into this :)
OK, I’ll push it shortly, but…
Lars Bilke <lars.bilke@ufz.de> skribis:
> thanks Ada for bringing this issue up again. I get the same error on
> `guix pull` almost always when I am on my enterprise
> network. Re-running `guix pull` a second time also almost always then
> runs fine. I checked with our IT: nothing suspicious on the network,
> i.e. no firewall blocking.
>
> I never experienced the error on my home network.
… your reports make me think there’s a bug lurking somewhere that
perhaps only manifests under some precise networking or timing
conditions.
Could the two of you run the following command in a loop to see whether
it’s easy to reproduce that GnuTLS error?
guile -c '(use-modules (guix http-client) (ice-9 binary-ports))
(get-bytevector-all (http-fetch "https://ci.guix.gnu.org/nix-cache-info"))'
If you can reproduce it, could you capture the strace output of the
process? You would run the command above prefixed by:
strace -o log.strace -s 300 …
Thanks in advance!
Ludo’.