Skip to content

Memory leaks after deleted worktree enters infinite cleanup loop #57313

@RomanKornev

Description

@RomanKornev

Reproduction steps

  1. Start from a clean Zed install/profile.
  2. Open a project/workspace in Zed.
  3. Open a file from a temporary external worktree, for example a file under .codex/worktrees/<id>/repo/docs/file.md.
  4. Delete that external worktree on disk while the file/workspace is still persisted in Zed state.
  5. Keep using Zed for a while, or reopen the main workspace.
  6. Watch ~/Library/Logs/Zed/Zed.log and Activity Monitor.
  7. Watch memory usage go up.
Image

Current vs. Expected behavior

Current behavior: Zed repeatedly logs that the deleted single-file worktree root cannot be canonicalized, marks it deleted, then tries to close it again. The main Zed process grows to multiple GB of memory. In my case it reached ~3.7 GB physical footprint, mostly IOSurface, MALLOC_SMALL, and MALLOC_TINY, while language-server children were only ~170 MB total.

Expected behavior: once Zed detects that a persisted file/worktree path no longer exists, it should remove or invalidate that stale workspace/editor entry once, stop retrying it, and not retain several GB of main-process heap/graphics memory.

Zed version and system specs

Zed: v1.2.3+stable.273.ede077939fbe732d38afe7cf2576d3a19ef3ca57 (Zed)
OS: macOS 15.5
Memory: 24 GiB
Architecture: aarch64

Attach Zed log file

Zed.log
2026-05-20T20:51:38+01:00 ERROR [worktree] root path could not be canonicalized: canonicalizing "/Users/<user>/.codex/worktrees/<id>/<repo>/docs/<file>.md": No such file or directory (os error 2)
2026-05-20T20:51:38+01:00 INFO  [worktree] single-file worktree root "/Users/<user>/.codex/worktrees/<id>/<repo>/docs/<file>.md" no longer exists, marking as deleted
2026-05-20T20:51:38+01:00 INFO  [worktree] worktree root /Users/<user>/.codex/worktrees/<id>/<repo>/docs/<file>.md no longer exists, closing worktree
2026-05-20T20:51:39+01:00 ERROR [worktree] root path could not be canonicalized: canonicalizing "/Users/<user>/.codex/worktrees/<id>/<repo>/docs/<file>.md": No such file or directory (os error 2)
2026-05-20T20:51:39+01:00 INFO  [worktree] single-file worktree root "/Users/<user>/.codex/worktrees/<id>/<repo>/docs/<file>.md" no longer exists, marking as deleted
2026-05-20T20:51:39+01:00 INFO  [worktree] worktree root /Users/<user>/.codex/worktrees/<id>/<repo>/docs/<file>.md no longer exists, closing worktree

Relevant Zed settings

settings.json

Relevant Keymap

keymap.json

(for AI issues) Model provider details

No response

If you are using WSL on Windows, what flavor of Linux are you using?

None

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:performance/memory leakFeedback for memory leaksfrequency:uncommonBugs that happen for a small subset of users, special configurations, rare circumstances, etcpriority:P1Security holes w/o exploit, crash, install/update, sign-in, badly broken common features

    Type

    No fields configured for Bug.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions