[Top][All Lists]

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

[bug#45323] [PATCH] substitute: Reuse connections for '--query'.

From: Christopher Baines
Subject: [bug#45323] [PATCH] substitute: Reuse connections for '--query'.
Date: Thu, 24 Dec 2020 11:06:39 +0000
User-agent: mu4e 1.4.13; emacs 27.1

Ludovic Courtès <> writes:

> Ludovic Courtès <> skribis:
>> This significantly speeds up things like substituting the closure of a
>> .drv.  This is a followup to 5ff521452b9ec2aae9ed8e4bb7bdc250a581f203.
>> * guix/scripts/substitute.scm (http-multiple-get): Add #:open-connection
>> and #:keep-alive? and honor them.
>> (open-connection-for-uri/maybe): Use 'open-connection-for-uri/cached'
>> instead of 'guix:open-connection-for-uri'.  Call 'http-multiple-get'
>> within 'call-with-cached-connection'.
>> (open-connection-for-uri/cached): Add #:timeout and #:verify-certificate?
>> and honor them.
>> (call-with-cached-connection): Add 'open-connection'  parameter and
>> honor it.
>> ---
>>  guix/scripts/substitute.scm | 97 ++++++++++++++++++++++---------------
>>  1 file changed, 59 insertions(+), 38 deletions(-)
> Pushed as be5a75ebb5988b87b2392e2113f6590f353dd6cd!
> You can check the effect by running ‘guix build XYZ.drv’, where XYZ.drv
> is not available locally yet.


I did do some testing of this, and didn't spot any issues, but I think
it might be causing some issues when things go wrong.

The Guix Build Coordinator uses code from this script, and I'm sometimes
seeing exceptions like [1] when running with these changes. This is when
calling lookup-narinfos.

#<&compound-exception components: (#<&error> #<&irritants irritants: 
(#<gnutls-error-enum The specified session has been invalidated for some
reason.> write_to_session_record_port)> #<&exception-with-kind-and-args kind: 
gnutls-error args: (#<gnutls-error-enum The specified session hasbeen 
invalidated for some reason.> write_to_session_record_port)>)>,

When this happens, things seem to get stuck and retrying calling
lookup-narinfos leads to the same exception. I'm guessing this might be
happening because the broken connection is being cached and reused.

Any ideas?



Attachment: signature.asc
Description: PGP signature

reply via email to

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