Skip to content

The codex vscode plugin fails to start ace-tool mcp, causing an process/thread storm and eventually causing the physical machine to freeze #10581

@NormanMises

Description

@NormanMises

What version of the IDE extension are you using?

0.4.69

What subscription do you have?

api key

Which IDE are you using?

VS Code

What platform is your computer?

Windows connect to remote ssh docker container Linux 5.15.0-60-generic x86_64 x86_64

What issue are you seeing?

When I configure ace-tool or ace-tool-rs or auggie mcp in codex, when I open the vscode codex plugin, it gets stuck, and then I see that the number of process threads in the physical machine is growing wildly, and I know that the physical machine is stuck. Looking at the process, I found that there are many npx ace-tool processes

cat /sys/fs/cgroup/pids.current shows

Image Image

What steps can reproduce the bug?

  1. Configure ace-tool or ace-tool-rs or auggie mcp in codex
  2. Open the vscode codex plugin

What is the expected behavior?

Hopefully MCP works fine and doesn't cause a process/thread storm

Additional information

some log

2026-01-30T02:03:44.211037Z  INFO codex_core::codex::handlers: Shutting down Codex instance
2026-01-30T02:03:44.223477Z  INFO codex_core::shell_snapshot: Shell snapshot successfully created: /root/.codex/shell_snapshots/019bff50-ba39-7191-a81e-6f7b45ab289b.sh
2026-01-30T02:05:57.936375Z  INFO codex_core::stream_events_utils: ToolCall: write_stdin {"session_id":17607,"chars":"\u0003","yield_time_ms":1000,"max_output_tokens":2000}
2026-01-30T02:06:07.445399Z  INFO codex_core::stream_events_utils: ToolCall: exec_command {"cmd":"cd vlfm && echo 'time:' && date && echo 'loadavg:' && cat /proc/loadavg && echo 'cgroup pids.current/max:' && cat /sys/fs/cgroup/pids.current 2>/dev/null && cat /sys/fs/cgroup/pids.max 2>/dev/null && echo 'npx count:' && (pgrep -x npx | wc -l) && echo 'ace-tool-rs count:' && (pgrep -f 'ace-tool-rs' | wc -l) && echo 'process count:' && (ps -e --no-headers | wc -l) && echo 'top 10 by threads (process-level):' && ps -eo pid,nlwp,comm --sort=-nlwp | head -n 11","yield_time_ms":100000,"max_output_tokens":4000}
2026-01-30T02:06:45.618165Z  INFO codex_core::stream_events_utils: ToolCall: exec_command {"cmd":"cd vlfm && echo 'sample npx:' && ps -C npx -o pid,ppid,stat,etime,args --no-headers | head -n 30 | sed -E 's/(--token) [^ ]+/\\1 <REDACTED>/g'","yield_time_ms":100000,"max_output_tokens":4000}
2026-01-30T02:07:17.562698Z  INFO codex_core::stream_events_utils: ToolCall: exec_command {"cmd":"cd vlfm && p=943; echo \"pid=$p\"; ps -p $p -o pid,ppid,stat,etime,cmd --no-headers | sed -E 's/(--token) [^ ]+/\\1 <REDACTED>/g'; pp=$(ps -p $p -o ppid= | tr -d ' '); echo \"ppid=$pp\"; ps -p $pp -o pid,ppid,stat,etime,cmd --no-headers 2>/dev/null || echo 'ppid not found';","yield_time_ms":100000,"max_output_tokens":2000}
2026-01-30T02:07:40.392375Z  WARN codex_core::codex: stream disconnected - retrying sampling request (1/5 in 203ms)...
2026-01-30T02:07:56.065453Z  INFO codex_core::stream_events_utils: ToolCall: exec_command {"cmd":"cd vlfm && echo 'top npx PPIDs:' && ps -C npx -o ppid= --no-headers | sort | uniq -c | sort -nr | head -n 20","yield_time_ms":100000,"max_output_tokens":2000}
2026-01-30T02:08:25.418404Z  INFO codex_core::stream_events_utils: ToolCall: exec_command {"cmd":"cd vlfm && set -euo pipefail\n\nredact(){ sed -E 's/(--token) [^ ]+/\\1 <REDACTED>/g'; }\n\nsnapshot(){\n  echo '---'\n  date\n  echo -n 'pids.current/max: '\n  cat /sys/fs/cgroup/pids.current 2>/dev/null || true\n  echo -n '/ '\n  cat /sys/fs/cgroup/pids.max 2>/dev/null || true\n  echo -n 'npx total: ' && (pgrep -x npx | wc -l || true)\n  echo -n 'npx ace-tool: ' && (pgrep -af 'npx ace-tool' | redact | wc -l || true)\n  echo -n 'ace-tool-rs: ' && (pgrep -af 'ace-tool-rs' | redact | wc -l || true)\n}\n\necho '[before]'\nsnapshot\n\necho '\\n[kill TERM: only ace-tool-related]'\n# 仅杀 ace-tool 相关,避免误伤其他 npx\npkill -TERM -f 'npx ace-tool' || true\npkill -TERM -f 'ace-tool-rs' || true\nsleep 3\n\necho '\\n[mid]'\nsnapshot\n\necho '\\n[kill KILL: leftovers]'\nif pgrep -f 'npx ace-tool' >/dev/null 2>&1 || pgrep -f 'ace-tool-rs' >/dev/null 2>&1; then\n  pkill -KILL -f 'npx ace-tool' || true\n  pkill -KILL -f 'ace-tool-rs' || true\nfi\nsleep 2\n\necho '\\n[after]'\nsnapshot\n","yield_time_ms":100000,"max_output_tokens":4000}
2026-01-30T02:09:42.297560Z  INFO codex_core::stream_events_utils: ToolCall: write_stdin {"session_id":55350,"yield_time_ms":100000,"max_output_tokens":4000}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingextensionIssues related to the VS Code extensionmcpIssues related to the use of model context protocol (MCP) serverswindows-osIssues related to Codex on Windows systems

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions