fix: cap caddy-validate download timeout (implements #1127) #1131

Merged
disinto-admin merged 1 commit from hotpatch/1127-caddy-timeout into main 2026-04-21 15:19:32 +00:00

Implements #1127.

One-line diff

-      - curl -sS -o /tmp/caddy "https://caddyserver.com/api/download?os=linux&arch=amd64"
+      - curl -fsSL --connect-timeout 10 --max-time 60 -o /tmp/caddy "https://caddyserver.com/api/download?os=linux&arch=amd64"

Why

Without a timeout, a stuck curl holds the Woodpecker agent for its full ~1h deadline. Agent capacity is 1 parallel pipeline, so this blocks the entire factory. Seen 2026-04-21 — one container ran curl caddyserver.com for 55 minutes while 30+ workflows piled up behind it. Full diagnosis in #1124.

Flag flavor

  • --connect-timeout 10 — fail fast on network unreachable
  • --max-time 60 — cap total wall time at 60s
  • -f — non-zero on HTTP errors (original -sS swallowed 5xx)
  • -L — follow redirects (future-proofing against caddyserver URL changes)

Context for the reviewer

  • Authored by a human operator, not a dev-agent. Filed manually to unstick the factory. Every abandoned dev-agent PR for this issue would have hit the same perma-pending CI and timed out.
  • Dev-agents are currently paused (.dev-active state files removed in disinto-agents and disinto-agents-llama) until this lands.
  • This PR's own CI pipeline will run with the NEW edge-subpath.yml, so caddy-validate will complete in ≤60s instead of hanging. The previous pile-up can't repeat on this PR.
  • After merge: re-enable dev-agents by recreating the .dev-active state files.

Closes #1127.

Implements #1127. ## One-line diff ```diff - - curl -sS -o /tmp/caddy "https://caddyserver.com/api/download?os=linux&arch=amd64" + - curl -fsSL --connect-timeout 10 --max-time 60 -o /tmp/caddy "https://caddyserver.com/api/download?os=linux&arch=amd64" ``` ## Why Without a timeout, a stuck `curl` holds the Woodpecker agent for its full ~1h deadline. Agent capacity is 1 parallel pipeline, so this blocks the entire factory. Seen 2026-04-21 — one container ran `curl caddyserver.com` for 55 minutes while 30+ workflows piled up behind it. Full diagnosis in #1124. ## Flag flavor - `--connect-timeout 10` — fail fast on network unreachable - `--max-time 60` — cap total wall time at 60s - `-f` — non-zero on HTTP errors (original `-sS` swallowed 5xx) - `-L` — follow redirects (future-proofing against caddyserver URL changes) ## Context for the reviewer - **Authored by a human operator**, not a dev-agent. Filed manually to unstick the factory. Every abandoned dev-agent PR for this issue would have hit the same perma-pending CI and timed out. - Dev-agents are currently paused (`.dev-active` state files removed in `disinto-agents` and `disinto-agents-llama`) until this lands. - This PR's own CI pipeline will run with the NEW `edge-subpath.yml`, so `caddy-validate` will complete in ≤60s instead of hanging. The previous pile-up can't repeat on this PR. - After merge: re-enable dev-agents by recreating the `.dev-active` state files. Closes #1127.
disinto-admin added 1 commit 2026-04-21 15:15:21 +00:00
fix: cap caddy-validate download timeout (implements #1127)
Some checks failed
ci/woodpecker/pr/edge-subpath Pipeline is pending
ci/woodpecker/push/ci Pipeline failed
ci/woodpecker/pr/ci Pipeline failed
5d93ff3980
The caddy-validate step's `curl -sS` has no network timeout, so when
the download hangs (seen repeatedly on 2026-04-21 — queue of 30+
workflows backed up behind a single 55-minute-stuck curl), the step
runs to the Woodpecker agent's ~1h deadline before moving on. With
agent capacity=1 pipeline, this blocks the entire factory.

Cap it:
  --connect-timeout 10   fail fast on network unreachable
  --max-time 60          cap total wall time at 60s
  -f                     non-zero on HTTP errors (-sS would swallow 5xx)
  -L                     follow redirects

If the download is unreachable the step now fails in ~60s instead of
hanging for an hour, and the queue keeps moving.

Diagnosis and full reproduction in #1124. Backlog tracking in #1127.

Co-authored-by: Claude (ops) <claude@anthropic.local>
disinto-admin scheduled this pull request to auto merge when all checks succeed 2026-04-21 15:16:16 +00:00
disinto-admin canceled auto merging this pull request when all checks succeed 2026-04-21 15:16:28 +00:00
disinto-admin merged commit e897d83115 into main 2026-04-21 15:19:32 +00:00
disinto-admin deleted branch hotpatch/1127-caddy-timeout 2026-04-21 15:19:32 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: disinto-admin/disinto#1131
No description provided.