ci: record that act_runner ignores max-parallel
ci / integration (push) Successful in 2m54s
ci / lint (push) Successful in 3m5s
ci / unit (push) Successful in 47s
ci / types (push) Successful in 1m11s
ci / security (push) Successful in 1m15s
ci / dockerfile (push) Successful in 29s
ci / chart (push) Successful in 1m39s
ci / image (reconciler) (push) Has been cancelled
ci / image (worker) (push) Has been cancelled
ci / bump (push) Has been cancelled
ci / image (api) (push) Has been cancelled
ci / integration (push) Successful in 2m54s
ci / lint (push) Successful in 3m5s
ci / unit (push) Successful in 47s
ci / types (push) Successful in 1m11s
ci / security (push) Successful in 1m15s
ci / dockerfile (push) Successful in 29s
ci / chart (push) Successful in 1m39s
ci / image (reconciler) (push) Has been cancelled
ci / image (worker) (push) Has been cancelled
ci / bump (push) Has been cancelled
ci / image (api) (push) Has been cancelled
The previous commit claimed max-parallel: 1 would stop two image builds from starving each other. It does not — act_runner ignores strategy.max-parallel. Run #14 had it set and still ran the worker leg from 04:25:47 while reconciler was still building, after api had run alone from 04:23:03 to 04:24:04. That run failed a different way: actions/checkout could not reach Gitea at all (`Failed to connect to gitea-http:3000 after 3105 ms`) while two runs were in flight, with node0 at 140% memory. Same root cause, new mask. The setting stays, since it is correct on runners that honour it, but the comment no longer claims it does anything here. The binding lever is the runner's `capacity`, dropped 2 -> 1 in oci-k8s.
This commit is contained in:
@@ -311,19 +311,15 @@ jobs:
|
||||
contents: read
|
||||
strategy:
|
||||
fail-fast: false
|
||||
# One image at a time. The runner has capacity 2, so without this two buildx builds
|
||||
# run concurrently on a 2-core burstable node that already sits near 80% CPU. Both
|
||||
# then died with:
|
||||
# Kept for correctness on runners that honour it, but do NOT rely on it here:
|
||||
# act_runner IGNORES strategy.max-parallel. Measured in run #14 with this set to 1 —
|
||||
# the api leg ran 04:23:03-04:24:04, then the worker leg started 04:25:47 while
|
||||
# reconciler was still building. Two concurrent, exactly what it was meant to prevent.
|
||||
#
|
||||
# ERROR: failed to solve: DeadlineExceeded: no active session for <id>:
|
||||
# context deadline exceeded
|
||||
#
|
||||
# That is the buildkit session heartbeat between buildx in the job container and
|
||||
# buildkitd in the dind sidecar missing its deadline under CPU starvation — not a
|
||||
# Dockerfile problem. The third leg, which had the node to itself, kept building.
|
||||
#
|
||||
# Serial costs wall-clock and buys builds that finish. Raise it when the runner has
|
||||
# cores to spare, not before.
|
||||
# The lever that actually binds is the runner's own `capacity`, set in oci-k8s
|
||||
# (k8s/roles/addons/tasks/main.yml) and now 1. Contention there is what produced both
|
||||
# `DeadlineExceeded: no active session` in the build and `Failed to connect to
|
||||
# gitea-http:3000` in checkout.
|
||||
max-parallel: 1
|
||||
matrix:
|
||||
svc: [api, worker, reconciler]
|
||||
|
||||
Reference in New Issue
Block a user