Skip to content

emrg: guard icon-gen step against runner hangs (apt/Chrome headless timeouts) - #872

Merged
argszero merged 1 commit into
masterfrom
feature/gen-assets-timeout-guard
Aug 19, 2026
Merged

emrg: guard icon-gen step against runner hangs (apt/Chrome headless timeouts)#872
argszero merged 1 commit into
masterfrom
feature/gen-assets-timeout-guard

Conversation

@argszero

Copy link
Copy Markdown
Owner

The v0.2.55 Build Release (run 32233055863) hung deterministically on the ubuntu-24.04 x86_64 job at the 'Generate icon assets' step — twice (fresh run + rerun), ~12-19 min each, and had to be cancelled. Root cause: the step has no timeout anywhere in the path:

  • sudo apt-get update && apt-get install librsvg2-bin can block forever on a slow/network-starved runner;
  • the gen-assets.sh Chrome/Chromium headless fallback has no timeout, so a hung Chrome blocks the job indefinitely (the previous 4/5 jobs were already SUCCESS — only this step stalled).

Changes (2 files, +19/-3):

  • packaging/gen-assets.sh: wrap the Chrome headless renderer with timeout 90 (when the timeout binary exists) so a stuck renderer falls through to the next renderer; add --no-sandbox on Linux (runner container); document the v0.2.55 lesson inline.
  • .github/workflows/build-release.yml: guard the Linux apt-get update/install with timeout 180 each, falling back to the (now time-bounded) Chrome headless path on failure.

Verification: bash -n packaging/gen-assets.sh OK, workflow YAML parses, local bash packaging/gen-assets.sh regenerates all assets (icon.png/512/256/icns/ico), full suite 976 passed + 1 skipped (977 collected, doc-count guard consistent).

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle. Root cause verified (v0.2.55 Build Release 32233055863 hung on ubuntu x86_64 'Generate icon assets' twice — other 4 jobs SUCCESS), fix adds timeouts at both apt-get and Chrome-headless sites plus Linux --no-sandbox; bash -n + YAML parse + local gen-assets run + full suite (976 passed + 1 skipped) all green.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle. Head unchanged (33a79c5), CI test + test-windows both PASS (run 32236993767), diff re-verified: timeout guards at apt-get (180s) and Chrome headless (90s) + Linux --no-sandbox. Second consecutive.

@argszeroargszero left a comment

Copy link
Copy Markdown
OwnerAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ LGTM — cycle. Head unchanged (33a79c5), CI test + test-windows both PASS (run 32236993767), MERGEABLE/CLEAN. Third consecutive approval.

@argszero
argszero merged commit ad6448b into masterAug 19, 2026
2 checks passed
@argszero
argszero deleted the feature/gen-assets-timeout-guard branch August 19, 2026 09:28
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@argszero