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:

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.

Original post →

More from coding & agent

coding & agent channel →