openai / openai/codex

Linux desktop app crashes with SIGILL when a conversation is bound to a git repository

Open
#41,636 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

Versions affected: 26.825.41651 and 26.825.51511, official Linux deb, x86_64. Reproduced on three consecutive builds.

Environment: NixOS unstable. The package wraps the official deb with autoPatchelf; system git is on PATH. The crash is in app JS, not the wrapper.

Repro (two steps, no interaction beyond selection):

  1. New conversation, then Choose Project.
  2. Select any real git working repository (tested with repos of 400 to 1200 commits, 5 to 8 MB .git).

The app dies instantly, before any message is sent. Opening an existing thread whose working directory is a git repo triggers the same crash. Conversations in non-git directories and cloud threads are unaffected.

Signature: The crash is in the background git worker thread (thread name git in coredumps). V8 fatal calls node::GetNodeReport, then the ud1 trap kills the process (SIGILL, si_code ILL_ILLOPN). The stack is exhausted at the moment of the fatal, so no error message ever reaches stderr or any log. Request-level tracing of the worker shows the last handled operations are subscribe-live-query for current-branch on the repo root, then current-branch, then death. Consistent with runaway synchronous recursion in the live-query watcher setup path.

Ruled out:

  • V8 heap OOM: an 8 GB heap cap changes nothing; the repro repos are small.
  • Unhandled promise rejections: explicit catch around the fire-and-forget subscribe-live-query dispatch plus process.on('unhandledRejection') handlers never fired. The fault is synchronous.
  • Contention with other codex processes: crash persists with every other codex app-server on the host stopped.
  • Thread or rollout format skew: crashes with no thread involved at all, only a repo selection.
  • Local app state: identical crash with a fully wiped Chromium profile and again with an isolated, fresh CODEX_HOME containing no CLI threads and no shared state.

Evidence available on request: 20+ coredumps across builds, the request-level trace of the terminal sequence, and per-build reproduction logs.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce on the Linux desktop app by selecting a real git repository, then inspect the background git worker around the subscribe-live-query operations for current-branch. Use the available coredumps and request-level trace to confirm the recursion or stack exhaustion path; done means repository-bound conversations no longer crash while non-git and existing-thread cases remain functional.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, javascript, linux, node.js
Domain
desktop, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.