Skip to content

Watchman starting thousands of processes on macOS #1306

@Manbeardo

Description

@Manbeardo

Every once in a while, after an OS reboot, something goes horribly wrong with watchman. When I open VS Code, the Sapling extension queries watchman and suddenly there are several thousand watchman processes and the filesystem gets overwhelmed. Everything that needs to read or write files anywhere becomes painfully slow. It takes ~30s in order to get a prompt in my terminal. For whatever reason, watchman seems to recover and go back to a single process if I kill all the processes with pkill -9 watchman, but that takes a few minutes to run and finding/remembering the command is difficult when the entire system is responding so slowly.

Here's a sample of the output from ps -A | grep watchman while the problem was ongoing:

25483 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
25503 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
25506 ??         0:00.10 watchman --output-encoding bser-v2 get-sockname
25531 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
25567 ??         0:00.02 watchman --output-encoding bser-v2 get-sockname
25587 ??         0:00.06 sl status -Tjson --copies --noninteractive --config extensions.blackbox=! --config fsmonitor.watchman-query-lock=True
25841 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
25842 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
25864 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
25875 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
25930 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
25947 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
25954 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
25975 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
25994 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
26027 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
26080 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
26099 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
26109 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26130 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26167 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26198 ??         0:00.01 watchman --output-encoding bser-v2 get-sockname
26223 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26239 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26256 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26257 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26271 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26299 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26305 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26327 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26357 ??         0:00.00 sl status -Tjson --copies --noninteractive --config extensions.blackbox=! --config fsmonitor.watchman-query-lock=True
26369 ??         0:00.00 watchman --output-encoding bser-v2 get-sockname
26378 ??         0:00.01 /opt/homebrew/bin/watchman --foreground --logfile=/var/folders/_4/4zq95g51367gf8w6jppgv98r0000gn/T//<REDACTED>-state/log --log-level=1 --sockname=/var/folders/_4/4zq95g51367gf8w6jppgv98r0000gn/T//<REDACTED>-state/sock --statefile=/var/folders/_4/4zq95g51367gf8w6jppgv98r0000gn/T//<REDACTED>-state/state --pidfile=/var/folders/_4/4zq95g51367gf8w6jppgv98r0000gn/T//<REDACTED>-state/pid
26379 ??         0:00.00 /bin/launchctl load -F /Users/<REDACTED>/Library/LaunchAgents/com.github.facebook.watchman.plist
26380 ??         0:00.00 /bin/launchctl load -F /Users/<REDACTED>/Library/LaunchAgents/com.github.facebook.watchman.plist

Log: watchman-log.clean.txt

System details

Watchman version: 2025.09.15.00 (installed via homebrew)

macOS version: 15.7.1

Sapling version: 0.2.20250521-115337-25ed6ac4

VS Code version: 1.104.2, e3a5acfb517a443235981655413d566533107e92, arm64

Sapling extension version: 0.1.63

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions