-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
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
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