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 545898 - crash in Evolution Mail and Calendar: Upon starting, it finish...
crash in Evolution Mail and Calendar: Upon starting, it finish...
Status: RESOLVED DUPLICATE of bug 568332
Product: evolution
Classification: Applications
Component: BugBuddyBugs
2.22.x (obsolete)
Other All
: High critical
: ---
Assigned To: Evolution Triage Team
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2008-08-01 18:29 UTC by Dan
Modified: 2009-05-08 06:15 UTC
See Also:
GNOME target: ---
GNOME version: 2.21/2.22



Description Dan 2008-08-01 18:29:09 UTC
What were you doing when the application crashed?
Upon starting, it finished reading a large (50,000 email) mailbox, then hung using 100% CPU.  Nonresponsive to inputs, did not redraw the window within 5 minutes when minimized and restored.   Not actually a segfault, I sent the signal to generate a crashdump.


Distribution: Debian 3.1
Gnome Release: 2.22.2 2008-05-29 (Debian)
BugBuddy Version: 2.22.0

System: Linux 2.6.26 #1 SMP Wed Jul 23 15:59:39 EDT 2008 x86_64
X Vendor: The X.Org Foundation
X Vendor Release: 10402000
Selinux: No
Accessibility: Disabled
GTK+ Theme: Clearlooks
Icon Theme: gnome

Memory status: size: 629383168 vsize: 629383168 resident: 101621760 share: 20164608 rss: 101621760 rss_rlim: 18446744073709551615
CPU usage: start_time: 1217614614 rtime: 20105 utime: 19941 stime: 164 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/bin/evolution'

Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 140316875028352 (LWP 11198)]
[New Thread 1087699280 (LWP 11223)]
[New Thread 1104992592 (LWP 11218)]
0x00007f9e0d0785ef in waitpid () from /lib/libpthread.so.0
  • #0 waitpid
    from /lib/libpthread.so.0
  • #1 g_spawn_sync
    from /usr/lib/libglib-2.0.so.0
  • #2 g_spawn_command_line_sync
    from /usr/lib/libglib-2.0.so.0
  • #3 gtk_module_init
    from /usr/lib/gtk-2.0/modules/libgnomebreakpad.so
  • #4 _L_unlock_15
    from /lib/libpthread.so.0
  • #5 __lll_lock_wait
    from /lib/libpthread.so.0
  • #6 _L_lock_102
    from /lib/libpthread.so.0


----------- .xsession-errors (589 sec old) ---------------------
** Message: GetValue variable 1 (1)
** Message: GetValue variable 2 (2)
** Message: GetValue variable 1 (1)
** Message: GetValue variable 2 (2)
(evolution:23341): gtkhtml-WARNING **: Cannot create spell dictionary instance (iid:OAFIID:GNOME_Spell_Dictionary:0.3)
(evolution:23341): Bonobo-WARNING **: Activation exception 'Failed to activate 'OAFIID:GNOME_Spell_Control:0.3''
(evolution:23341): e-data-server-WARNING **: Could not open converter for 'none' to 'UTF-8' charset
(evolution:23341): e-data-server-WARNING **: Could not open converter for 'UNKNOWN' to 'UTF-8' charset
CalDAV Eplugin starting up ...
libnm_glib_nm_state_cb: dbus returned an error.
  (org.freedesktop.DBus.Error.ServiceUnknown) The name org.freedesktop.NetworkManager was not provided by any .service files
--------------------------------------------------
Comment 1 Dan 2008-08-01 18:33:51 UTC
Thread #2 was the one eating 100% CPU, here's the backtrace for that one.

(gdb) info threads
  3 Thread 0x41dcd950 (LWP 11218)  0x00007f9e061b3d26 in poll ()
   from /lib/libc.so.6
  2 Thread 0x40d4f950 (LWP 11223)  0x00007f9e0d0724f8 in pthread_mutex_lock ()
   from /lib/libpthread.so.0
  1 Thread 0x7f9e117df780 (LWP 11198)  0x00007f9e0d0785ef in waitpid ()
   from /lib/libpthread.so.0

(gdb) thread 2
[Switching to thread 2 (Thread 0x40d4f950 (LWP 11223))]#0  0x00007f9e0d0724f8 in pthread_mutex_lock () from /lib/libpthread.so.0

(gdb) bt
  • #0 pthread_mutex_lock
    from /lib/libpthread.so.0
  • #1 camel_folder_summary_index
    from /usr/lib/libcamel-provider-1.2.so.11
  • #2 ??
    from /usr/lib/libcamel-provider-1.2.so.11
  • #3 ??
    from /usr/lib/libcamel-provider-1.2.so.11
  • #4 ??
    from /usr/lib/evolution-data-server-1.2/camel-providers-11/libcamelimap.so
  • #5 camel_object_get
    from /usr/lib/libcamel-1.2.so.11
  • #6 camel_folder_get_unread_message_count
    from /usr/lib/libcamel-provider-1.2.so.11
  • #7 update_1folder
    at mail-folder-cache.c line 318
  • #8 folder_changed
    at mail-folder-cache.c line 433
  • #9 camel_object_trigger_event
    from /usr/lib/libcamel-1.2.so.11
  • #10 ??
    from /usr/lib/libcamel-provider-1.2.so.11
  • #11 ??
    from /usr/lib/evolution-data-server-1.2/camel-providers-11/libcamelimap.so
  • #12 ??
    from /usr/lib/evolution-data-server-1.2/camel-providers-11/libcamelimap.so
  • #13 camel_imap_folder_selected
    from /usr/lib/evolution-data-server-1.2/camel-providers-11/libcamelimap.so
  • #14 ??
    from /usr/lib/evolution-data-server-1.2/camel-providers-11/libcamelimap.so
  • #15 mail_msg_proxy
    at mail-mt.c line 523
  • #16 ??
    from /usr/lib/libglib-2.0.so.0
  • #17 ??
    from /usr/lib/libglib-2.0.so.0
  • #18 start_thread
    from /lib/libpthread.so.0
  • #19 clone
    from /lib/libc.so.6
  • #20 ??

Comment 2 Dan 2008-08-01 22:39:38 UTC
reproducable:
1) wipe the .evolution folder.
2) Create a new IMAP account that accesses a very large (50k in my case) mailbox.
3) Connect to IMAP server, allow evo to fetch all headers and finish all tasks.
4) Exit evo
5) restart evo.

step 5 hangs with the status message "Scanning for changed messages in inbox2 (100%)", while being unresponsive and consuming 100% of the CPU.   After approximately 15 minutes, it becomes responsive again, and everything works as expected.

"unresponsive" in this case means not redrawing the window on X11 expose events, no button presses are registered - it looked hung.  I would have killed the process, but I was talking on IRC about the problem, and was surprised when it actually continued.


pertenant section of the log 

CAMEL_DEBUG=all, CAMEL_VERBOSE_DEBUG=1

...

received: * OK Dovecot ready.

sending : A00000 CAPABILITY
received: * CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LIT
ERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS STARTTLS LOGINDISABLED
received: A00000 OK Capability completed.
sending : A00001 STARTTLS
received: A00001 OK Begin TLS negotiation now.
sending : A00002 CAPABILITY
received: * CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LIT
ERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS AUTH=PLAIN AUTH=LOGIN
received: A00002 OK Capability completed.
sending : A
00003 LOGIN xxx xxx
received: A00003 OK Logged in.
sending : A00004 NAMESPACE
received: * NAMESPACE (("" ".")) NIL NIL
received: A00004 OK Namespace completed.
sending : A00005 LIST "" {1+}
*
[snipped folder list]
received: * LIST (\HasNoChildren) "." "inbox2"
received: * LIST (\HasNoChildren) "." "Trash"
received: * LIST (\HasNoChildren) "." "Drafts"
received: * LIST (\Unmarked) "." "INBOX"
received: A00005 OK List completed.
sending : A00006 LSUB "" {1+}
*
received: * LSUB () "." "Trash"
received: * LSUB () "." "Drafts"
received: * LSUB () "." "Sent"
received: * LSUB () "." "Junk"
received: * LSUB () "." "inbox2"
received: * LSUB () "." "INBOX"
received: A00006 OK Lsub completed.
sending : A00007 SELECT INBOX
received: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk $MDNSent $Fo
rwarded Junk NotJunk)
received: * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk
 $MDNSent $Forwarded Junk NotJunk \*)] Flags permitted.
received: * 13005 EXISTS
received: * 0 RECENT
received: * OK [UNSEEN 3010] First unseen.
received: * OK [UIDVALIDITY 1161115722] UIDs valid
received: * OK [UIDNEXT 17573] Predicted next UID
received: A00007 OK [READ-WRITE] Select completed.
sending : A00008 UID FETCH 1:17572 (FLAGS)
received: * 1 FETCH (FLAGS (\Seen NonJunk) UID 1)
received: * 2 FETCH (FLAGS (\Seen NonJunk) UID 2)
received: * 3 FETCH (FLAGS (\Seen NonJunk) UID 3)
received: * 4 FETCH (FLAGS (\Seen NonJunk) UID 4)
received: * 5 FETCH (FLAGS (\Seen NonJunk) UID 5)
received: * 6 FETCH (FLAGS (\Seen NonJunk) UID 6)
received: * 7 FETCH (FLAGS (\Seen NonJunk) UID 7)
received: * 8 FETCH (FLAGS (\Seen NonJunk) UID 8)
received: * 9 FETCH (FLAGS (\Seen NonJunk) UID 9)
received: * 10 FETCH (FLAGS (\Seen NonJunk) UID 10)
received: * 11 FETCH (FLAGS (\Seen NonJunk) UID 11)

[snip FETCH list]
received: A00008 OK Fetch completed.

