From: "Ludovic Courtès" <ludo@gnu.org>
To: Christopher Baines <mail@cbaines.net>
Cc: Mathieu Othacehe <othacehe@gnu.org>, 48468@debbugs.gnu.org
Subject: bug#48468: substitute server connection timeout
Date: Sat, 29 May 2021 23:44:35 +0200 [thread overview]
Message-ID: <87v97143lo.fsf@gnu.org> (raw)
In-Reply-To: <87eee6cz75.fsf@cbaines.net> (Christopher Baines's message of "Sun, 16 May 2021 19:26:22 +0100")
Hi,
Christopher Baines <mail@cbaines.net> skribis:
> Mathieu Othacehe <othacehe@gnu.org> writes:
[...]
>> Stracing this publish server shows that connection reuse seems to be
>> broken:
>>
>> --8<---------------cut here---------------start------------->8---
>> accept4(9, {sa_family=AF_INET, sin_port=htons(41742), sin_addr=inet_addr("141.80.167.185")}, [112->16], 0) = 21
>> accept4(9, {sa_family=AF_INET, sin_port=htons(41744), sin_addr=inet_addr("141.80.167.185")}, [112->16], 0) = 21
>> accept4(9, {sa_family=AF_INET, sin_port=htons(41746), sin_addr=inet_addr("141.80.167.185")}, [112->16], 0) = 25
>> accept4(9, {sa_family=AF_INET, sin_port=htons(41748), sin_addr=inet_addr("141.80.167.185")}, [112->16], 0) = 24
>> accept4(9, {sa_family=AF_INET, sin_port=htons(41750), sin_addr=inet_addr("141.80.167.185")}, [112->16], 0) = 21
Ouch.
>> Investigating it, I found that the connection is closed and opened
>> multiple times in the call-with-cached-connection procedure of the (guix
>> script substitute) module.
>>
>> It looks like its because a 'bad-headers exception is raised when trying
>> to parse an eof object:
>>
>> --8<---------------cut here---------------start------------->8---
>> ;;; (error bad-header (read-header-line #<eof>))
>> --8<---------------cut here---------------end--------------->8---
>>
>> I'm not sure where this eof comes from. There is this comment in the
>> http-multiple-get procedure in (guix http-client):
>>
>> --8<---------------cut here---------------start------------->8---
>> ;; Swallow networking errors that could occur due to connection reuse
>> ;; and the like; they will be handled down the road when trying to
>> ;; read responses.
>> (false-if-networking-error
>> (begin
>> (for-each (cut write-request <> buffer) batch)
>> (put-bytevector p (get))
>> (force-output p))))
>> --8<---------------cut here---------------end--------------->8---
>>
>> which would suggest that connection reuse could cause networking errors?
[...]
> That's on the server side, the actual problem is probably on the client
> side, as I guess there are possibly places where closed connections
> aren't handled properly.
D’oh. So we should be able to use it by talking to a bare ‘guix
publish’? I tried and failed to reproduce it, but that’s probably not
deterministic.
> This reminds me I sent some patches relating to closing connections,
> this could well be related [1].
>
> 1: https://issues.guix.gnu.org/47174
This one will properly close connections when the servers asks for it,
but would that make a difference?
Thanks,
Ludo’.
next prev parent reply other threads:[~2021-05-29 21:45 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-16 17:57 bug#48468: substitute server connection timeout Mathieu Othacehe
2021-05-16 18:26 ` Christopher Baines
2021-05-17 14:49 ` Mathieu Othacehe
2021-05-18 14:35 ` Mathieu Othacehe
2021-05-21 13:30 ` Mathieu Othacehe
2021-05-29 21:44 ` Ludovic Courtès [this message]
2021-06-18 12:33 ` Ludovic Courtès
2021-06-29 16:49 ` Mathieu Othacehe
2022-12-05 13:21 ` Ludovic Courtès
2022-12-07 9:44 ` Mathieu Othacehe
2022-12-07 13:38 ` Ludovic Courtès
2022-12-07 14:31 ` Mathieu Othacehe
2022-12-08 10:26 ` Ludovic Courtès
2022-12-10 10:55 ` Ludovic Courtès
2022-12-27 9:52 ` Mathieu Othacehe
2022-12-28 14:23 ` Mathieu Othacehe
2023-01-06 22:42 ` Ludovic Courtès
2023-01-07 13:40 ` Mathieu Othacehe
2023-01-09 9:39 ` Ludovic Courtès
2023-01-10 8:10 ` Mathieu Othacehe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87v97143lo.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=48468@debbugs.gnu.org \
--cc=mail@cbaines.net \
--cc=othacehe@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).