guix-devel
[Top][All Lists]
Advanced

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

Offloading to use Guile-SSH instead of lsh


From: Ludovic Courtès
Subject: Offloading to use Guile-SSH instead of lsh
Date: Sat, 05 Nov 2016 16:41:41 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Hello!

The ‘wip-guile-ssh’ branch is finally getting into shape.  As soon as
a new Guile-SSH release is out, I’ll merge it on master.

The goal of this branch is to use Guile-SSH (libssh bindings) instead of
invoking ‘lsh’ when offloading builds (see
<https://www.gnu.org/software/guix/manual/html_node/Daemon-Offload-Setup.html>
for background.)

The new code is shorter(!), more efficient, more elegant, and hopefully
more reliable.  The efficiency gains come from the fact that we can
reuse SSH sessions in an intelligent way.  The elegance has to do with
the fact that we have direct access to the SSH API, as opposed to
invoking ‘lsh’ and checking its exit status.

Improved reliability (well, modulo new bugs ;-)) comes from the fact
that we open a direct connection to the remote guix-daemon for the
duration of the offload, which allows us to better control GC root
registration—we can use the ‘add-temp-root’ RPC directly instead of
writing indirect root files in $HOME.

Before we put it in production on hydra.gnu.org :-), I’d welcome more
testing!  To do that you need a current Guile-SSH (with the
‘channel-send-eof!’  procedure), and the ‘build-machine’ form is
slightly different than before: it has a new ‘host-key’ field to contain
the OpenSSH-formatted host key of the machine.  I’ve updated the doc to
reflect that.

Feedback welcome!

Ludo’.



reply via email to

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