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 353927 - Evolution wakes up every 2 or 3 seconds
Evolution wakes up every 2 or 3 seconds
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: general
2.12.x (obsolete)
Other Linux
: Normal normal
: Future
Assigned To: Harish Krishnaswamy
Evolution QA team
Depends on:
Blocks: 356586
 
 
Reported: 2006-09-02 01:30 UTC by Federico Mena Quintero
Modified: 2008-08-01 16:37 UTC
See Also:
GNOME target: ---
GNOME version: 2.11/2.12


Attachments
proposed evo patch (4.63 KB, patch)
2008-07-30 17:30 UTC, Milan Crha
committed Details | Review

Description Federico Mena Quintero 2006-09-02 01:30:41 UTC
I get this strace which happens every 2 or 3 seconds:

1157159843.226184 poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=26, events=POLLIN}, {fd=67, events=POLLIN}, {fd=22, events=POLLIN}, {fd=18, events=POLLIN}, {fd=43, events=POLLIN}], 9, 0) = 0
1157159843.274366 ioctl(3, FIONREAD, [0]) = 0
1157159843.310148 gettimeofday({1157159843, 318320}, NULL) = 0
1157159843.334151 poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=26, events=POLLIN}, {fd=67, events=POLLIN}, {fd=22, events=POLLIN}, {fd=18, events=POLLIN}, {fd=43, events=POLLIN, revents=POLLIN}], 9, 6989) = 1
1157159845.183995 gettimeofday({1157159845, 184071}, NULL) = 0
1157159845.184193 read(43, "l\4\1\0018\0\0\0I\17\0\0\205\0\0\0\1\1o\0\37\0\0\0/org"..., 2048) = 208
1157159845.184475 read(43, 0x81badd0, 2048) = -1 EAGAIN (Resource temporarily unavailable)
1157159845.184673 ioctl(3, FIONREAD, [0]) = 0
1157159845.184850 gettimeofday({1157159845, 184918}, NULL) = 0

And then, every 15 seconds or so it goes crazy with stat()s:

