openai / openai/codex

[macOS] ChatGPT 26.901.51231 renderer-client-id=5 busy-loops at 100% CPU in V8 JIT; UI frozen

Open
#43,146 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

What version of the Codex App are you using (From “About Codex” dialog)?

ChatGPT / Codex desktop 26.901.51231 (build 8109). Embedded Chromium / Codex Framework 152.0.7977.83.

What subscription do you have?

ChatGPT (desktop app signed in with ChatGPT auth; exact plan not confirmed in this report).

What platform is your computer?

Darwin 23.6.0 arm64 arm
macOS 14.8.3 (23J220), Apple M1, 16 GB

What issue are you seeing?

The ChatGPT macOS window becomes permanently unresponsive (no clicks, no typing). Force Quit is required.

This is a renderer hang, not a main-process hang.

  • Main process ChatGPT (PID 78334, CrBrowserMain) stays at ~0% CPU, idle in CFRunLoop.
  • Child Codex (Renderer) --renderer-client-id=5 (PID 78400) uses 100% of one CPU core for the entire session.
  • Other renderer processes remain idle.
  • Hung renderer physical footprint ~746 MB.

An 8-second sample of PID 78400 (1 ms interval, 4024 samples) puts 4024/4024 samples on com.apple.main-thread inside V8 JIT. The compositor and IO threads are idle (kevent64 / mach_msg). HangWatcher is present and sleeping.

Heaviest stack (symbols in Codex Framework are stripped, so some names are nearby exports):

4024 Thread  DispatchQueue_1: com.apple.main-thread
  ChromeMain
  v8::MicrotasksScope::~MicrotasksScope()
  v8::ScriptCompiler::ScriptStreamingTask::Run()
  ???  (in <unknown binary>)   <-- V8 JIT, ~99% of samples

Full samples (secret gist):
https://gist.github.com/wych42/e67c124561c39ceb362d8bbc9f2dadd0

Files:

  • sample-Codex-Renderer-78400.txt (the hang)
  • sample-ChatGPT-main-78334.txt (main process, idle)
  • environment.txt
  • README.md
What steps can reproduce the bug?
  1. Launch /Applications/ChatGPT.app (this session started 2026-09-06 10:02:23 +0800).
  2. Main window loads app://-/index.html.
  3. Click an existing Codex thread in the sidebar.
  4. UI stops accepting input.
  5. Activity Monitor shows Codex (Renderer) at 100% CPU until the app is killed.

Relaunch did not recover; the new session spun the same way.

macOS sample captured while still hung: 2026-09-06 10:18:25 +0800 (about 16 minutes after launch, CPU time of the renderer matched wall time).

I do not have a minimized standalone repro. Opening that existing thread is the last user action before the freeze.

What is the expected behavior?

The window should keep processing input. A long or previously used Codex thread should not pin the renderer main thread in a JavaScript busy loop.

Additional information

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

Start with README.md, environment.txt, and sample-Codex-Renderer-78400.txt, then compare the renderer samples with sample-ChatGPT-main-78334.txt. Reproduce by opening the existing Codex thread from app://-/index.html and review related issues 36117 and 35236. Done means the renderer no longer pins its main thread at 100% CPU and the window remains responsive.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos
Domain
desktop, 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.