Subject: Re: bug#53156: GUIX_DAEMON_SOCKET with ssh doesn't cache connections

From: Ludovic Courtès <[email-masked]>
Date: Mon, 10 Jan 2022 18:13:04 +0100

Hi Efraim,

Efraim Flashner <[email-masked]> skribis:

> I'm experimenting some more with GUIX_DAEMON_SOCKET, and while when
> using guix offload I see a socket a /run/user/1000/destination/socket,

What’s this file?

> there's nothing similar when using
> GUIX_DAEMON_SOCKET=ssh://other-machine. Depending on the machine in
> question it can take several minutes before a build is started,

That’s because the daemon RPC protocol is suboptimal in that it makes
lots of round trips, and round trips are very costly over SSH due to
higher latency.

Eventually we’ll need to adjust/change the protocol, but there’s no
short-term solution.

(For connections over TCP, ‘open-inet-socket’ in (guix store) uses
TCP_NODELAY to make this acceptable.  There’s #:nodelay #t in (guix
ssh), but that doesn’t much as much of a difference.)

> and I'm having a hard time maintaining the connection until the end of
> a longer build like gccgo.

Is it that the SSH server eventually drop the connection?

HTH,
Ludo’.