ng0 <ngillmann@runbox.com> skribis:
Toggle quote (2 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
[...]
Toggle quote (14 lines)
>> Like you say, on Hydra-style setup this could be a problem: the>> front-end machine may have --max-jobs=0, meaning that it cannot perform>> builds on its own.>>>> So I guess we would need a command-line option to select a different>> behavior. I’m not sure how to do that because ‘guix offload’ is>> “hidden” behind ‘guix-daemon’, so there’s no obvious place for such an>> option.>> Could the daemon run with --enable-hydra-style or --disable-hydra-style> and --disable-hydra-style would allow falling back to local build if> after a defined time - keeping slow connections in mind - the machine> did not reply.
That would be too ad-hoc IMO, and the problem mentioned above remains.
Toggle quote (5 lines)
>> In the meantime, you could also hack up your machines.scm: it would>> return a list where unreachable machines have been filtered out.>> How can I achieve this?
Something like:
(define the-machine (build-machine …))
(if (managed-to-connect-timely the-machine) (list the-machine) '())
… where ‘managed-to-connect-timely’ would try to connect to themachine with a timeout.
Toggle quote (4 lines)
> And to append to this bug: it seems to me that offloading requires 1> lsh-key for each> build-machine.
The main machine needs to be able to connect to each build machine overSSH, so indeed, that requires proper SSH key registration (host keys andauthorized user keys).
Toggle quote (8 lines)
> (https://lists.gnu.org/archive/html/help-guix/2016-10/msg00007.html)> and that you can not directly address them (say I want to create some> system where I want to build on machine 1 AND machine 2. Having 2> x86_64 in machines.scm only selects one of them (if 2 were working,> see linked thread) and builds on the one which is accessible first. If> however the first machine is somehow blocked and it fails, therefore> terminates lsh connection, the build does not happen at all.
The code that selects machines is in (guix scripts offload),specifically ‘choose-build-machine’. It tries to choose the “best”machine, which means, roughly, the fastest and least loaded one.
HTH,Ludo’.