GNOME Bugzilla – Bug 353927
Evolution wakes up every 2 or 3 seconds
Last modified: 2008-08-01 16:37:34 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)
OK, ignore the set with all the stat()s. That's the fault of a Novell patch to gtk+. The first part still stands.
(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.
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
changing the version as per comment#3
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
+ Trace 203407
And it really does this from time to time, but definitely not so often as before.
I'm sorry, I forget to ask my question: What can we do with this?
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?
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.
(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.
Hehehe, predictably enough, it's inside a timer: Breakpoint 1, 0xb674f750 in inotify_add_watch () from /lib/libc.so.6 (gdb) where
+ Trace 203498
Seems the fault of inotify-*.c from gnome-vfs/modules.
(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.
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.
> 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.
Commit it Milan.
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.
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.)