fix(forgejo-runner): clean up cancelled startup containers #20
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/forgejo-runner-cancel-cleanup"
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?
Summary
startContainer(), requires a live cleanup context, and checks stop/close orderingEvidence
During the patched
tikicanary, Forgejo terminalized task 77755 as cancelled whilethe runner still reported a local unspecified result, but its idle job container
remained running. This is consistent with cancellation after container creation and
before
startContainer()returned, but a canary with patch 0003 is still required totie that exact production event to the reproduced path.
The new local regression failed before the fix with only
startContainerexecuted;stopContainerandcloseContainerwere never called. It passes after the cleanupfinalizers wrap the complete lifecycle.
Validation
f89f3e3cdb1c89b51c925c78028752d78c2478c1go test -race ./act/runner -run '^TestJobExecutorCleansUpWhenCancelledDuringContainerStart$' -count=10go test ./act/runner -short -count=1go test -race ./internal/pkg/client -count=1go test ./internal/pkg/report ./internal/app/poll ./internal/app/run -count=1go vet ./...db9f24c277a02b04827dfe40d72f182578444ed32ebe2be514355c09c6f6ac3bThe broad
go test ./... -shortrun reached all packages but failed in two unchangedact/containermacOS environment cases: Docker credential lookup returned a Keychainerror, and one option test rejected Docker's reported
darwinserver OS. The changedact/runnerpackage and all directly relevant packages passed.Deploy Runbook
This PR does not deploy anything.
f89f3e3with patches 0001–0003.tikito have zero active task containers.tikibinary, upload the reviewed checksum, install atomically,and restart only
forgejo-runnerontiki.cancellation leaves no task container, plus zero panic, reporter error, zombie
candidate, and service restart.
forgerequires a separate production checkpoint.Rollback is the existing exact binary backup restoration plus a runner restart on the
single canary host.
Spec Drift Callouts
None.