1157159850.307707 poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=26, events=POLLIN}, {fd=67, events=POLLIN}, {fd=22, events=POLLIN}, {fd=18, events=POLLIN}, {fd=43, events=POLLIN}], 9, 581) = 0
1157159850.891084 gettimeofday({1157159850, 891156}, NULL) = 0
1157159850.891272 stat64("/opt/gnome/share/pixmaps/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
1157159850.891479 stat64("/opt/kde3/share/pixmaps/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
1157159850.891667 stat64("/etc/opt/kde3/share/pixmaps/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)[pid 17873] 1157159850.891857 stat64("/usr/share/pixmaps/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
1157159850.892041 stat64("/usr/local/share/pixmaps/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
1157159850.922625 stat64("/opt/gnome/share/icons/gnome", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
1157159850.962701 stat64("/opt/kde3/share/icons/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
1157159850.983540 stat64("/etc/opt/kde3/share/icons/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
1157159850.983754 stat64("/usr/share/icons/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
1157159850.983939 stat64("/usr/local/share/icons/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
1157159850.984124 stat64("/home/federico/.local/share/icons/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
1157159850.984314 stat64("/home/federico/.icons/gnome", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
1157159850.990432 stat64("/opt/gnome/share/pixmaps/Industrial", 0xbfeb0d30) = -1 ENOENT (No such file or directory)
Comment 1 Federico Mena Quintero 2006-09-02 02:16:05 UTC
OK, ignore the set with all the stat()s.  That's the fault of a Novell patch to gtk+.

The first part still stands.
Comment 2 Mart Raudsepp 2006-09-24 04:55:01 UTC
(In reply to comment #1)
> The first part still stands.

I don't observer this with my evolution-2.8 here.
I'm using an IMAP account that I set to check mail every 5 minutes.
I do see curious wakeups at random intervals between 30 seconds and 1m30sec, but nothing as often as every 2-3 seconds.

Perhaps it's caused by a different mail provider or set of enabled plugins?

This checking was done on the pid of the evolution-2.8 binary, not e-d-s daemon or anything like that.
Comment 3 Kjartan Maraas 2007-10-03 10:50:58 UTC
I'm seeing what Federico reports here with a pop3 account. I straced evolution too:

12:44:28.249076 read(3, "\241 _\263v\0`\3\30\1\0\0\37\1\0\0W\7\0\0v\0`\3\0\0\0\0\0\0\0\0", 4096) = 32
12:44:28.249511 read(3, 0x85e4310, 4096) = -1 EAGAIN (Resource temporarily unavailable)
12:44:28.249791 gettimeofday({1191408268, 249971}, NULL) = 0
12:44:28.250150 select(4, [3], [3], NULL, NULL) = 1 (out [3])
12:44:28.250481 writev(3, [{"\31\0\v\0k\0\0\0\0\0\30\0! \0\0k\0\0\0\30\1\0\0\37\1\0\0W\7\0\0"..., 44}], 1) = 44
12:44:28.250914 read(3, 0x85e4310, 4096) = -1 EAGAIN (Resource temporarily unavailable)
12:44:28.251393 read(3, 0x85e4310, 4096) = -1 EAGAIN (Resource temporarily unavailable)
12:44:28.251667 gettimeofday({1191408268, 251843}, NULL) = 0
12:44:28.251980 poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN, revents=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=18, events=POLLIN|POLLPRI}, {fd=28, events=POLLIN}], 11, 91300) = 1
12:44:30.854844 read(3, "q\0`\263\1\0`\3S% \3\1\0\0\0\5~we\4~weS% \3\370\253\370\277", 4096) = 32
12:44:30.855281 read(3, 0x85e4310, 4096) = -1 EAGAIN (Resource temporarily unavailable)
12:44:30.855561 gettimeofday({1191408270, 855719}, NULL) = 0
12:44:30.855923 read(3, 0x85e4310, 4096) = -1 EAGAIN (Resource temporarily unavailable)
12:44:30.856198 gettimeofday({1191408270, 856356}, NULL) = 0
12:44:30.856493 poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN, revents=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=18, events=POLLIN|POLLPRI}, {fd=28, events=POLLIN}], 11, 88696) = 1
12:44:33.303795 read(3, "\241 `\263v\0`\3\30\1\0\0\37\1\0\0X\7\0\0v\0`\3\0\0\0\0\0\0\0\0", 4096) = 32
12:44:33.304318 read(3, 0x85e4310, 4096) = -1 EAGAIN (Resource temporarily unavailable)
12:44:33.304600 gettimeofday({1191408273, 304759}, NULL) = 0
12:44:33.304954 select(4, [3], [3], NULL, NULL) = 1 (out [3])
12:44:33.305284 writev(3, [{"\31\0\v\0k\0\0\0\0\0\30\0! \0\0k\0\0\0\30\1\0\0\37\1\0\0X\7\0\0"..., 44}], 1) = 44
12:44:33.305697 read(3, 0x85e4310, 4096) = -1 EAGAIN (Resource temporarily unavailable)
12:44:33.306001 read(3, 0x85e4310, 4096) = -1 EAGAIN (Resource temporarily unavailable)
12:44:33.306355 gettimeofday({1191408273, 306513}, NULL) = 0
12:44:33.306650 poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN, revents=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=11, events=POLLIN|POLLPRI}, {fd=12, events=POLLIN|POLLPRI}, {fd=13, events=POLLIN|POLLPRI}, {fd=15, events=POLLIN|POLLPRI}, {fd=14, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=18, events=POLLIN|POLLPRI}, {fd=28, events=POLLIN}], 11, 86245) = 1

This is with 2.12.0
Comment 4 Akhil Laddha 2008-07-21 13:02:02 UTC
changing the version as per comment#3
Comment 5 Milan Crha 2008-07-21 15:08:00 UTC
I cannot reproduce the one with gettimeofday on Evolution 2.22.2 and gnome 2.22.
I also doubt a bit it was evolution's issue at all, because when I try to catch in gettimeofday function, then I can see this backtrace:
Breakpoint 2, 0x00007fffbc1fe7f0 in gettimeofday ()
(gdb) bt
  • #0 gettimeofday
  • #1 gettimeofday
    from /lib64/libc.so.6
  • #2 IA__g_get_current_time
    at gmain.c line 1654
  • #3 IA__g_source_get_current_time
    at gmain.c line 3154
  • #4 g_timeout_check
    at gmain.c line 3422
  • #5 IA__g_main_context_check
    at gmain.c line 2517
  • #6 g_main_context_iterate
    at gmain.c line 2639
  • #7 IA__g_main_loop_run
    at gmain.c line 2850
  • #8 bonobo_main
    from /usr/lib64/libbonobo-2.so.0
  • #9 main
    at main.c line 793

And it really does this from time to time, but definitely not so often as before.
Comment 6 Milan Crha 2008-07-21 15:08:39 UTC
I'm sorry, I forget to ask my question: What can we do with this?
Comment 7 Federico Mena Quintero 2008-07-21 17:44:15 UTC
Hmmm, I'm on evolution-2.22.1 now, and every few seconds I get this:

poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=8, events=POLLIN|POLLPRI}, {fd=10, events=POLLIN|POLLPRI}, {fd=43, events=POLLIN}, {fd=20, events=POLLIN}, {fd=21, events=POLLIN}], 7, 4000) = 0
gettimeofday({1216662198, 364155}, NULL) = 0
inotify_add_watch(43, "/usr/local/share/applications", 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(43, "/usr/local/share/applications", 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)
read(3, 0x8083dd4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1216662198, 364698}, NULL) = 0

