Subject: bug#39925: `guix pull` failure in multi-machine setup

From: Lars-Dominik Braun <[email-masked]>
Date: Mon, 9 Mar 2020 09:22:53 +0100

Hi Ludo,

> Oh it may be that we would also need to let ‘HOME’ through, so that
> ~/.ssh/config is found, for example.  That could have undesirable side
> effects that are best avoided, though (e.g., ~/.cache/guile would become
> visible.)
shouldn’t be a problem since ~/.ssh/config does not exist for that user and
known hosts are globally declared in /etc/ssh/ssh_known_hosts (strace indicates
that guile-ssh/libssh reads that file).

> I agree that the error message is sub-optimal.  Not sure how to improve
> on it (how can ‘build-self.scm’ know that it’s failing because of
> that?).
If I stop the daemon and `guix pull` it just says “guix pull: error: failed to
connect to `/var/guix/daemon-socket/socket': Connection refused”. Something
similar should do. I don’t know whether that’s possible though.

> You could run:
>   ssh host guix pull
Sure, that’s the only workaround I can think of right now.

> In fact, the former would probably not work because ‘guix pull’ modifies
> the local /var/guix/profiles, not the one on the host that runs the
> daemon.
Yes, /var/guix is shared via NFS too. Otherwise roaming between machines
wouldn’t work at all.

> So maybe the problem is that ‘GUIX_DAEMON_SOCKET=ssh://’ isn’t quite as
> powerful as you thought.  :-)
It is, it’s just a bug we have to fix :) Can I help you debug this somehow,
i.e. figure out where exactly the error message is coming from?

Cheers,
Lars