Fedora Account System
Red Hat Associate
Red Hat Customer
Something (I'm assuming gnome menus has something to do with this based upon the filenames) is trying to continuously add inotify watches on files that don't exist. strace -p `pidof gam_server` shows this .. inotify_add_watch(3, "/home/davej/.config/menus", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) poll([{fd=4, events=0}, {fd=5, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}, {fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 8, 3999) = 0 poll([{fd=4, events=0}, {fd=5, events=POLLIN}, {fd=7, events=POLLIN}, {fd=8, events=POLLIN}, {fd=9, events=POLLIN}, {fd=10, events=POLLIN}, {fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 8, 0) = 0 inotify_add_watch(3, "/home/davej/.config/menus/gnome-screensavers-merged", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/etc/xdg/menus/gnome-screensavers-merged", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/home/davej/.config/menus", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/home/davej/.config/menus/server-settings-merged", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/etc/xdg/menus/server-settings-merged", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/home/davej/.config/menus/system-settings-merged", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/etc/xdg/menus/system-settings-merged", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/home/davej/.config/menus/preferences-merged", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/home/davej/.config/menus/settings-merged", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/etc/xdg/menus/settings-merged", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/home/davej/.config/menus", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/home/davej/.config/menus/applications-merged", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) inotify_add_watch(3, "/home/davej/.config/menus", IN_MODIFY|IN_ATTRIB|IN_MOVED_FROM|IN_MOVED_TO|IN_CREATE|IN_DELETE|IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT|IN_ONLYDIR) = -1 ENOENT (No such file or directory) This could be a lot less work if it just checked for ~/.config first and not bothering with all the subsequent calls. Better yet would be for this to be a single inotify watch on $HOME to watch for the creation of a .config, and only then start doing this polling.
I think this is a duplicate of an existing open bug report (Peter filed it I think?). Anyway, yea we should definitely watch .config and only add the watches when the directories are around. I don't think watching $HOME would be good. it gets so much activity there would be a lot of spurious wakeups, no?
If you're only watching for IN_CREATE activity, there'll not be /that/ much activity. Sure most of it will be unrelated to what we're watching for, but it's still going to be a lot lower overhead than what we're doing now, by changing from a constant "did something happen?" loop to a "something happened, did we care?" event model.
Right, I'm just saying we should watch in ~/.config (which should always be around, and hardly ever changes) instead of watching ~ which changes all the time. (I think that's what you suggested in the second to last paragraph?) Retitling for now, I may mark this as a duplicate if I can find the other report.
*** This bug has been marked as a duplicate of 240385 ***