Commit 7274995
fix(ci): increase apt retry timeout to prevent kill EPERM crash
Restore timeout_minutes from 3 to 5 for the apt-get retry step, and
add retry_on: error to only retry on command failure, not timeout.
The 3-minute timeout was too tight: DPkg::Lock::Timeout=120 means
apt-get can legitimately take up to 120s waiting for the dpkg lock
on each of the two sudo calls (update + install). With slow mirrors
on top, total time can approach or exceed 180s, triggering the
nick-fields/retry timeout. When the timeout fires, the action tries
to process.kill() the sudo child process, but since sudo runs as
root and the runner runs as admin, Node.js gets EPERM — a known
upstream bug (nick-fields/retry#124). The action crashes instead of
retrying.
With timeout_minutes: 5 (300s), even worst-case lock wait (240s) +
slow install (30s) = 270s fits with 30s headroom. apt-get resolves
on its own before the timeout fires, so the kill path is never hit.
Adding retry_on: error ensures retries only happen on actual apt
failures (mirror desync, lock timeout), not on the retry-action's
own timeout — which would crash with EPERM anyway.
Co-authored-by: Cursor <cursoragent@cursor.com>1 parent cc4cc5c commit 7274995
1 file changed
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
119 | | - | |
| 119 | + | |
120 | 120 | | |
121 | 121 | | |
| 122 | + | |
122 | 123 | | |
123 | 124 | | |
124 | 125 | | |
| |||
0 commit comments