Linux desktop 26.908.40834: SIGSEGV immediately following inotify watcher exhaustion
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using?
26.908.40834, verified from the installed chatgpt Debian package and the matching Apport crash metadata (not the About dialog).
What subscription do you have?
Not collected during diagnosis.
What platform is your computer?
- Ubuntu 26.04.1 LTS, native Linux desktop with GNOME/Wayland
uname -mprs:Linux 7.0.0-31-generic x86_64 unknown- Approximately 60.6 GiB RAM and 8 GiB swap
- Executable:
/usr/lib/chatgpt/ChatGPT
What issue are you seeing?
The user reports repeated desktop app crashes. One crash is confirmed by Apport as a SIGSEGV in the main ChatGPT desktop process, immediately following a burst of Git file-watcher exhaustion errors.
Confirmed crash metadata:
Date: Fri Sep 11 23:44:09 2026
Package: chatgpt 26.908.40834
ExecutablePath: /usr/lib/chatgpt/ChatGPT
ProcCmdline: /usr/lib/chatgpt/ChatGPT
Signal: 11
SignalName: SIGSEGV
Local timezone was America/Indiana/Indianapolis (UTC-04:00), so this corresponds to 2026-09-12 03:44:09 UTC.
The app's Git worker log contains 431 failed-watch records from 2026-09-12T03:43:36.729Z through 2026-09-12T03:44:09.676Z. Representative error text, with private directory names replaced:
[git-repo-watcher] Failed to watch git path
errorCode=ENOSPC
errorMessage="ENOSPC: System limit for number of file watchers reached, watch '<repo>/.git'"
[git-repo-watcher] Failed to watch git path
errorMessage="inotify_add_watch on '<repo>/.git/refs/heads' failed: No space left on device"
The JavaScript error stack for the ENOSPC records includes:
at FSWatcher.<computed> (node:internal/fs/watchers:323:19)
at watch (node:fs:2609:36)
at xve.startFileWatch (/usr/lib/chatgpt/resources/app.asar/.vite/build/worker.js:516:71676)
This is the watcher error stack, not a decoded native crash backtrace. The main app log also contains repeated ResizeObserver loop completed with undelivered notifications. errors near the exit; their relevance is unknown.
What steps can reproduce the bug?
A deterministic reproduction has not been established. The observed environment and a candidate investigation path are:
- Run the desktop app on native Linux with multiple repositories registered, including a parent directory containing repositories.
- Have other processes consume the same user's inotify allowance. In this incident, multiple external
fff-mcpindexers were running with symlink-following over a search root containing the user's code and notes trees. - Observe repeated
git-repo-watcherENOSPC failures; the confirmed segmentation fault occurred during that failure burst.
Host limits at diagnosis:
fs.inotify.max_user_watches = 65536
fs.inotify.max_user_instances = 1024
fs.inotify.max_queued_events = 16384
Two FFF processes measured later in the investigation each held 14,887 watches. This is a later observation, not an exact accounting of usage at the crash instant. The configuration had 26 saved projects and 35 unique roots, including the parent code directory.
What is the expected behavior?
File-watcher exhaustion should produce a handled failure or degraded operation with a useful diagnostic. It should not result in a native segmentation fault. Retrying failed watchers should be bounded.
Additional information
- Causation is unproven: watcher exhaustion and SIGSEGV are confirmed, but we have not established that the former caused the latter or identified the native faulting function.
- No kernel OOM-kill entry was found in the checked period. The crashed application scope reported a 1.7 GiB memory peak.
- A later exit at 23:46:59 local time was explicitly confirmed by the user as an intentional close and is excluded from the crash evidence.
- FFF has since been disabled and its running processes stopped. No controlled recurrence test has yet been performed; this is not a verified fix.
- Related reports: #23574 and #26904. This report concerns a native Linux desktop SIGSEGV, rather than an IDE watcher allocation report or the WSL process-spawning/OOM behavior described there.
- Only selected metadata and sanitized error excerpts are included. No raw core dump, full crash report, session transcript, credentials, or private project names are attached.
Submitted with the affected user's authorization following local investigation.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the watcher stack at /usr/lib/chatgpt/resources/app.asar/.vite/build/worker.js, especially xve.startFileWatch, and inspect how Linux inotify ENOSPC failures are handled. A controlled reproduction with exhausted inotify watches and a native crash backtrace are still needed. Done means watcher exhaustion is handled with bounded retries and does not lead to a SIGSEGV.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- linux, node.js
- Domain
- desktop, operating-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100