[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Error handling when 'guix substitute' dies
From: |
Lars Bilke |
Subject: |
Re: Error handling when 'guix substitute' dies |
Date: |
Tue, 02 Apr 2024 10:42:18 +0200 |
Dear Ludo,
I ran the command in a loop on 4 machines for around 2 hours doing 1 request
per machine per second but no errors occured...
On 29 Mar 2024, at 16:10, Ludovic Courtès wrote:
> 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’.