15 minute pause.  Last message on the status bar is "scanning for changed messages in inbox2 (100%)"   Sharp eyes will notice INBOX on this trace - same problem, lower message count so it only hangs a few minutes instead of 15.

After the pause, the screen redraws and the following is written to the log:

sending : A00009 SELECT INBOX
received: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk $MDNSent $Fo
rwarded Junk NotJunk)
received: * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk
 $MDNSent $Forwarded Junk NotJunk \*)] Flags permitted.
received: * 13005 EXISTS
received: * 0 RECENT
received: * OK [UNSEEN 3010] First unseen.
received: * OK [UIDVALIDITY 1161115722] UIDs valid
received: * OK [UIDNEXT 17573] Predicted next UID
received: A00009 OK [READ-WRITE] Select completed.
sending : A00010 FETCH 13005 UID
received: * 13005 FETCH (UID 17572)
received: A00010 OK Fetch completed.
sending : A00011 SELECT INBOX
received: * FLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk $MDNSent $Fo
rwarded Junk NotJunk)
received: * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft NonJunk
 $MDNSent $Forwarded Junk NotJunk \*)] Flags permitted.
received: * 13005 EXISTS
received: * 0 RECENT
received: * OK [UNSEEN 3010] First unseen.
received: * OK [UIDVALIDITY 1161115722] UIDs valid
received: * OK [UIDNEXT 17573] Predicted next UID
received: A00011 OK [READ-WRITE] Select completed.
sending : A00012 FETCH 13005 UID
received: * 13005 FETCH (UID 17572)
received: A00012 OK Fetch completed.

at this point everything works as expected.
Comment 3 André Klapper 2008-08-02 20:04:27 UTC
Thanks for taking the time to report this bug.
Unfortunately, the stack trace is missing some elements that will help a lot to solve the problem, so it will be hard for the developers to fix that crash.

Could you please help fixing this by installing some debugging packages [1], start the application as normal, and try to reproduce the crash, if possible?

Once bug-buddy pops up, you can find the stacktrace in the 'Details', now containing way more information. Please copy that stacktrace and paste it as a comment here. Thanks in advance!

[1] Please install debug packages for evolution, evolution-data-server, gtkhtml, gtk, glib, gnome-vfs, pango, libgnome and libgnomeui (as far as those packages are provided by your distribution).

More details can be found here: http://live.gnome.org/GettingTraces
Comment 4 Dan 2008-08-04 17:18:47 UTC
Again, this isn't a crash, this is a lockup.  After about 15 minutes of this, it will eventually finish and resume normal operations.   Strace of the busy thread shows the only syscalls are futex (all the locks/unlocks).  No network IO, no disk IO until it completes.  It's spinning through RAM 100% of the time.    vmstat shows no swap or disk activity during the run.

Here's a backtrace of the busy thread from gdb:

(gdb) bt
  • #0 pthread_mutex_lock
    from /lib/libpthread.so.0
  • #1 camel_folder_summary_index
    at camel-folder-summary.c line 355
  • #2 folder_getv
    at camel-folder.c line 357
  • #3 disco_getv
    at camel-disco-folder.c line 221
  • #4 imap_getv
    at camel-imap-folder.c line 495
  • #5 camel_object_get
    at camel-object.c line 1589
  • #6 camel_folder_get_unread_message_count
    at camel-folder.c line 590
  • #7 update_1folder
    at mail-folder-cache.c line 318
  • #8 folder_changed
    at mail-folder-cache.c line 433
  • #9 camel_object_trigger_event
    at camel-object.c line 1495
  • #10 info_set_user_flag
    at camel-folder-summary.c line 3135
  • #11 info_set_user_flag
    at camel-imap-summary.c line 233
  • #12 imap_rescan
    at camel-imap-folder.c line 696
  • #13 camel_imap_folder_selected
    at camel-imap-folder.c line 417
  • #14 imap_refresh_info
    at camel-imap-folder.c line 592
  • #15 camel_folder_refresh_info
    at camel-folder.c line 302
  • #16 mail_msg_proxy
    at mail-mt.c line 523
  • #17 g_thread_pool_thread_proxy
    at /build/buildd/glib2.0-2.16.5/glib/gthreadpool.c line 265
  • #18 g_thread_create_proxy
    at /build/buildd/glib2.0-2.16.5/glib/gthread.c line 635
  • #19 start_thread
    from /lib/libpthread.so.0
  • #20 clone
    from /lib/libc.so.6
  • #21 ??

Comment 5 Milan Crha 2009-04-02 18:17:13 UTC
This should be better in 2.26.0, or 2.24.5, especially because of bug #568332. 

Could you try with one of these and report back, please? Thanks in advance.
(I tend to close this as a duplicate of the above bug, but I would rather wait for your input, if possible.)
Comment 6 Akhil Laddha 2009-05-08 06:15:11 UTC
Please feel free to reopen the bug if the fix doesn't work for you well, thanks.


*** This bug has been marked as a duplicate of 568332 ***