What's monitoring that directory, and why does it try to re-add the watch periodically?
Comment 8 Milan Crha 2008-07-22 08:10:48 UTC
Did you receive a mail and the icon blinks in the notification area? Maybe not.
Please run your evo, observe the above behaviour, attach gdb to the running process, and add breakpoint to the gettimeofday  or inotify_add_watch function and then place here the result of the "bt" command of the gdb. (I think the "bt" will be enough, not needed "thread apply all bt", but will see.)
Thanks in advance.
Comment 9 Mart Raudsepp 2008-07-22 09:54:30 UTC
(In reply to comment #8)
> Did you receive a mail and the icon blinks in the notification area? Maybe not.

Even if that were the case, it should not keep causing wakeups forever until the user gets to it. It would be better if it blinked some 5-10 times and then stayed on, as otherwise when the user returns to the computer an hour or more later he'll find a turned off computer instead of a mailing icon blinking and notifying of new mail. See for example how the URGENT hint is handled by the taskbar applet - it glows for some 5 times and then stays on.
Comment 10 Federico Mena Quintero 2008-07-22 14:22:51 UTC
Hehehe, predictably enough, it's inside a timer:

Breakpoint 1, 0xb674f750 in inotify_add_watch () from /lib/libc.so.6
(gdb) where
  • #0 inotify_add_watch
    from /lib/libc.so.6
  • #1 ik_watch
    from /usr/lib/gnome-vfs-2.0/modules/libfile.so
  • #2 ip_start_watching
    from /usr/lib/gnome-vfs-2.0/modules/libfile.so
  • #3 ??
    from /usr/lib/gnome-vfs-2.0/modules/libfile.so
  • #4 g_timeout_dispatch
    at gmain.c line 3443
  • #5 g_main_dispatch
    at gmain.c line 2009
  • #6 IA__g_main_context_dispatch
    at gmain.c line 2561
  • #7 g_main_context_iterate
    at gmain.c line 2642
  • #8 IA__g_main_loop_run
    at gmain.c line 2850
  • #9 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #10 ??
  • #11 __libc_start_main
    from /lib/libc.so.6
  • #12 ??

Seems the fault of inotify-*.c from gnome-vfs/modules.
Comment 11 Milan Crha 2008-07-30 16:26:11 UTC
(In reply to comment #10)
> Seems the fault of inotify-*.c from gnome-vfs/modules.

That can also explain why I do not see that, because 2.23.x uses gvfs instead.
Comment 12 Milan Crha 2008-07-30 17:30:05 UTC
Created attachment 115575 [details] [review]
proposed evo patch

for evolution;

This is for the blinking icons. Do you consider this fixed from Evolution's side after this patch? As shown above, it's not much Evolution's fault, somehow.
Comment 13 Federico Mena Quintero 2008-07-31 15:42:28 UTC
> This is for the blinking icons. Do you consider this fixed from Evolution's
> side after this patch? As shown above, it's not much Evolution's fault,
> somehow.

Yeah, it should be OK after that. I'll get to try Evo 2.23 from openSUSE 11.1 later.
Comment 14 Srinivasa Ragavan 2008-07-31 17:05:01 UTC
Commit it Milan.
Comment 15 Milan Crha 2008-08-01 07:18:44 UTC
Committed to trunk. Committed revision 35875.

Closing as per comment #13, feel free to open fresh new bug against gnome-vfs, even I think it has been moved to deprecate recently.
Comment 16 Federico Mena Quintero 2008-08-01 16:37:34 UTC
Sweet.  Thanks, Milan :)

(My cell phone does this cute thing where it if you get an SMS but don't view it, thephone flashes three or four times, then sleeps for some minutes, then flashes again...  that may be overkill for Evo, though.  If you go back to your machine after being away, you'll see the tray icons anyway.)