-
Notifications
You must be signed in to change notification settings - Fork 1.2k
watchman doesn't like buck-out #183
Comments
This is the correct link: https://facebook.github.io/watchman/docs/troubleshooting.html#poison-inotify-add-watch Can you check the permissions on those files? Could it be buck is trying to get watchman to watch a file on which it does not have read permission? cc @wez |
That's crap. Buck started Watchman. Buck created buck-out. I didn't mess with it. Watchman hated on whatever Buck did inside of buck-out while Buck was trying to run a build for me. |
I understand your frustration, but we do need some information from you to help clarify what is going on; I think there are a couple of issues here:
|
|
For 1), this is on our radar; there are pieces available for buck to interrogate watchman to surface this, it just hasn't been done yet. For 2), I suspect that either the access mode was broken (I've seen stuff get chmod'd to random bits in the past) or that the dir went away. The man page isn't clear on the error code reported in this case; we already had code to handle ENOENT because we've seen this in the wild, but this code isn't listed on my current man page. :-/ For 3), the intent of poison states is only to enter them if there is nothing that watchman can do itself to remedy things such that it can give you a sane outcome. It refuses all requests across all watches to ensure that you notice the issue. A dir that is not watchable doesn't warrant this level of response, but perhaps could be surfaced better in any case. |
Let's list |
@davido you should only need to specify |
back-out should be the default value of ignore_dirs without need user config it explicitly. Sent from my Sony Xperia™ smartphone ---- David Ostrovsky wrote ---- Let's list buck-out in .watchmanconfig in its ignore_dirs then [1]. [1] https://gerrit-review.googlesource.com/59450 — |
Totally agreed. |
As pointed out in [1] and documented in [2] add .watchmanconfig file to ignore Buck build directory. This is useful to ignore a directory that contains only build products and where file change notifications are unwanted because of the sheer volume of files. Not to mention that during tests execution temporary directories are created and wiped out that may confuse watchman. [1] facebook/buck#183 [2] https://facebook.github.io/watchman/docs/config.html Change-Id: Ib5a248f9b14006c64fb55d064d8ef5decf6b9061
Per a discussion @wez, @dreiss and I had, that's not really possible since Watchman is also used by tools other than Buck -- in other words, the Watchman process isn't owned by Buck in any sense. I believe the right approach is for Buck to ask Watchman what the ignore directories are and loudly complain when |
99a728c made it so we automatically have watchman ignore any paths in your |
What would still be left to do is to have Buck warn/error when |
Even better, 53f2b60 made us ignore |
Closing, the commits @sdwilsh mentions should have fixed this. Let us know if it happens again. |
To be clear, we don't need to verify that |
I'm turning off watchman for now. Watchman doesn't like my buck-out directory and now tells me it will refuse to work until I go read a webpage.
buck and watchman should figure out how to use buck-out together without me reading about a poison inotify add watch.
Log:
Watchman threw an exception while parsing file changes.
A non-recoverable condition has triggered. Watchman needs your help!
The triggering condition was at timestamp=1408571228: inotify-add-watch(/home/sop/git/gerrit/buck-out/bin/gerrit-acceptance-tests/src/test/jad
All requests will continue to fail with this message until you resolve
the underlying problem. You will find more information on fixing this at
https://facebook.github.io/watchman/troubleshooting.html#poison-inotify-add-watch
[2014-08-20 14:51:44.277][error][command:0030deb7-d702-48f4-eb31-5a7e1f73bb29][tid:57][com.facebook.buck.util.WatchmanWatcher] Error in Watchman output
com.facebook.buck.util.WatchmanWatcherException: A non-recoverable condition has triggered. Watchman needs your help!
The triggering condition was at timestamp=1408571228: inotify-add-watch(/home/sop/git/gerrit/buck-out/bin/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/project/java_test_GarbageCollectionIT_tmp/gerrit_test_1205646360960983060/tmp) -> Permission denied
All requests will continue to fail with this message until you resolve
the underlying problem. You will find more information on fixing this at
https://facebook.github.io/watchman/troubleshooting.html#poison-inotify-add-watch
The text was updated successfully, but these errors were encountered: