[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
- Re: Error handling when 'guix substitute' dies,
Philip McGrath <=