Hi,

Sergio Pastor Pérez <sergio.pastorpe...@outlook.es> skribis:

>> 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:
>
> (build-machines
>  (list
>   #~(build-machine
>      (name "remote")
>      (systems (list "x86_64-linux" "i686-linux"))
>      (host-key %remote-host-key
>      (private-key %local-key))))
>
>
> With this configuration `guix offload test` will timeout after 30
> seconds, as you describe. But this other command will hang indefinitely:
>
> $ 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

I believe the problem here is that offloading always wants to offload.
That is, when all the machines in /etc/guix/machines.scm are
unavailable, ‘guix offload’ says so to guix-daemon, but then guix-daemon
just keeps retrying (if you had more than one machine in
/etc/guix/machines.scm, one of which is unavailable, ‘guix offload’
would just pick another one.)

I guess this is probably what we should permit: building locally when we
cannot offload.

Does that make sense?

Ludo’.

Reply via email to