[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 <ludo@gnu.org> writes:
> Ludovic Courtès <ludo@gnu.org> 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.
Hey,
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.
1:
#<&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?
Thanks,
Chris
signature.asc
Description: PGP signature