← 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

 

@Oliver, it would be surprising if upstart wouldn't get the same issue.
The problem here is that the mechanism provided by the kernel (inotify)
is not handling those usecases in a nice way, what client is using the
interface is not going to change that, you are just going to move the
wakeups to the upstart job (upstart might be able to reduce/share the
polling if several processes watch the same location though, but I'm
unsure that's the case here)

-- 
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