-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libinotify open() considerations #10
Comments
Hi! Thanks for report and sorry for a delay with reply (I am in a trips now so slow on response). I will try to fix it after return. So the main idea is to skip named pipes and to use NOFOLLOW? -Dmitry |
2014-08-16 22:07 GMT+04:00 Dmitry Matveev notifications@github.com:
Yep. But, please, don't treat me as an expert in this area. :) WBR, |
Though initially I've thought that following symlinks is a feature and not a bug, the original Linux |
@dmatveev, actually it does. It provides notifications about symlinks itself (without following). I can prepare a tiny inotify-based program to prove it :) |
It is exactly what I meant. I've already did some tests, but they had break my Linux system, and now I am currently repairing it. So be careful. |
* Fixed some typos * Added test for direct symlink watches (in this case, all events should be delivered to the user)
libinotify tries to open named pipes (FIFOs) as well as other files. And this leads to lockups because those files are usually either already open, or would be open soon. In particular, that breaks Kile 2.1 (KDE4 version) on OpenBSD, when "inotify" method is used in KDirWatch: Kile creates named pipes in home directory to talk with LyX server, and then tries to use them. But there is a KDirWatch object being created at other place in program, that monitors home directory, too. As a result, Kile gets stuck at watch_init().
Even more, actually Kile creates symlinks to pipes created under /tmp; this uncovers that libinotify doesn't use O_NOFOLLOW when adding a watch - IMHO, that's a bug, too.
The text was updated successfully, but these errors were encountered: