ChatGPT Desktop Linux bug: empty SIGCHLD handler leaves child processes unreaped
axusnetworks · ghdev · 2026-09-27
A detailed root-cause analysis of openai/codex issue #48554 shows ChatGPT Desktop 26.924.x on Linux installs an empty SIGCHLD handler in the Electron main process, replacing libuv's handler. Since libuv installs its handler only once, no child process is ever reaped afterwards, causing zombie (Z-state) children (bash, git, tar, codex) to accumulate.
Resulting symptoms:
- "Failed to load shell env ... Timed out after 5000ms" on every start (manual probe takes 0.2s)
- False "Git is unavailable" errors despite git working
- Local threads stuck after metadataready; new messages queued but threads never start
A bpftrace probe confirms SIGCHLD is delivered to the main thread with no wait4/waitid following. The author argues this explains issues #48419, #48397, #48225, and #48417. Build 26.917 is unaffected; both bundle libuv 1.52.1, so the Electron runtime archive changed between builds.
More from coding & agent
- The Vanishing Apprentice: How AI Is Reshaping the Junior Developer Role — ArtificialOther · 2026-09-28
- Higgsfield ships 11 production skills that leave Claude with editable project files — xiaohu · 2026-09-28
- AI-generated 7-minute SQLite repo explainer stuns with coherent code walkthrough — deedydas · 2026-09-28
- Is Agentic scores how AI-agent-ready your website is, via a single npx command — seanwbren · 2026-09-28
- SolidBot moves real steel: post-processed robot programs now heading into TCP and accuracy tests — MatthewChang · 2026-09-28
- Grok Bot and Muse too dumb for business agents, says engineer comparing Claude Code — jdjohnson · 2026-09-28