Subject: bug#33410: Offloaded builds can get stuck indefinitely due to network issues

From: [email-masked] (Ludovic Courtès)
Date: Sat, 17 Nov 2018 15:21:32 +0100

Hello,

Mark H Weaver <[email-masked]> skribis:

> I just discovered that 4 out of 5 armhf build slots on Hydra have been
> stuck for 24 hours, apparently after the network connections to the
> build slaves were lost, possibly due to a temporary network outage.
>
> I've seen this kind of thing happen periodically since we switched to
> using guile-ssh for offloaded builds.

Which guix-daemon version is hydra running?

Commit a708de151c255712071e42e5c8284756b51768cd adds a safeguard to make
sure timeouts are honored, though there might be some cases where it
doesn’t quite work as expected (I suspect libssh handles EINTR
internally by looping, in which case our signal handling async doesn’t
get a chance to run.)

> On Hydra I can monitor the builds and investigate when a given build
> seems to be taking far too long, and I can kill those jobs to free up
> the build slots.  There's no way to kill the builds from Hydra's web
> interface, but I can kill them manually by logging into Hydra.
>
> This might become a more serious problem on Berlin, as we add ARM build
> slaves that are not on the same local network as Berlin itself, until
> the web interface allows for this kind of monitoring and intervention.

The current situation on berlin is suboptimal: I run ‘guix processes’
when I suspect something is wrong, and that’s how I found about
<https://issues.guix.info/issue/33239>.

Thanks,
Ludo’.