After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 160194 - gnome-panel abuse of the FAM services
gnome-panel abuse of the FAM services
Status: RESOLVED FIXED
Product: gnome-menus
Classification: Core
Component: libgnome-menu
git master
Other Linux
: Normal normal
: ---
Assigned To: gnome-menus dummy account
gnome-menus dummy account
Depends on:
Blocks:
 
 
Reported: 2004-12-02 10:33 UTC by Daniel Veillard
Modified: 2006-09-29 10:00 UTC
See Also:
GNOME target: ---
GNOME version: 2.7/2.8



Description Daniel Veillard 2004-12-02 10:33:27 UTC
while checking gamin debugging facilities, I dumped the set of connections
registrered by applications to the gamin server. In a nutshell, the panel
keeps nearly a hundred FAM monitors, and most of them are duplicated up
to 5 times. I have no idea what is generating the dups, but that mean that
each time there is a change the panel ends up generating 5 time more context
switches as necessary, and need to process all events repeatedly. The code
watching applications directories should probably be refactored ... Or there
is an obvious bug somewhere.

pid 2875 is gnome-panel

Connection fd 21 to pid 2875: state okay, 0 read
  Listener has 98 subscriptions registered
    Subscription 98 reqno 1008 events 1008 dir 1: /usr/share/applications/kde/
    Subscription 97 reqno 1008 events 1008 dir 1: /usr/share/applications/kde
    Subscription 96 reqno 1008 events 1008 dir 1: /usr/share/applications/
    Subscription 95 reqno 1008 events 1008 dir 1: /u/veillard/.recently-used
    Subscription 94 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Development
    Subscription 93 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Utilities
    Subscription 92 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Multimedia
    Subscription 91 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Internet
    Subscription 90 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Applications
    Subscription 89 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Graphics
    Subscription 88 reqno 1008 events 1008 dir 1: /etc/X11/applnk/System
    Subscription 87 reqno 1008 events 1008 dir 1: /etc/X11/applnk
    Subscription 86 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Games
    Subscription 85 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Development
    Subscription 84 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Utilities
    Subscription 83 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/System
    Subscription 82 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Internet
   Subscription 81 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Multimedia
    Subscription 80 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Graphics
   Subscription 79 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps
    Subscription 78 reqno 1008 events 1008 dir 1:
/usr/share/control-center-2.0/capplets
    Subscription 77 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Development
    Subscription 76 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Utilities
    Subscription 75 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Multimedia
    Subscription 74 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Internet
    Subscription 73 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Applications
    Subscription 72 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Graphics
    Subscription 71 reqno 1008 events 1008 dir 1: /etc/X11/applnk/System
    Subscription 70 reqno 1008 events 1008 dir 1: /etc/X11/applnk
    Subscription 69 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Games
    Subscription 68 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Development
    Subscription 67 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Utilities
    Subscription 66 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/System
    Subscription 65 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Internet
    Subscription 64 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Multimedia
    Subscription 63 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Graphics
    Subscription 62 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps
    Subscription 61 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Development
    Subscription 60 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Utilities
    Subscription 59 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Multimedia
    Subscription 58 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Internet
    Subscription 57 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Applications
    Subscription 56 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Graphics
    Subscription 55 reqno 1008 events 1008 dir 1: /etc/X11/applnk/System
    Subscription 54 reqno 1008 events 1008 dir 1: /etc/X11/applnk
    Subscription 53 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Games
    Subscription 52 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Development
    Subscription 51 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Utilities
    Subscription 50 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/System
    Subscription 49 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Internet
   Subscription 48 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Multimedia
    Subscription 47 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Graphics
   Subscription 46 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps
    Subscription 45 reqno 1008 events 1008 dir 1:
