GUIX_DAEMON_SOCKET with ssh doesn't cache connections

OpenSubmitted by Efraim Flashner.
Details
2 participants
  • Efraim Flashner
  • Ludovic Courtès
Owner
unassigned
Severity
normal
E
E
Efraim Flashner wrote on 10 Jan 10:44 +0100
(address . bug-guix@gnu.org)
YdwAAAcXOQlSzpYG@3900XT
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,
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, and I'm
having a hard time maintaining the connection until the end of a longer
build like gccgo.

--
Efraim Flashner <efraim@flashner.co.il> רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmHcAAAACgkQQarn3Mo9
g1H6EQ/8D7A3LA9kgMr6amrZta0Tla3dXK/juToadz6/QsfKycQ/oT2EM5XgqAXf
VHvzjBCDBXqaQ+Uo0ycGYi00fNiaoayR+NcSHa8I7ChbvMq20zynpjqHKf0t7iW8
Xlpcm2O3Jp7cTZ9HZZNZTmIHpnR3R2HsCcdeMmqifp4c3rRRUInCEGrlP/JdXsyh
6t4HPxoVXxkzkW1Qt/R2kKLr2V/TtCSL+ZTXiLm6eRmGm7xoWyHxK5VWUznBrRNr
KuM1dVWyhpZ+wjaM5/dSkSZtvExM5jE8bMHHdYI0UgXtdaS/cYg2taQszCjKZV+x
n0a6R7lnLHV8laNEEESCthqWRG75ZV9tFyUcxJpioiKwoPqyzy1sN0nGFjRpVjEQ
tqEW0SAd/QIDesdr9hbTuPddZ828Pp8Fbn6DlxSlE6g7KcHq6h0OQz2gDH+rEjzP
7cI6nYKNzCExt9b/3I4y5Q3rzikpCsvfW/RC7N4igkR8d5LK7/VHSse1gflJZwra
LbXi3MUY++xpKjeP0aAxd4btIbFhahwqW+9R5sfd5ZKngINjGzOaW2/XvdCOJToa
rB1trwhemSBKtR++n7Ta9VEUaGS9p6rQw5wti7QTQdLJ2uP4lONMs0RhW6P819RF
Pz/wh8JNYDT/5bXkQCvCO8iLLD3wlhuJ/t3e+2gza9++mahYdr4=
=LHFG
-----END PGP SIGNATURE-----


L
L
Ludovic Courtès wrote on 10 Jan 18:13 +0100
(address . 53156@debbugs.gnu.org)
87k0f7y0nz.fsf@gnu.org
Hi Efraim,

Efraim Flashner <efraim@flashner.co.il> skribis:

Toggle quote (3 lines)
> 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?

Toggle quote (4 lines)
> 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.)

Toggle quote (3 lines)
> 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’.
L
L
Ludovic Courtès wrote on 20 May 23:36 +0200
87a6bbx4x5.fsf@gnu.org
Hi Efraim,

Should we close this one?


Ludo’.

Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (31 lines)
> Hi Efraim,
>
> Efraim Flashner <efraim@flashner.co.il> 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’.
?