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 344776 - Evolution 2.6.2 hangs/crashes on almost anything with an Exchange server account
Evolution 2.6.2 hangs/crashes on almost anything with an Exchange server account
Status: RESOLVED FIXED
Product: Evolution Exchange
Classification: Deprecated
Component: Connector
unspecified
Other All
: Normal critical
: ---
Assigned To: Connector Maintainer
Ximian Connector QA
Depends on:
Blocks:
 
 
Reported: 2006-06-13 16:18 UTC by Andrig Miller
Modified: 2006-08-21 21:41 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
Screen host of CPU going to 100% when Evolution hangs. (84.51 KB, image/png)
2006-06-16 19:11 UTC, Andrig Miller
Details
GDB thread backtrace for Evolution when hung. (9.24 KB, text/plain)
2006-06-16 19:12 UTC, Andrig Miller
Details
GDB thread backtrace for the evolution data server 1.6 when hung. (1.84 KB, text/plain)
2006-06-16 19:14 UTC, Andrig Miller
Details
GDB thread backtrace for the evolution exchange storage when hung. (1.89 KB, text/plain)
2006-06-16 19:15 UTC, Andrig Miller
Details
This is the stacktrace from Bug Buddy when Evolution crashes. (10.00 KB, text/plain)
2006-06-16 19:51 UTC, Andrig Miller
Details
This is the stacktrace from GDB when Evolution crashes instead of hanging. (1.57 KB, text/plain)
2006-06-16 19:53 UTC, Andrig Miller
Details

Description Andrig Miller 2006-06-13 16:18:55 UTC
Steps to reproduce:
1. Start Evolution
2. It will authenticate to Exchange successfully, start scanning folders, retrieving messages, etc. (which takes a long time), then I see a large CPU spike that stays at 100%, with zero network activity, and the application is just hung.  Sometimes it crashes, and sometimes it loses connectivity to the backend process.
3. Kill everything and restart, and sometimes it will make to where I can start using it, like reading e-mails, but within the first two or three e-mails it will hang on a delete, or move message operation, or any operation for that matter.


Stack trace:


Other information:
I am running Evolution 2.6.2 on Fedora Core 5 with all the latest patches applied.
Comment 1 Jay Thorne 2006-06-14 04:27:11 UTC
I'm experiencing the same bug with a 100% fail rate. Same OS. Same patches. Same versions. Evolution was fine this morning before I updated. 2.6.1 was fine, and even reliable.

Also, earlier this week I was experiencing Bug 333228, 344196, 334373, 332979 and other issues. 

I run evolution with camel debug turned on and get get a 100% reproducible crash in the same location, every single time. If I use a different client and change the amount of email in the Inbox, the crash happens with a slightly different folder.

It appears the exchange storage is doing a hand coded assert() here.

I can run any other debug you would like.

$ CAMEL_VERBOSE_DEBUG=1 evolution 
....

CamelStore('exchange://jthorne;auth=NTLM@LAYER7-MX0/;filter_junk;ad_server=mail.l7tech.com;owa_url=https://mail/exchange;save-passwd=true;mailbox=jthorne;owa_path=/exchange;filter;filter_junk_inbox'):get_folder('personal/Customer Support/AG', 0) = 0xe96c18
< 40c05940 >

camel-exchange-provider-ERROR **: file camel-exchange-store.c: line 1098 (stub_notification): should not be reached
aborting...

Comment 2 Sushma Rai 2006-06-15 08:41:27 UTC
known issue. One patch has been commited to cvs already.
so this needs to be tested in 2.6.3.
Leaving it open so that we can test the fix and close it.
Comment 3 Sushma Rai 2006-06-15 08:45:28 UTC
Please get the gdb traces for evolution when it crashes or hangs,
using the gdb command "thread apply all bt"
If the traces are different for hang and crash, please paste 
both of them.
See http://live.gnome.org/GettingTraces for details.
Comment 4 Andrig Miller 2006-06-16 19:11:23 UTC
Created attachment 67493 [details]
Screen host of CPU going to 100% when Evolution hangs.

This is a screenshot of the CPU going to 100% when Evolution hangs.
Comment 5 Andrig Miller 2006-06-16 19:12:58 UTC
Created attachment 67494 [details]
GDB thread backtrace for Evolution when hung.

This is the GDB backtrace for all threads when Evolution is hung after going to 100% CPU.  One thing to note, is that UI still can be clicked on to do something, but nothing ever happens.
Comment 6 Andrig Miller 2006-06-16 19:14:05 UTC
Created attachment 67495 [details]
GDB thread backtrace for the evolution data server 1.6 when hung.

This is the GDB thread backtrace for the evolution data server 1.6 process after Evolution starts to consume 100% CPU and is hung.
Comment 7 Andrig Miller 2006-06-16 19:15:08 UTC
Created attachment 67496 [details]
GDB thread backtrace for the evolution exchange storage when hung.

This is the GDB thread backtrace for the evolution exchange storage process after Evolution starts to consume 100% CPU and is hung.
Comment 8 Andrig Miller 2006-06-16 19:51:00 UTC
Created attachment 67497 [details]
This is the stacktrace from Bug Buddy when Evolution crashes.

I have managed to reproduce the crash situation, and I have attached the stack trace from Bug Buddy when it crashed instead of just hanging.
Comment 9 Andrig Miller 2006-06-16 19:53:45 UTC
Created attachment 67499 [details]
This is the stacktrace from GDB when Evolution crashes instead of hanging.

When Evolution crashes instead of hanging the behavior is interesting.  After the crash, maybe 1 minute or so, the CPU utilization goes to 100%, just like during a hang.  It turns out that the exchange storage process is the one consuming all the CPU.  After a minute or so, and after you I captured the bug buddy trace, and closed everything, the CPU utilization returned to normal.
Comment 10 Jeffrey Stedfast 2006-06-16 20:03:15 UTC
this should be fixed in CVS as of a few hours ago, didn't realise there was a bugzilla.gnome.org bug report about it or I would have updated it sooner :)


the fix was:

Index: camel/camel-stub-marshal.c
===================================================================
RCS file: /cvs/gnome/evolution-exchange/camel/camel-stub-marshal.c,v
retrieving revision 1.2.8.2
diff -u -r1.2.8.2 camel-stub-marshal.c
--- camel/camel-stub-marshal.c  2 Jun 2006 19:08:35 -0000       1.2.8.2
+++ camel/camel-stub-marshal.c  15 Jun 2006 20:27:23 -0000
@@ -86,7 +86,8 @@
 static gboolean
 do_read (CamelStubMarshal *marshal, char *buf, size_t len)
 {
-       size_t n, nread = 0;
+       size_t nread = 0;
+       ssize_t n;
        
        do {
                if ((n = camel_read (marshal->fd, buf + nread, len - nread)) > 0)
Comment 11 Andrig Miller 2006-08-21 21:41:42 UTC
Thanks for the fix here.  I have been successfully using Evolution against my Exchange account today, and everything is working as expected now.  Much better stability and performance.

Thanks for the great work!!!!