A job held for a busy runner shows as running and waits for hours: hub run 536 build sat 2 h behind a job at its time limit issue #100
open andymccall opened this · 0 comments
andymccall
Seen 2026-11-01 on andymccall/oxygenhub run #536: the build job showed running on earth-1 from about 16:27 to 18:19 GMT, but earth-1 had not started it. earth-1 was busy with job 13659 (doomsdayone/metalgear2), which ran to its time limit (exit None (stopped at the time limit) at 18:19:50); the build was claimed four seconds later (job 13837 … build at 18:19:54). Everything after build (coverage, dist, test, test-postgres) waited behind it, so a two-minute deploy took two hours.
Two problems:
The run page says running when the job is only placed. A job held for a runner that is busy should read "waiting for earth-1 (busy with doomsdayone/metalgear2 #… until …)", not running, and its time should not count as run time.
A hold for a better runner has no bound. Placement held the job for earth-1 (it holds the build cache) for the whole of another job's two hours. A hold should end after a short while (minutes, against the expected time of the job it waits behind) and the job go to the next runner that can take it.
Tests: a job placed on a busy runner shows waiting, not running; a hold that outlasts its bound releases the job to another runner.
Seen 2026-11-01 on andymccall/oxygenhub run #536: the
buildjob showed running on earth-1 from about 16:27 to 18:19 GMT, but earth-1 had not started it. earth-1 was busy with job 13659 (doomsdayone/metalgear2), which ran to its time limit (exit None (stopped at the time limit)at 18:19:50); the build was claimed four seconds later (job 13837 … buildat 18:19:54). Everything afterbuild(coverage, dist, test, test-postgres) waited behind it, so a two-minute deploy took two hours.Two problems:
Tests: a job placed on a busy runner shows waiting, not running; a hold that outlasts its bound releases the job to another runner.