guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Error handling when 'guix substitute' dies


From: Philip McGrath
Subject: Re: Error handling when 'guix substitute' dies
Date: Tue, 2 Apr 2024 00:13:32 -0400
User-agent: Mozilla Thunderbird

Hi,

On 3/29/24 11:10, Ludovic Courtès wrote:
>
> [...]

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 …


I don't know if the root cause is related, but this reminded me of some networking errors I sometimes get accessing substitutes. I had the luck (good or bad?) to get an example while building <https://issues.guix.gnu.org/70065>, so I thought I'd report.

ice-9/boot-9.scm:1685:16: In procedure raise-exception:
ERROR:
  1. &http-get-error:
      uri: #<<uri> scheme: https userinfo: #f host: "bordeaux-us-east-mirror.cbaines.net" 
port: #f path: "/nar/lzip/r8w68mhsvqlkvazncvfn36jcpvz404x6-chez-fmt-0.8.11.tar.gz" query: #f 
fragment: #f>
      code: 404
      reason: "Not Found"
      headers: ((server . "nginx") (date . #<date nanosecond: 0 second: 9 minute: 20 hour: 6 
day: 1 month: 4 year: 2024 zone-offset: 0>) (content-type application/json (charset . 
"utf-8")) (content-length . 35) (connection keep-alive))
  2. &message: 
"https://bordeaux-us-east-mirror.cbaines.net/nar/lzip/r8w68mhsvqlkvazncvfn36jcpvz404x6-chez-fmt-0.8.11.tar.gz:
 HTTP download failed: 404 (\"Not Found\")"
substitution of 
/gnu/store/r8w68mhsvqlkvazncvfn36jcpvz404x6-chez-fmt-0.8.11.tar.gz failed
guix build: error: corrupt input while restoring archive from #<closed: file 
7f9f7deaad90>

The last time this happened, I kept rerunning the command a bunch of times. When it succeeded with the first substitute with the problem, it hit the problem with another substitute, for several rounds, but eventually the whole thing succeeded.

In this incident, the command failed a few times, so I ran:

    guix build --no-substitutes --source chez-fmt

and then ran my original command again, successfully.

Hope this is useful,
Philip



reply via email to

[Prev in Thread] Current Thread [Next in Thread]