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’.