1db1c46b32
Run #2005's Health Check job hung for 18+ minutes (well past its own timeout-minutes: 10) instead of failing within seconds. Killed the zombie container manually via 'docker kill' on the runner host. Root cause: the pre-fix curl calls to the unreachable $DEPLOY_HOST:5000 had no --connect-timeout/--max-time, so each of the 20 retry attempts could hang on the OS's default TCP timeout instead of failing fast; the job-level timeout-minutes didn't reliably cut it off either (act_runner enforcement gap, not something we control from the workflow file). This is now largely moot after the previous commit (health checks run against 127.0.0.1 on the server itself, where curl returns near-instantly), but added explicit timeouts everywhere as a second line of defense against the same failure mode recurring: - Gitea API curl calls (release fetch, artifact download): --connect-timeout 10 --max-time 30/120 - Local 127.0.0.1 health-check curls: --connect-timeout 5 --max-time 10 - All ssh/scp invocations: -o ConnectTimeout=10 No single curl or ssh call in this workflow should now be able to hang indefinitely.