Hi Ludo!

> Do you remember exactly under what circumstances it hangs?  I think
> ‘guix offload’ should handle that situation gracefully and we should fix
> it if it does not.

Yeah. It happens when I have a build machine configured like so and I
disconnect it from the Ethernet connection:
--8<---------------cut here---------------start------------->8---
(build-machines
 (list
  #~(build-machine
     (name "remote")
     (systems (list "x86_64-linux" "i686-linux"))
     (host-key %remote-host-key
     (private-key %local-key))))
--8<---------------cut here---------------end--------------->8---

With this configuration `guix offload test` will timeout after 30
seconds, as you describe. But this other command will hang indefinitely:
--8<---------------cut here---------------start------------->8---
$ timeout 1m guix build imhex -M 0
The following derivation will be built:
  /gnu/store/9absqzdd4ak3pms2jw6rkhlmjvm8zzyv-imhex-1.35.1.drv
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
waiting for locks or build slots...
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
guix offload: error: failed to connect to 'bordercollie': No route to host
process 12199 acquired build slot '/var/guix/offload/bordercollie:22/0'
--8<---------------cut here---------------end--------------->8---

`imhex` is just a package that is not yet merged upstream so no
substitutes are available and the offload happens.

> Right now, it sets an initial connection timeout of 30s, which is quite
> long but turned out to be necessary (see ‘open-ssh-session’ in (guix
> scripts offload)).

If that long timeout is required, I think the snippet I propose to
document will be useful for other users.


Have a good night!
Sergio.

Reply via email to