← Back to team overview

dx-packages team mailing list archive

[Bug 1308130] Re: indicator-messages-service is waking up every 4 seconds adding inotifies on paths that don't exist

 

Right, that's a valid concern. The issue is that some code needs to
watch for new files/directories (like the desktop needs to pick new
applications when they get installed), and we don't have anything better
than inotify to do that at the moment.

Our options seem to:
- work on something better than inotify and start using that (not likely to happen soon I guess)
- accept the wakeups and their cost
- keep working around the issues, either by making code use less watching (with the side effect of gettings bugs/not being notified of the environment changes) or by adding hacks (like creating empty directories that are not needed on the default installation)

-- 
You received this bug notification because you are a member of DX
Packages, which is subscribed to indicator-messages in Ubuntu.
Matching subscriptions: dx-packages
https://bugs.launchpad.net/bugs/1308130

Title:
  indicator-messages-service is waking up every 4 seconds adding
  inotifies on paths that don't exist

Status in “indicator-messages” package in Ubuntu:
  Confirmed

Bug description:
  I've observed that an "idle" indicator-messages-services is waking up
  every 4 seconds on a poll() and doing two inotify_add_watch() calls on
  paths that don't exist, which wastes power on devices such as phones.

  strace shows:

  clock_gettime(CLOCK_MONOTONIC, {10117, 224455428}) = 0
  poll([{fd=8, events=POLLIN}, {fd=9, events=POLLIN}], 2, 3991) = 0 (Timeout)
  clock_gettime(CLOCK_MONOTONIC, {10121, 224516469}) = 0
  inotify_add_watch(9, "/usr/local/share/applications", IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|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(9, "/usr/share/ubuntu-touch/applications", IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|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)
  clock_gettime(CLOCK_MONOTONIC, {10121, 232085521}) = 0
  poll([{fd=8, events=POLLIN}, {fd=9, events=POLLIN}], 2, 3984) = 0 (Timeout)
  clock_gettime(CLOCK_MONOTONIC, {10125, 222593684}) = 0
  inotify_add_watch(9, "/usr/local/share/applications", IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|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(9, "/usr/share/ubuntu-touch/applications", IN_MODIFY|IN_ATTRIB|IN_CLOSE_WRITE|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)
  clock_gettime(CLOCK_MONOTONIC, {10125, 229094524}) = 0

  Can these redundant polling checks be reduced or removed?  Polling
  every 4 seconds is a little bit heavy handed IMHO.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/indicator-messages/+bug/1308130/+subscriptions


References