Runners fail to maintain heartbeat with GitLab server while building a job
The Glasgow Haskell Compiler installation has been noticing that our Windows jobs often appear as "stuck". The reason for this appears to be that the Windows runners fail to send a heartbeat to the GitLab server while they are processing a job. Consequently our Windows runners often show very long times in the "Last contact" column of the Admin Area table, causing GitLab to conclude that the runners are unavailable.
This is strange since the builds handled by our Windows runners nevertheless proceed and even correctly appear as being in "running" state. Log output is even streamed as expected from running builds.
I see no output in the Windows event log that suggests that anything has gone awry.
The implication of this bug is that runners running long-lived jobs (like GHC builds, which typically take over 60 minutes) show up as offline. Consequently, jobs which are waiting for such a builder are shown to be in "stuck" state. This makes diagnosing real runner issues rather painful.