/usr/share/control-center-2.0/capplets
    Subscription 44 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Development
    Subscription 43 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Utilities
    Subscription 42 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Multimedia
    Subscription 41 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Internet
    Subscription 40 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Applications
    Subscription 39 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Graphics
    Subscription 38 reqno 1008 events 1008 dir 1: /etc/X11/applnk/System
    Subscription 37 reqno 1008 events 1008 dir 1: /etc/X11/applnk
    Subscription 36 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Games
    Subscription 35 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Development
    Subscription 34 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Utilities
    Subscription 33 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/System
    Subscription 32 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Internet
   Subscription 31 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Multimedia
    Subscription 30 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Graphics
   Subscription 29 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps
    Subscription 28 reqno 1008 events 1008 dir 1: /usr/share/desktop-directories
   Subscription 27 reqno 1008 events 1008 dir 1: /usr/share/applications/kde
    Subscription 26 reqno 1008 events 1008 dir 1: /usr/share/applications
    Subscription 25 reqno 1008 events 1008 dir 1: /usr/share/applnk/Development
    Subscription 24 reqno 1008 events 1008 dir 1: /usr/share/applnk/Utilities
    Subscription 23 reqno 1008 events 1008 dir 1: /usr/share/applnk/Internet
    Subscription 22 reqno 1008 events 1008 dir 1: /usr/share/applnk/System
    Subscription 21 reqno 1008 events 1008 dir 1: /usr/share/applnk/Settings/Network
    Subscription 20 reqno 1008 events 1008 dir 1: /usr/share/applnk/Settings/System
    Subscription 19 reqno 1008 events 1008 dir 1: /usr/share/applnk/Settings
    Subscription 18 reqno 1008 events 1008 dir 1: /usr/share/applnk
    Subscription 17 reqno 1008 events 1008 dir 1:
/usr/share/control-center-2.0/capplets
    Subscription 16 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Development
    Subscription 15 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Utilities
    Subscription 14 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Multimedia
    Subscription 13 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Internet
    Subscription 12 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Applications
    Subscription 11 reqno 1008 events 1008 dir 1: /etc/X11/applnk/Graphics
    Subscription 10 reqno 1008 events 1008 dir 1: /etc/X11/applnk/System
    Subscription 9 reqno 1008 events 1008 dir 1: /etc/X11/applnk
    Subscription 8 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Games
    Subscription 7 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Development
    Subscription 6 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Utilities
    Subscription 5 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/System
    Subscription 4 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Internet
    Subscription 3 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Multimedia
    Subscription 2 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps/Graphics
    Subscription 1 reqno 1008 events 1008 dir 1: /usr/share/gnome/apps

Daniel
Comment 1 Mark McLoughlin 2004-12-02 12:34:03 UTC
Moving to gnome-menus since it probably has the same problem, but if this is
FC3/RHEL4 then it might be worth logging the bug against gnome-vfs2 since its a
different codebase upstream.
Comment 2 Daniel Veillard 2004-12-02 13:05:16 UTC
it's from gnome-panel-2.8.1-3.2E and RHEL-4 beta

Daniel
Comment 3 Mark McLoughlin 2005-04-22 14:56:08 UTC
Okay, should be sorted on HEAD now:

2005-04-22  Mark McLoughlin  <mark@skynet.ie>

        Use FAM directly instead of gnome-vfs and ensure that
        we only ever add a single FAM monitor any given path.
        Should fix bug #160194.

        Oh, also use the FAMNoExists() extension from gamin
        if available - should cut down on a whole heap of
        FAM traffic.

        * configure.in: don't require gnome-vfs, check for FAM
        and FAMNoExists().

        * libmenu/Makefile.am: build menu-monitor.[ch] and
        link against libfam.

        * libmenu/menu-monitor.[ch]: add file/directory monitoring
        implementation using FAM.

        * libmenu/entry-directories.c,
          libmenu/gmenu-tree.c: use the internal monitoring API
        instead of gnome-vfs.

        * python/gmenu.c,
          util/test-menu-spec.c: (main): no need to initialize
        gnome-vfs anymore.

        * python/Makefile.am,
          util/Makefile.am: upd.

Comment 4 Wouter Bolsterlee (uws) 2006-09-29 10:00:02 UTC
May I ask why gnome-vfs is not being used?