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 356649 - massive timer abuse in the gnome system tools backends
massive timer abuse in the gnome system tools backends
Status: RESOLVED FIXED
Product: gnome-system-tools
Classification: Deprecated
Component: general
unspecified
Other All
: Normal major
: ---
Assigned To: Carlos Garnacho
Carlos Garnacho
Depends on:
Blocks: 356586
 
 
Reported: 2006-09-18 23:54 UTC by Allison Karlitskaya (desrt)
Modified: 2006-09-30 21:55 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Allison Karlitskaya (desrt) 2006-09-18 23:54:06 UTC
The perl script that runs 24/7 does this:

Net::DBus::Reactor->main->add_timeout (50, Net::DBus::Callback->new(method => \&Utils::Monitor::do_monitor_files));

This results in 20 wakeups per second.

It's particularly humourously bad because of this:

sub do_monitor_files
{ 
  my ($event, $data, $func, $path, $object);

  return if (!$has_gamin);

....


I don't even have Sys::Gamin on my system.

The real fix for this problem is to get the fd to the gamin socket and register it with Reactor->main->add_read().

This seems to be somewhat impossible, though, as the Sys::Gamin code I found (on CPAN) doesn't let you know the fd.

A workaround for now might be to do these three things:
  (a) massively scale back the poll rate
  (b) only poll when changes in the files will actually matter
  (c) don't poll at all if Sys::Gamin isn't even installed
Comment 1 Sebastien Bacher 2006-09-30 21:55:45 UTC
probably fixed with new version: "- Avoid timeouts during file monitoring (garnacho)"

feel free to reopen if that's not the case