Subject: bug#26035: guix pull does not handle url lists and unreachable requests

From: ng0 <[email-masked]>
Date: Thu, 9 Mar 2017 14:51:05 +0000

efficient enough and sets the times out much too high
Reply-To: 
In-Reply-To:
When you configure a system to use bayfront, for example with these
lines included in cons* of (services):
            (modify-services
              %base-services
              (guix-service-type
                config =>
                (guix-configuration
                  (inherit config)
                  (substitute-urls
                    (cons* "https://bayfront.guixsd.org"
                           %default-substitute-urls))
                  (authorized-keys
                    (cons*
                      (plain-file "bayfront.guixsd.org.pub"
                        (string-append "(public-key (ecc curve
Ed25519) "
                                       "(q
#8D156F295D24B0D9A86FA5741A840FF2"

"D24F60F7B6C4134814AD55625971B394#)))"))
                    %default-authorized-guix-keys))))))))

please consider that this does not reflect the actual indent and that I
can't paste all of the config here, but those are the relevant parts,
you will experience that: "guix package", and "guix system" (or guix
buld?) query all listed subsitute urls, while "guix pull" only queries
the first one. If the first one is experiencing issues (for example
server is offline or can't handle requests for whatever reasons), the
timeout is much too high. I had to cancel guix pull processes which
tried to request from bayfront.guixsd.org for 9, 12, and 3 hours.

As bayfront wasn't the only server, a switch should occur even with the
guix pull part where substitute servers are queried before the build of
the fetched master tarball starts.