runner-integration: the same Forgejo job is executed by several runners concurrently (duplicate dispatch) #8
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
Forgejo Actions jobs for
OpenIndiana/ips(runs 3 and 4 of that repo, 2026-09-19 evening UTC) are executed by several runner instances at once. The job log for run 4 / jobLinuxshows the runner bootstrap and every step start three times with different timestamps (1789852187, 1789852191, 1789852195/98, 1789852202), e.g.and the illumos job of run 3 prints
system: SunOS job-4e6afc84-...andrunner starting repo=... sha=c0f44e1more than once. In the Forgejo UI this looks like "Set up job" running for 15-35 minutes with a duration counter that keeps resetting, later steps flipping betweenrunningandwaiting, and finally the job being marked failure with no step failing (run 4 / Linux: steps Toolchain, Install cargo-nextest and Format check stillrunning, Complete jobfailure, empty log). The illumos job of run 3 did reach a real (still unexplained, silent)ld returned 1link failure, so VMs do come up, but each job is being provisioned N times.All eight
solstice-forgejo-proxy-Nrunners advertise the same label set, and the 2026-09-14 commits "runner-integration: force a Forgejo task pick every 20 s" and "scan restored in-flight tasks at startup" landed just before this. Hypothesis: multiple proxies claim the same task (or a restarted proxy re-claims an in-flight task) and all execute it, with their runner-side step reports racing on the same job.Where to look
crates/runner-integration: task claim/lease handling across the eight proxy processes; whether the in-flight-task scan at startup re-dispatches tasks another proxy still owns.Repro
Push to
OpenIndiana/ipsmain(workflow.forgejo/workflows/ci.yml, jobs onrustandillumos), then open the job log and countrunner starting/starting step: Toolchainlines.Reported from the Rust IPS CI migration (OpenIndiana/ips#8).
Additional data point from OpenIndiana/ips run 4, job
illumos: the only log line isso while the Linux job of the same run was being executed three times over, the illumos task never got a VM at all within the 35 min watchdog window. Both symptoms are consistent with the proxies fighting over task ownership / orchestrator capacity.