# Git fsmonitor daemon processes spawn detached on macOS 26 Tahoe and never terminate

2 messages from 2025-11-08 to 2025-11-14. Participants: Jono Spiro, Koji Nakamaru.
Thread: https://gitlist.dev/t/64459

## Jono Spiro, 2025-11-08 21:55

Subject: Git fsmonitor daemon processes spawn detached on macOS 26 Tahoe and never terminate
Message-ID: <CAMqCmsYb409G0CuL+4xZit4V4wqOzD8DtNBe9hmRquBm0Xuevg@mail.gmail.com>
URL: https://gitlist.dev/e/CAMqCmsYb409G0CuL%2B4xZit4V4wqOzD8DtNBe9hmRquBm0Xuevg%40mail.gmail.com

```
Thank you for filling out a Git bug report!
Please answer the following questions to help us understand your issue.

What did you do before the bug happened? (Steps to reproduce your issue)

1. Enabled git fsmonitor: git config --global core.fsmonitor true
2. Used git applications (Xcode, VS Code, GitX, terminal with Starship)
3. Performed normal git operations (open repository, stage files,
navigate directories)
4. Quit applications

What did you expect to happen? (Expected behavior)

fsmonitor--daemon processes should terminate when no longer needed, or
at minimum when
parent applications quit. Expected one daemon per active repository or
so. I am seeing dozens and some users of gitx (which I am a maintainer
on) are seeing thousands of orphaned git processes pile up after
upgrading to Tahoe.

What happened instead? (Actual behavior)

fsmonitor--daemon processes spawn detached (not as children of parent
application) and
never terminate. They accumulate indefinitely (dozens to hundreds over
time). All show:
  git fsmonitor--daemon run --detach --ipc-threads=8

Processes must be manually killed: pkill -f fsmonitor-daemon

What's different between what you expected and what actually happened?

Daemons are spawning detached with no parent-child relationship. They
never receive
termination signals when parent applications quit, causing accumulation and git
index.lock files to remain locked, blocking further git operations.

Anything else you want to add:

- Only occurs on macOS 26.0+ (Tahoe) - not present on earlier macOS versions
- Affects ALL git builds: /usr/bin/git, Homebrew 2.51.2, Xcode Command
Line Tools
- Affects ALL git applications: Xcode, VS Code, GitX, Starship, any git client
- Side effects: system resource exhaustion, locked repositories
- Workaround: git config --global core.fsmonitor false
- Related issue: https://github.com/gitx/gitx/issues/485
- Apple Feedback: FB20956467

Please review the rest of the bug report below.
You can delete any lines you don't wish to share.


[System Info]
git version:
git version 2.51.2
cpu: arm64
no commit associated with this build
sizeof-long: 8
sizeof-size_t: 8
shell-path: /bin/sh
feature: fsmonitor--daemon
libcurl: 8.7.1
zlib: 1.2.12
SHA-1: SHA1_DC
SHA-256: SHA256_BLK
default-ref-format: files
default-hash: sha1
uname: Darwin 25.2.0 Darwin Kernel Version 25.2.0: Sat Nov  1 18:04:14
PDT 2025; root:xnu-12377.60.50.0.2~95/RELEASE_ARM64_T6000 arm64
compiler info: clang: 17.0.0 (clang-1700.3.19.1)
libc info: no libc information available
$SHELL (typically, interactive shell): /bin/zsh


[Enabled Hooks]

```

## Koji Nakamaru, 2025-11-14 07:16

Subject: Re: Git fsmonitor daemon processes spawn detached on macOS 26 Tahoe and never terminate
Message-ID: <CAOTNsDy7Zf6XnjkND3-rXEDXEDWpi6fF4-KhCydBaEqk7OWU6Q@mail.gmail.com>
URL: https://gitlist.dev/e/CAOTNsDy7Zf6XnjkND3-rXEDXEDWpi6fF4-KhCydBaEqk7OWU6Q%40mail.gmail.com
In-Reply-To: <CAMqCmsYb409G0CuL+4xZit4V4wqOzD8DtNBe9hmRquBm0Xuevg@mail.gmail.com>

```
On Sun, Nov 9, 2025 at 6:55 AM Jono Spiro <jono@lostinrecursion.net> wrote:
>
> Thank you for filling out a Git bug report!
> Please answer the following questions to help us understand your issue.
>
> What did you do before the bug happened? (Steps to reproduce your issue)
>
> 1. Enabled git fsmonitor: git config --global core.fsmonitor true
> 2. Used git applications (Xcode, VS Code, GitX, terminal with Starship)
> 3. Performed normal git operations (open repository, stage files,
> navigate directories)
> 4. Quit applications
>
> What did you expect to happen? (Expected behavior)
>
> fsmonitor--daemon processes should terminate when no longer needed, or
> at minimum when
> parent applications quit. Expected one daemon per active repository or
> so. I am seeing dozens and some users of gitx (which I am a maintainer
> on) are seeing thousands of orphaned git processes pile up after
> upgrading to Tahoe.
>
> What happened instead? (Actual behavior)
>
> fsmonitor--daemon processes spawn detached (not as children of parent
> application) and
> never terminate. They accumulate indefinitely (dozens to hundreds over
> time). All show:
>   git fsmonitor--daemon run --detach --ipc-threads=8
>
> Processes must be manually killed: pkill -f fsmonitor-daemon
>
> What's different between what you expected and what actually happened?
>
> Daemons are spawning detached with no parent-child relationship. They
> never receive
> termination signals when parent applications quit, causing accumulation and git
> index.lock files to remain locked, blocking further git operations.
>
> Anything else you want to add:
>
> - Only occurs on macOS 26.0+ (Tahoe) - not present on earlier macOS versions
> - Affects ALL git builds: /usr/bin/git, Homebrew 2.51.2, Xcode Command
> Line Tools

The "git fsmonitor--daemon --detach --ipc-threads=8" command runs in the
background and doesn't terminate when its parent process, such as
VSCode, terminates. This behavior is observed even on macOS Sequoia
15.7.2 (my environment) and previous macOS versions. You can stop it by
the "git fsmonitor--daemon stop" command or using pkill (as you
mentioned).

Setting "git config --global core.fsmonitor true" quickly leads to many
fsmonitor processes, so I avoid using it. Instead, I enable fsmonitor
only for specific large repositories.

> - Affects ALL git applications: Xcode, VS Code, GitX, Starship, any git client
> - Side effects: system resource exhaustion, locked repositories
> - Workaround: git config --global core.fsmonitor false
> - Related issue: https://github.com/gitx/gitx/issues/485
> - Apple Feedback: FB20956467
>
> Please review the rest of the bug report below.
> You can delete any lines you don't wish to share.
>
>
> [System Info]
> git version:
> git version 2.51.2
> cpu: arm64
> no commit associated with this build
> sizeof-long: 8
> sizeof-size_t: 8
> shell-path: /bin/sh
> feature: fsmonitor--daemon
> libcurl: 8.7.1
> zlib: 1.2.12
> SHA-1: SHA1_DC
> SHA-256: SHA256_BLK
> default-ref-format: files
> default-hash: sha1
> uname: Darwin 25.2.0 Darwin Kernel Version 25.2.0: Sat Nov  1 18:04:14
> PDT 2025; root:xnu-12377.60.50.0.2~95/RELEASE_ARM64_T6000 arm64
> compiler info: clang: 17.0.0 (clang-1700.3.19.1)
> libc info: no libc information available
> $SHELL (typically, interactive shell): /bin/zsh
>
>
> [Enabled Hooks]
>

--
Koji Nakamaru

```
