Subject: bug#41878: 'guix substitute' and 'guix pull' fail gracelessly on flaky networks

From: Brendan Tildesley <[email-masked]>
Date: Sun, 30 Aug 2020 20:06:58 +1000

I have not looked closely but from observation I think currently guix 
first decides if it is going to commit to using a substitute, or falling 
back to building locally, by checking if substitutes are available then 
committing to a method. This differs from the concept of a fallback in 
my head, which would involve trying option B only after option A has 
been tried and failed. guix's way means there are a class of failures 
where guix simply gives up and stops instead of falling back.

In my experience, probably 10% of the time I try a guix pull; guix 
package -u ., there is some weird network error that doesn't happen the 
second time I run it. Perhaps it would be sufficient to simply try twice 
for every substitute; accumulate a list of failed substitutes and retry 
them after iterating through the list of substitutes to download, then 
if that fails try building from source. only then are we allowed to give up.