openai / openai/codex

Windows desktop: Worker OOM after sustained background Git diff activity

Open
#43,920 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug performance windows-os
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

No raw logs, dumps, conversation content, account identifiers, user paths, repository name, remote URL, or commit hashes are included in this report.

Environment

  • Windows desktop application package version: 26.901.6511.0.
  • System physical memory: approximately 64 GiB.
  • Local Git repository with 52,899 tracked path entries.
  • Multiple application windows/processes were present. The number of actively running agent tasks was not verified.

Observed failure

At 2026-09-08 20:55:55.583 UTC (2026-09-09 04:55:55.583 UTC+8), the desktop main-process log recorded ERR_WORKER_OUT_OF_MEMORY, with message Worker terminated due to reaching memory limit: JS heap out of memory.

Two milliseconds later the worker manager recorded worker exit code 1. Node internal error frames were node:internal/worker:398:26 and node:internal/worker:295:20.

The desktop main process retained the same PID and start time, and continued logging afterward. This event was a Worker failure, not an observed whole-app exit.

Memory evidence

Main-process private bytes, converted to MiB:

Time UTC Private memory MiB
17:30:14 971.0
18:30:08 1809.9
19:30:21 2949.0
20:30:12 4054.3
20:55:48 4559.2
20:56:12 474.0
20:56:56 406.4

About 4085 MiB of main-process private memory was released across the Worker failure. Immediately before it, approximately 16036 MiB of system physical memory was still available. Process private memory is not a direct measurement of the individual Worker's JS heap or its exact limit.

Git correlation

The earlier worker-thread log stopped at 20:55:50.140 UTC, about 5.4 seconds before the OOM. During the 20:00 UTC hour it contained 458 Git log events, of which 448 included canceled. These are log event counts, not a full request census.

Immediately preceding operations repeatedly ran a diff against the same baseline commit, with rename detection and raw/numstat output. Repository identity and commit hash are omitted here.

A new worker-thread log began recording Git activity at 20:58:38.278 UTC. This strongly suggests the Git worker was involved and subsequently recreated, but the Worker error line did not identify workerId directly. The allocating object, retention chain, and the role of cancellation remain unproven.

Reproduction status and requested investigation

This occurred naturally during a long desktop session with a large, changing repository. There is no isolated deterministic reproducer yet. Do not treat the repository size or canceled requests alone as proof of the cause.

Please investigate Git worker query/cache retention, repeated review refresh and cancellation lifetimes. Including workerId and worker heap/GC measurements in the relevant failure diagnostics would help establish the allocating subsystem and distinguish workload peaks from retained data.

The desired behavior is bounded memory during sustained repository activity, and safe resource release when queries are replaced, canceled, or no longer observed.

Mitigation attempted

The proposed Disable Git-Based Review setting was not available in the user's settings UI. The setting was not changed, and no installed application code was patched. Native main-process triage was armed, but no dump was expected for this specific event because the main process survived.

There was a separate earlier whole-app crash; no causal link to this Worker OOM has been established. Evidence for that separate incident is intentionally excluded from this report.

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

No source files or tests are named. Start by locating the Git worker manager and the code handling repeated diff or review refresh cancellation; add the requested worker diagnostics and exercise sustained activity with a large changing repository. Done means identifying the relevant allocation or retention behavior and verifying bounded memory with safe release after replacement or cancellation.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.