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 344196 - evolution-connector-2.6.2 causes massive CPU usage, instability
evolution-connector-2.6.2 causes massive CPU usage, instability
Status: RESOLVED FIXED
Product: Evolution Exchange
Classification: Deprecated
Component: Connector
2.6.0
Other All
: Urgent critical
: ---
Assigned To: Sankar P
Ximian Connector QA
: 332562 343516 344391 344656 344879 345987 346938 348037 348586 348768 349676 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2006-06-07 19:19 UTC by Eric Bair
Modified: 2006-09-28 16:51 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
Proposed fix (2.42 KB, patch)
2006-06-21 16:34 UTC, Arunprakash
none Details | Review
camel-stub-marshal.c diff vs. FC5 source (716 bytes, patch)
2006-06-23 13:46 UTC, spaavola
none Details | Review
Partial fix (962 bytes, patch)
2006-07-10 11:15 UTC, Arunprakash
none Details | Review
Consolidated patch (1.54 KB, patch)
2006-07-24 14:47 UTC, Sushma Rai
committed Details | Review
One more patch related to this issue, submitted by vvaradhan@novell.com (710 bytes, patch)
2006-08-10 08:46 UTC, Sushma Rai
committed Details | Review

Description Eric Bair 2006-06-07 19:19:24 UTC
Please describe the problem:
I upgraded to evolution-connector-2.6.2 yesterday, and something seems to be broken in the new release.  When I opened evolution after the upgrade, I noticed that it was using almost 100% of the CPU.  I tried closing evolution, but the program hung when I selected "Quit" under the "File" menu.  In order to get evolution to close, I had to use the "kill" command on the command line.  Even after I killed evolution, I noticed that the "evolution-exchange" process was still running, and it was still consuming almost 100% of the CPU.  This suggested that it might be a problem with evolution-connector, so I tried removing all exchange accounts from my list of accounts in evolution.  Once I removed my exchange accounts, I had no further problems, which suggests to me that there is indeed a problem with evolution-connector-2.6.2.

Steps to reproduce:
Open evolution version 2.6.2 with evolution-connector version 2.6.2 installed and try to update an exchange account in evolution.


Actual results:
See above.

Expected results:
Evolution should not use 100% of the CPU under normal circumstances, and it should not hang upon exitting.

Does this happen every time?
Yes.

Other information:
Comment 1 Sushma Rai 2006-06-08 06:08:12 UTC
Please provide the gdb traces of all the threads of 
evolution-exchange process, when it hogs CPU.
See http://live.gnome.org/GettingTraces for details.
Comment 2 Eric Bair 2006-06-13 23:25:06 UTC
I started evolution in gdb, and waited until it started hogging CPU.  When that happened, the program became non-responsive, so I killed via the command line.  I obtained the following backtrace in gdb after killing evolution.  I hope this is helpful.  Let me know if I should have done this differently.

(gdb) thread apply all bt

Thread 1 (Thread -1209133376 (LWP 3511))

  • #0 __kernel_vsyscall
  • #1 pthread_cond_wait
    from /lib/libpthread.so.0
  • #2 giop_recv_buffer_get
    from /usr/lib/libORBit-2.so.0
  • #3 ORBit_small_invoke_stub
    from /usr/lib/libORBit-2.so.0
  • #4 ORBit_small_invoke_stub_n
    from /usr/lib/libORBit-2.so.0
  • #5 ORBit_c_stub_invoke
    from /usr/lib/libORBit-2.so.0
  • #6 GNOME_Evolution_Component_requestQuit
    at Evolution-stubs.c line 95
  • #7 e_shell_quit
    at e-shell.c line 1345
  • #8 command_quit
    at e-shell-window-commands.c line 109
  • #9 bonobo_ui_component_add_verb_list
    from /usr/lib/libbonoboui-2.so.0
  • #10 g_closure_invoke
    from /lib/libgobject-2.0.so.0
  • #11 bonobo_closure_invoke_va_list
    from /usr/lib/libbonobo-2.so.0
  • #12 bonobo_closure_invoke
    from /usr/lib/libbonobo-2.so.0
  • #13 bonobo_ui_component_add_verb_list
    from /usr/lib/libbonoboui-2.so.0
  • #14 _ORBIT_skel_small_Bonobo_UIComponent_execVerb
    from /usr/lib/libbonobo-2.so.0
  • #15 ORBit_c_stub_invoke
    from /usr/lib/libORBit-2.so.0
  • #16 Bonobo_UIComponent_execVerb
    from /usr/lib/libbonobo-2.so.0
  • #17 bonobo_ui_engine_add_sync
    from /usr/lib/libbonoboui-2.so.0
  • #18 g_cclosure_marshal_VOID__POINTER
    from /lib/libgobject-2.0.so.0
  • #19 g_value_set_static_boxed
    from /lib/libgobject-2.0.so.0
  • #20 g_closure_invoke
    from /lib/libgobject-2.0.so.0
  • #21 g_signal_override_class_closure
    from /lib/libgobject-2.0.so.0
  • #22 g_signal_emit_valist
    from /lib/libgobject-2.0.so.0
  • #23 g_signal_emit
    from /lib/libgobject-2.0.so.0
  • #24 bonobo_ui_engine_emit_verb_on_w
    from /usr/lib/libbonoboui-2.so.0
  • #25 bonobo_ui_sync_menu_new
    from /usr/lib/libbonoboui-2.so.0
  • #26 g_cclosure_marshal_VOID__VOID
    from /lib/libgobject-2.0.so.0
  • #27 g_closure_invoke
    from /lib/libgobject-2.0.so.0
  • #28 g_signal_override_class_closure
    from /lib/libgobject-2.0.so.0
  • #29 g_signal_emit_valist
    from /lib/libgobject-2.0.so.0
  • #30 g_signal_emit
    from /lib/libgobject-2.0.so.0
  • #31 gtk_widget_activate
    from /usr/lib/libgtk-x11-2.0.so.0
  • #32 gtk_menu_shell_activate_item
    from /usr/lib/libgtk-x11-2.0.so.0
  • #33 gtk_menu_shell_append
    from /usr/lib/libgtk-x11-2.0.so.0
  • #34 gtk_menu_attach
    from /usr/lib/libgtk-x11-2.0.so.0
  • #35 gtk_marshal_BOOLEAN__VOID
    from /usr/lib/libgtk-x11-2.0.so.0
  • #36 g_value_set_static_boxed
    from /lib/libgobject-2.0.so.0
  • #37 g_closure_invoke
    from /lib/libgobject-2.0.so.0
  • #38 g_signal_override_class_closure
    from /lib/libgobject-2.0.so.0
  • #39 g_signal_emit_valist
    from /lib/libgobject-2.0.so.0
  • #40 g_signal_emit
    from /lib/libgobject-2.0.so.0
  • #41 gtk_widget_get_default_style
    from /usr/lib/libgtk-x11-2.0.so.0
  • #42 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #43 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #44 gdk_add_client_message_filter
    from /usr/lib/libgdk-x11-2.0.so.0
  • #45 g_main_context_dispatch
    from /lib/libglib-2.0.so.0
  • #46 g_main_context_check
    from /lib/libglib-2.0.so.0
  • #47 g_main_loop_run
    from /lib/libglib-2.0.so.0
  • #48 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #49 main
    at main.c line 611
  • #50 __libc_start_main
    from /lib/libc.so.6
  • #51 _start

Comment 3 Eric Bair 2006-06-13 23:28:37 UTC
As I noted in the earlier bug report, after I kill evolution, evolution-exchange begins to hog CPU.  (Before I killed the original evolution process, it was evolution-2.6 that was using the CPU.)  So I attached the running evolution-exchange process to gdb and then killed evolution-exchange from the command line.  I obtained the following stack trace.  Again, please let me know if this information is not helpful, or if I should have done this differently.

(gdb) thread apply all bt

Thread 1 (Thread -1208633664 (LWP 3535))

  • #0 pthread_mutex_lock
    from /lib/libpthread.so.0
  • #1 g_source_get_current_time
    from /lib/libglib-2.0.so.0
  • #2 g_source_get_current_time
    from /lib/libglib-2.0.so.0
  • #3 g_main_context_prepare
    from /lib/libglib-2.0.so.0
  • #4 g_main_context_check
    from /lib/libglib-2.0.so.0
  • #5 g_main_loop_run
    from /lib/libglib-2.0.so.0
  • #6 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #7 main
    at main.c line 238
  • #8 __libc_start_main
    from /lib/libc.so.6
  • #9 _start

Comment 4 Sushma Rai 2006-06-16 07:14:43 UTC
*** Bug 344879 has been marked as a duplicate of this bug. ***
Comment 5 Sushma Rai 2006-06-19 05:19:28 UTC
*** Bug 344656 has been marked as a duplicate of this bug. ***
Comment 6 Wiliam Murray 2006-06-19 08:20:11 UTC
A little more info:
     I discovered the 'evolution 2.6.2 doesn't work with exchange on FC5'
problem several others have reported, here and on the FC5 lists.
 Can I just add that I have compiled 2.6.2 from source, and the
symptoms are the same as Fedora's version; also 2.7.2.1 has exactly the same issues.
What I see is:
 * Start evo and it times out connecting to exchange
 * Meanwhile evolution-exchange is downloading hundreds of Mb of anything
I have read access to on the exchange server.

   I assume the second is the problem. What has changed I don't know,
but it is certainly my impression that there is far more public stuff being 
locally cached than before.
          Help please!
              Bill
Comment 7 Wiliam Murray 2006-06-19 10:10:44 UTC
Ah...so CVS head doesn't time out. And so after 20 minutes,
connected directly to the network, it is able to run. 
From runing E2K_DEBUG on the exchange process it spends the
time downloading all these public messages.
   Cheers,
     Bill
Comment 8 William Lovaton 2006-06-20 12:25:57 UTC
There is also some kind of problems with attachments.  I noticed that when sending attachments through evolution-exchange the destination gets the files corrupted.  I tried sending an Excel file created with open office, it wouldn't open on Windows.  Then I tried copying the very same file through FTP and it worked fine.

I tried sending the same file through my POP account and it worked fine too.

Maybe this is a related problem or we are talking about different bugs in the same release.
Comment 9 Sushma Rai 2006-06-21 04:53:27 UTC
the problem in comment #8 is different, can you file a separate bug
for that? And if possible please attach the file that is
getting corrupted while sending through Evolution.

with the evolution you built, are you seeing the same high CPU usage?
If yes, There are 2 patches gone in after 2.6.2 release,
on 2006-06-02 and 2006-06-15, by "Jeffrey Stedfast"
Please build with those patches and then try using Evolution.
Comment 10 Eric Bair 2006-06-21 05:33:53 UTC
To be honest, I'm not sure that the bug described in comment 6 is the same thing that I'm seeing.  I don't see any indication that evolution "times out" when it attempts to connect to exchange.  And there is definitely no network activity when evolution (or evolution-exchange) hang and start using large amounts of CPU.  I wonder if we're seeing different issues here.  Are you positive that evolution-exchange is downloading "hundreds of Mb of anything I have read access to on the exchange server"?
Comment 11 Poornima 2006-06-21 06:48:27 UTC
William Lovaton: Raise a new bug for attachment issue, i did verify in our setup here with a file of 3 MB xls file created using Open office, sent from evolution to a user using Outlook. Did not see any issue as mentioned in comment #8. What is the size of attachment in which you saw the problem mentioned ? would it be possible to attach that file in bugzilla ?
Comment 12 Wiliam Murray 2006-06-21 09:31:23 UTC
Hello all,
     We may well have several bugs mixed up. Or not.
My symptoms are not that the network is overload - it takes 20 minutes 
to download 300Mbyte files on a 100Mbit/s link. The CPU is also fairly
busy for the first few minutes.
I just deleted two files, and then watch  what happened to them  on start
.evolution/exchange/XXXXX/public/subfolders
.evolution/mail/exchange/XXXXX/personal/subfolders

I ran 3 different versions:

                       public    mail
Evo-2.6.1 (new shown)    1Mb     20Mb
Evo-2.6.1 (a bit later)  1Mb     83Mb
Evo-2.6.2                161Mb   Not made
Evo head  (after a bit)  161Mb   76Mb  

Note that I also made a test account, ran the connect-to-exchange wizard
but did not set any local store settings, and evo 2.6.2 was identical to
above behaviour.

So I conclude that these public folders are downloaded each and evry time
evo starts, no attempt to check if it was already done. And I don't
want them - I never used them.
    Bill
Comment 13 Arunprakash 2006-06-21 16:34:43 UTC
Created attachment 67791 [details] [review]
Proposed fix

The fix keeps the marshal->inptr and marshal->in->data pointers in sync always, as a mismatch can lead to wrong avail computation and subsequent read from invalid memory location.

I don't have access to exchange server and haven't tested the fix. Please someone help me by testing the fix. Thanks.
Comment 14 spaavola 2006-06-21 18:20:23 UTC
I tried the patch. The changes to do_read got rejected against the FC5 sources, so I did them manually. I then found that do_read was infinite looping because camel_read was returning -1. I changed the while condition to:

} while (n > 0 && nread < *len && errno != EINTR);

which apparently stopped this infinite loop. However, it doesn't fix my original problem with evolution hanging. evolution_exchange is in S1 state, not R.
Comment 15 Sushma Rai 2006-06-22 05:09:38 UTC
Eric Bair,
Your issue seems to be different than this bug.
This bug is about Evolution hogging CPU,
but what you are seeing is evolution-exchange-storage
using high CPU. It is better if you file a different bug.
Discussing 2 problems in one bug makes it confusing.
In your bug report, please paste the gdb traces for
evolution-exchange-storage when it start using high cpu.
Comment 16 Eric Bair 2006-06-22 05:37:39 UTC
(In reply to comment #15)
> Eric Bair,
> Your issue seems to be different than this bug.
> This bug is about Evolution hogging CPU,
> but what you are seeing is evolution-exchange-storage
> using high CPU. It is better if you file a different bug.
> Discussing 2 problems in one bug makes it confusing.
> In your bug report, please paste the gdb traces for
> evolution-exchange-storage when it start using high cpu.
> 

It sounds like there's some confusion going on.  I was the one who filed this bug report initially, and it does involve evolution hogging CPU.  However, when this happened, I tried to kill evolution at the command line.  After I killed off evolution, then evolution-exchange-storage continues to run and consume nearly 100% of the CPU.  I posted the gdb traces for both evolution and evolution-exchange-storage in an earlier comment on this bug.

If you believe that this is the result of two independent bugs in the two separate programs, I'm happy to file a second bug report.  However, I'm inclined to believe that these two issues are one and the same.  I don't have any problems with evolution hogging CPU when I delete all my exchange accounts, so I'm inclined to believe that the bug is related to evolution-connector.
Comment 17 Arunprakash 2006-06-22 10:13:29 UTC
(In reply to comment #14)
> I tried the patch. The changes to do_read got rejected against the FC5 sources,
> so I did them manually. I then found that do_read was infinite looping because
> camel_read was returning -1. I changed the while condition to:
> 
> } while (n > 0 && nread < *len && errno != EINTR);
> 
> which apparently stopped this infinite loop. However, it doesn't fix my
> original problem with evolution hanging. evolution_exchange is in S1 state, not
> R.
> 

Thanks for trying the patch. The patch is to fix crash of evolution process (not evolution-exchange-storage process) similar to the traces of the new bug #345558. I think the evolution trace in this bug is similar to http://bugzilla.gnome.org/show_bug.cgi?id=345558#c2 since the pointer corruption can cause crashes at different places. We may still need additional fixes to solve the problem fully.
Comment 18 Wiliam Murray 2006-06-22 11:00:33 UTC
Hello all,
       I too tried the patch, but applied it to the CVS head, where it 
did not need editing. However, it did not seem to do anything. I 
mean the public folders are still downloaded before anything else
happens. This means a huge wait.
      Bill
Comment 19 Arunprakash 2006-06-22 11:46:58 UTC
(In reply to comment #18)
> Hello all,
>        I too tried the patch, but applied it to the CVS head, where it 
> did not need editing. However, it did not seem to do anything. I 
> mean the public folders are still downloaded before anything else
> happens. This means a huge wait.
>       Bill
> 

Thanks for trying the patch. But it doesn't attempt to fix the problem of downloading huge data from the exchange server. It fixes a crash of evolution due to a pointer corruption. Please see comment #17.
Comment 20 spaavola 2006-06-22 15:35:42 UTC
Looking at the proposed change do do_read, there's another problem - the camel_read can go off the end of the buffer. My change was:

if ((n = camel_read (marshal->fd, buf, len-nread)) > 0)

Unfortunately, this still didn't fix my problem. So, looking at the developer's page, I found the E2K_DEBUG environment variable. Looking at the resulting logs, it doesn't appear to me that evolution ever actually attempts to read my exchange mail. The "Scanning folders in Exchange server" message appears in the status bar, and stays there for a long time. If I attempt to open that account folder, a second "Scanning folders in Exchange server" message will appear. If I attempt to close the applications using the window's X, only one message goes away. I have to  manually kill the application.

Here's the log from evolution-exchange:

Evolution Exchange Storage up and running
E2K_DEBUG=1
cal = 0x8ddaf80
GET /exchange/spaavola/ HTTP/1.1
E2k-Debug: 0x8e1c000 @ 1150989492

401 Unauthorized
E2k-Debug: 0x8e1c000 @ 1150989492

GET /exchange/spaavola/ HTTP/1.1
E2k-Debug: 0x8e1c000 @ 1150989492 [restarted]

200 OK
E2k-Debug: 0x8e1c000 @ 1150989492

PROPFIND /exchange/spaavola/ HTTP/1.1
E2k-Debug: 0x8e1c060 @ 1150989492

207 Multi-Status
E2k-Debug: 0x8e1c060 @ 1150989492

SEARCH /exchange/spaavola/ HTTP/1.1
E2k-Debug: 0x8e1c0c0 @ 1150989492

207 Multi-Status
E2k-Debug: 0x8e1c0c0 @ 1150989492

SEARCH /exchange/spaavola/Sync Issues/ HTTP/1.1
E2k-Debug: 0x8e1c120 @ 1150989492

207 Multi-Status
E2k-Debug: 0x8e1c120 @ 1150989492

SEARCH /exchange/spaavola/NON_IPM_SUBTREE/Shortcuts HTTP/1.1
E2k-Debug: 0x8e1c180 @ 1150989492

207 Multi-Status
E2k-Debug: 0x8e1c180 @ 1150989492

PROPFIND /exchange/spaavola/Calendar/ HTTP/1.1
E2k-Debug: 0x8e1c1e0 @ 1150989492

207 Multi-Status
E2k-Debug: 0x8e1c1e0 @ 1150989492

SUBSCRIBE /exchange/spaavola/Calendar/ HTTP/1.1
E2k-Debug: 0x8e1c240 @ 1150989492

401 Unauthorized
E2k-Debug: 0x8e1c240 @ 1150989492

SUBSCRIBE /exchange/spaavola/Calendar/ HTTP/1.1
E2k-Debug: 0x8e1c240 @ 1150989492 [restarted]

SEARCH /exchange/spaavola/Calendar/ HTTP/1.1
E2k-Debug: 0x8e1c6a8 @ 1150989492

200 OK
E2k-Debug: 0x8e1c240 @ 1150989492

207 Multi-Status
E2k-Debug: 0x8e1c6a8 @ 1150989492

BPROPFIND /exchange/spaavola/Calendar/ HTTP/1.1
E2k-Debug: 0x8e1c708 @ 1150989492

207 Multi-Status
E2k-Debug: 0x8e1c708 @ 1150989492

GET /exchange/spaavola/Calendar/{D1A1764B-7044-40B7-8C89-F0A705FE5BA1}.EML HTTP/1.1
E2k-Debug: 0x8e1c768 @ 1150989492

200 OK
E2k-Debug: 0x8e1c768 @ 1150989492

GET /exchange/spaavola/Calendar/CC and IRS planned hardware and software implementation to support 40 images per second.EML HTTP/1.1
E2k-Debug: 0x8eec020 @ 1150989492

200 OK
E2k-Debug: 0x8eec020 @ 1150989492

GET /exchange/spaavola/Calendar/CC speed for next build.EML HTTP/1.1
E2k-Debug: 0x8eec080 @ 1150989492

200 OK
E2k-Debug: 0x8eec080 @ 1150989492

GET /exchange/spaavola/Calendar/Updated: Staff Meeting.EML HTTP/1.1
E2k-Debug: 0x8eec0e0 @ 1150989492

200 OK
E2k-Debug: 0x8eec0e0 @ 1150989492

GET /exchange/spaavola/Calendar/{E352F4C6-4640-485B-B026-C6A3FEE68A32}.EML HTTP/1.1
E2k-Debug: 0x8eec140 @ 1150989492

200 OK
E2k-Debug: 0x8eec140 @ 1150989492

GET /exchange/spaavola/Calendar/Analogic Holiday-2.EML HTTP/1.1
E2k-Debug: 0x8eec1a0 @ 1150989492

200 OK
E2k-Debug: 0x8eec1a0 @ 1150989492

GET /exchange/spaavola/Calendar/Analogic Holiday.EML HTTP/1.1
E2k-Debug: 0x8eec200 @ 1150989492

200 OK
E2k-Debug: 0x8eec200 @ 1150989492

GET /exchange/spaavola/Calendar/Iwill.EML HTTP/1.1
E2k-Debug: 0x8eec260 @ 1150989492

200 OK
E2k-Debug: 0x8eec260 @ 1150989492

GET /exchange/spaavola/Calendar/All Hands.EML HTTP/1.1
E2k-Debug: 0x8eec2c0 @ 1150989492

200 OK
E2k-Debug: 0x8eec2c0 @ 1150989492

GET /exchange/spaavola/Calendar/Jerome.EML HTTP/1.1
E2k-Debug: 0x8eec320 @ 1150989492

200 OK
E2k-Debug: 0x8eec320 @ 1150989492

GET /exchange/spaavola/Calendar/HMC UI.EML HTTP/1.1
E2k-Debug: 0x8eec380 @ 1150989492

200 OK
E2k-Debug: 0x8eec380 @ 1150989492

GET /exchange/spaavola/Calendar/FW: CC + SWIRS discussions.EML HTTP/1.1
E2k-Debug: 0x8e3f000 @ 1150989492

200 OK
E2k-Debug: 0x8e3f000 @ 1150989492

GET /exchange/spaavola/Calendar/Best Pitch Choices for IQ and Recon Speed.EML HTTP/1.1
E2k-Debug: 0x8e3f060 @ 1150989492

200 OK
E2k-Debug: 0x8e3f060 @ 1150989492

GET /exchange/spaavola/Calendar/AMS1600 Control Computer Spec, 21-00872 rev 02.EML HTTP/1.1
E2k-Debug: 0x8e3f0c0 @ 1150989492

200 OK
E2k-Debug: 0x8e3f0c0 @ 1150989492

GET /exchange/spaavola/Calendar/Technical Orientation Meeting by Mike Welch and
Robert French.EML HTTP/1.1
E2k-Debug: 0x8e3f120 @ 1150989492

200 OK
E2k-Debug: 0x8e3f120 @ 1150989492


And a similar log from evolution:


CalDAV Eplugin starting up ...

(evolution-2.6:20518): camel-WARNING **: camel_exception_get_id called with NULL parameter.

(evolution-2.6:20518): camel-WARNING **: camel_exception_get_id called with NULL parameter.
GET /exchange/spaavola/ HTTP/1.1
E2k-Debug: 0x836b800 @ 1150989755

401 Unauthorized
E2k-Debug: 0x836b800 @ 1150989755

GET /exchange/spaavola/ HTTP/1.1
E2k-Debug: 0x836b800 @ 1150989755 [restarted]

200 OK
E2k-Debug: 0x836b800 @ 1150989755

PROPFIND /exchange/spaavola/ HTTP/1.1
E2k-Debug: 0x836b860 @ 1150989755

207 Multi-Status
E2k-Debug: 0x836b860 @ 1150989755

SEARCH /exchange/spaavola/ HTTP/1.1
E2k-Debug: 0x836b8c0 @ 1150989755

207 Multi-Status
E2k-Debug: 0x836b8c0 @ 1150989755

SEARCH /exchange/spaavola/Sync Issues/ HTTP/1.1
E2k-Debug: 0x836b920 @ 1150989755

207 Multi-Status
E2k-Debug: 0x836b920 @ 1150989755

SEARCH /exchange/spaavola/NON_IPM_SUBTREE/Shortcuts HTTP/1.1
E2k-Debug: 0x836b980 @ 1150989755

207 Multi-Status
E2k-Debug: 0x836b980 @ 1150989755
Comment 21 Jeffrey Stedfast 2006-06-22 17:10:59 UTC
you have to do buf + nread - how would that ever go past the buffer???

ook a look into camel_read() and there's no errno that is recoverable, so no need to check errno against EINTR (which means the user cancelled the operation, meaning the connection is meant to be dropped)

this loop should be ok I think:

static gboolean
do_read (CamelStubMarshal *marshal, char *buf, size_t len)
{
	size_t nread = 0;
	ssize_t n;
	
	do {
		if ((n = camel_read (marshal->fd, buf + nread, len - nread)) <= 0)
			break;
		nread += n;
	} while (nread < len);
	
	if (nread < len) {
		close (marshal->fd);
		marshal->fd = -1;
		return FALSE;
	}
	
	return TRUE;
}

also, why have do_read() return the number of bytes read? it's unneeded. do_read() is meant to read exactly the number of bytes requested - anything less will make it return FALSE and is irrecoverable.
Comment 22 spaavola 2006-06-23 13:46:30 UTC
Created attachment 67896 [details] [review]
camel-stub-marshal.c diff vs. FC5 source
Comment 23 spaavola 2006-06-23 13:47:34 UTC
I like this patch. It fixes my typo, and fixes my hang problem. I've attached the diff against the FC5 source.
Comment 24 Arunprakash 2006-06-26 07:43:51 UTC
(In reply to comment #21)
> also, why have do_read() return the number of bytes read? it's unneeded.
> do_read() is meant to read exactly the number of bytes requested - anything
> less will make it return FALSE and is irrecoverable.
> 

The problem I found was marshal->inptr and marshal->in->data weren't in sync always. We need to set marshal->inptr everytime marshal->in bytearray size is changed. But if do_read fails, either we can set the bytearray size to zero or to whatever we have actually read. I chose the later. We can change it to set the size to zero.
Comment 25 Sushma Rai 2006-06-26 10:33:35 UTC
*** Bug 344391 has been marked as a duplicate of this bug. ***
Comment 26 Rodney McKee 2006-06-26 21:05:30 UTC
Got the following trace from evolution-exchange-storage - not sure if this is still related. Have not been able to connect to exchange for a day or so. Constantly loosing connection to backend.

(gdb) run
Starting program: /usr/libexec/evolution/2.6/evolution-exchange-storage
Reading symbols from shared object read from target memory...done.
Loaded system supplied DSO at 0x4d2cb000
[Thread debugging using libthread_db enabled]
[New Thread -1208772928 (LWP 3657)]
[New Thread -1210872928 (LWP 3660)]
Evolution Exchange Storage up and running
[New Thread -1211139168 (LWP 3682)]
[Thread -1211139168 (LWP 3682) exited]

GLib-ERROR **: gmem.c:135: failed to allocate 1286380045 bytes
aborting...

Program received signal SIGABRT, Aborted.
[Switching to Thread -1208772928 (LWP 3657)]
0x4d2cb402 in __kernel_vsyscall ()
(gdb) thread apply all bt


Comment 27 Sushma Rai 2006-06-27 05:34:46 UTC
Rodney McKee, Yes this is a related issue.
Comment 28 Sushma Rai 2006-06-27 06:31:18 UTC
*** Bug 345987 has been marked as a duplicate of this bug. ***
Comment 29 Sushma Rai 2006-06-27 06:35:25 UTC
*** Bug 343516 has been marked as a duplicate of this bug. ***
Comment 30 Paul Faure 2006-06-27 19:03:39 UTC
I applied the patch:
  camel-stub-marshal.c diff vs. FC5 source

And it fixed the problem.

But now when new mail comes in, its not reflected in the inbox folder. The number of unread messages in the folder listing goes up, but the messages dont appear in the inbox folder until I restart evolution.

Example:
In the folder listing I would see:
  Inbox (2)

But no new message in the inbox message listing on the right hand side.
The two new messages would show up when I restart evolution.  
Comment 31 Rodney McKee 2006-06-27 20:57:03 UTC
Just applied the patch (first time at this), not sure I got the spec file just right, but it appeared to run the patch.
Looks to be working fine. I have seen the problem Paul Faure was experiencing but that was on an unpatched system also used here.
I do see new mail coming in, counter increasing and mail in the inbox.
Comment 32 William Lovaton 2006-06-27 21:26:41 UTC
(In reply to comment #11)
> William Lovaton: Raise a new bug for attachment issue, i did verify in our
> setup here with a file of 3 MB xls file created using Open office, sent from
> evolution to a user using Outlook. Did not see any issue as mentioned in
> comment #8. What is the size of attachment in which you saw the problem
> mentioned ? would it be possible to attach that file in bugzilla ?
> 

Hi, The problem happens sending any kind of attachment, I just tried sending 2 images I edited with gimp, the attachments got corrupted in the receiving end.  Is anyone of the commenters of this bug seeing this problem??  Can anyone suffering evolution/exchange problems confirm this specific problem? If so, I'll open a new bug report.  The problem is that I am reverting evolution due to several obligations at my workplace.

For instance I can confirm comment #30 by Paul Faure, when new messages arrive I just can see the counter in the left side pane going up but the messages doesn't show up in the message list even if I try to send and receive several times.  Closing and reopening evolution can be used as a workaround for me.
Comment 33 Rodney McKee 2006-06-27 22:03:04 UTC
Spoke to soon, SOME mail is appearing but the counter is increasing to include
others not seen in the inbox. Can confirm mail in the inbox using OWA session.
Deleted folder also did not seem to empty until evolution was restarted.
Comment 34 Rodney McKee 2006-06-30 06:21:01 UTC
with the new patch installed I now seem to have issues opening attachments not sure if this is still related to this issue or if I need to raise a new bug.
It does not appear to be attachment specific as they have so far been .zip and .pdf attachments.

(gdb) thread apply all bt

Thread 1 (Thread -1208895808 (LWP 5675))

  • #0 __kernel_vsyscall
  • #1 __nptl_setxid
    from /lib/libpthread.so.0
  • #2 seteuid
    from /lib/libc.so.6
  • #3 gnome_vfs_get_daemon_volume_monitor_type
    from /usr/lib/libgnomevfs-2.so.0
  • #4 gnome_vfs_transform_get
    from /usr/lib/libgnomevfs-2.so.0
  • #5 gnome_vfs_uri_new_private
    from /usr/lib/libgnomevfs-2.so.0
  • #6 gnome_vfs_uri_new
    from /usr/lib/libgnomevfs-2.so.0
  • #7 gnome_vfs_monitor_add
    from /usr/lib/libgnomevfs-2.so.0
  • #8 gnome_vfs_mime_info_cache_reload
    from /usr/lib/libgnomevfs-2.so.0
  • #9 gnome_vfs_mime_get_all_desktop_entries
    from /usr/lib/libgnomevfs-2.so.0
  • #10 gnome_vfs_mime_get_all_applications
    from /usr/lib/libgnomevfs-2.so.0
  • #11 emp_standard_menu_factory
    at em-popup.c line 741
  • #12 e_popup_create_menu
    at e-popup.c line 271
  • #13 e_popup_create_menu_once
    at e-popup.c line 575
  • #14 efhd_attachment_popup
    at em-format-html-display.c line 1310
  • #15 gtk_marshal_BOOLEAN__VOID
    from /usr/lib/libgtk-x11-2.0.so.0
  • #16 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_signal_override_class_closure
    from /usr/lib/libgobject-2.0.so.0
  • #18 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #19 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #20 gtk_widget_get_default_style
    from /usr/lib/libgtk-x11-2.0.so.0
  • #21 gtk_propagate_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #22 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #23 gdk_add_client_message_filter
    from /usr/lib/libgdk-x11-2.0.so.0
  • #24 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #25 g_main_context_check
    from /usr/lib/libglib-2.0.so.0
  • #26 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #27 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #28 main
    at main.c line 611
  • #29 __libc_start_main
    from /lib/libc.so.6
  • #30 _start

Comment 35 Lee Dixon 2006-06-30 19:17:01 UTC
This is lame as I have nothing of technical value to add, except to say that I've also encountered this error.  I connect to my corporate exchange account, and Connector proceeds to download 500MB(!) of data from the public folders.  Ouch.  And then I encountered the 100% cpu state.

This problem is definitely critical since I can't really upgrade anything Gnome related without also upgrading evolution (which I don't quite understand why Gnome updates are dependent upon an application), but for anyone else encountering this error and needing to go back to the earlier version of Evolution to get up and running, here's the RPM command I issued (from the FC5 DVD) to downgrade:

rpm -Uvh --oldpackage evolution-connector-2.5.92-1.i386.rpm evolution-data-server-1.5.92-1.i386.rpm gnome-panel-2.14.0-1.i386.rpm evolution-2.6.0-1.i386.rpm evolution-sharp-0.10.2-9.i386.rpm evolution-webcal-2.4.1-3.2.i386.rpm pilot-link-0.12.0-0.pre4.5.2.1.i386.rpm gnome-pilot-2.0.13-7.fc5.4.i386.rpm

-Lee
Comment 36 Sushma Rai 2006-07-03 04:53:29 UTC
William Lovaton, for the attachemnts getting corrupted issue, and unread
count issue please open  a new bugs.

Rodney McKee, for hang during opening attachments, please open a 
new bug.

This bug is about hang/crash/high CPU usage during loading Evolution and
accessing mails.
Comment 37 Poornima 2006-07-05 07:20:09 UTC
*** Bug 332562 has been marked as a duplicate of this bug. ***
Comment 38 Sergej Kotliar 2006-07-08 11:44:57 UTC
*** Bug 346938 has been marked as a duplicate of this bug. ***
Comment 39 Arunprakash 2006-07-10 11:15:25 UTC
Created attachment 68710 [details] [review]
Partial fix

Now resetting the byte array size when read fails. Is this change ok?
Comment 40 André Klapper 2006-07-19 19:37:11 UTC
reopening, no idea why this is still set to NEEDINFO. lots fo duplicates, raising priority.
Comment 41 André Klapper 2006-07-19 19:38:30 UTC
*** Bug 348037 has been marked as a duplicate of this bug. ***
Comment 42 Sushma Rai 2006-07-21 05:04:42 UTC
*** Bug 348126 has been marked as a duplicate of this bug. ***
Comment 43 Sushma Rai 2006-07-24 14:47:20 UTC
Created attachment 69498 [details] [review]
Consolidated patch

Can some here please test this consolidated patch which includes 
fejj's changes in comment #21 and Arun's changes in comment #39
Comment 44 Karsten Bräckelmann 2006-07-25 00:23:19 UTC
*** Bug 348586 has been marked as a duplicate of this bug. ***
Comment 45 Sushma Rai 2006-07-25 10:17:32 UTC
Wiliam Murray,

Can you unsubscribe for the public folders that you are not using
and see if it works for you?
Downloading public folders issue is filed as
http://bugzilla.gnome.org/show_bug.cgi?id=346728
Comment 46 André Klapper 2006-07-26 13:15:12 UTC
*** Bug 348768 has been marked as a duplicate of this bug. ***
Comment 47 Wiliam Murray 2006-08-02 10:01:51 UTC
Hi Sushma,
            You asked whether I could unsubscribe from the public folders.
They are not even listed! If I log in via OWA I see a whole section of
public folder, but evo never showed them. So I don't know how to unsubscribe.
  I just compiled 2.6.3 - I'll report on that in the other bug.
Comment 48 Jan Roehrich 2006-08-03 16:13:12 UTC
It seems that I have the same problem. Tell me if I can help somehow.

Unsubscribing from public folders doesn't work for me because the dialog for folder abos hangs after I try to access the ones on the exchange server.



Comment 49 guenther 2006-08-07 15:25:14 UTC
I have the same high cpu/hang or crash sympton with evolution 2.6.2 and exchange.
-- Dean Guenther guenther@wsu.edu
Comment 50 Michael Steigman 2006-08-09 13:34:17 UTC
I applied the changes in the "consolidated" patch to the sources of the evolution-connector-2.6.2-1.fc5.4 RPM for FC5. The crashes stop but as others have noted, folder counts are updated while the contents are not.
Comment 51 Matthew Barnes 2006-08-09 14:35:24 UTC
I'm getting reports from Fedora Core users that this seems to be fixed now in evolution-exchange 2.6.3.  Can one of the upstream developers confirm?
Comment 52 Sushma Rai 2006-08-10 08:33:55 UTC
Can any one please test 2.6.3?
Comment 53 Sushma Rai 2006-08-10 08:37:41 UTC
http://bugzilla.gnome.org/show_bug.cgi?id=349413 bug is about fetching new mails issue in 2.6.3
Comment 54 Sushma Rai 2006-08-10 08:46:54 UTC
Created attachment 70623 [details] [review]
One more patch related to this issue, submitted by vvaradhan@novell.com
Comment 55 Sushma Rai 2006-08-10 08:48:57 UTC
s/replated/related
Comment 56 Wiliam Murray 2006-08-10 09:24:02 UTC
  Not sure if I should say this here, but 2.6.3, whether direct from
gnome or via fedora solve my 'hang at startup issues.
    
Comment 57 lsof 2006-08-10 16:03:04 UTC
The new FC5 testing RPMs (2.6.3) fetch the crash problem for me, but it seems to lose connection to the Exchange server after a bit. I discovered this a few times when I had to restart evolution. This would be a separate bug I guess though.
Comment 58 Michael Steigman 2006-08-11 00:23:19 UTC
Yup, the testing RPMS(2.6.3-1.fc5.5) are still borked. Seemed a bit more promising as the first test I sent myself actually incremented the new message count AND showed up in the folder. Subsequent messages did not, though.
Comment 59 Michael Steigman 2006-08-11 00:28:37 UTC
My apologies - just read comment 53 about bug 349413. I will try the patch mentioned there and report back on that bug.
Comment 60 Sushma Rai 2006-08-11 03:12:04 UTC
Anyone getting the "lost connection" error or "not fetching new message"
problems, please try the patch in the comment #54 (same patch is attached to
the bug #349413 also)
Comment 61 Eric Bair 2006-08-14 21:25:20 UTC
Well, I justed installed version 2.6.3 (evolution-connector-2.6.3-1.fc5.1, to be exact), and the problem seems to be solved on my system.  I've had evolution running all day now, and it hasn't starting hogging CPU.  Moreover, I've received several messages (including a message with an attachment) without any problems.

At any rate, if I don't encounter any more problems in the next day or two, then I'm going to close this bug, because the problem seems to be fixed.  If there is any reason that I should keep this bug open, please let me know.
Comment 62 William Lovaton 2006-08-14 22:34:05 UTC
Great news Eric, I'll try to update my Fedora Core 5 system as soon as my network problems let me and I'll confirm if the problems are solved in my case.

Cheers.
Comment 63 lsof 2006-08-14 22:39:45 UTC
I still have two problems:
1. Although the message count in the folder pane updates, after some time, the new messages do not show in my Inbox. I have to restart Evolution to see those messages.
2. Marking a message as spam fails to remove it from my Inbox.

Point 2 is perhaps unimportant, and this bug is about cpu usage and instability, both of which are gone, however an important part of evolution - the ability to see a new e-mail when it arrives is still broken for me.
Comment 64 Eric Bair 2006-08-15 01:48:28 UTC
(In reply to comment #63)
> I still have two problems:
> 1. Although the message count in the folder pane updates, after some time, the
> new messages do not show in my Inbox. I have to restart Evolution to see those
> messages.
> 2. Marking a message as spam fails to remove it from my Inbox.
> 
> Point 2 is perhaps unimportant, and this bug is about cpu usage and
> instability, both of which are gone, however an important part of evolution -
> the ability to see a new e-mail when it arrives is still broken for me.
> 

I can't reproduce the problem with messages not showing up in my inbox.  I've been running evolution all day now, and messages that I received at the end of the day landed in my inbox without a problem.  I haven't tried marking any messages as spam, but if that's not working, that should probably be a separate bug report anyway.

I'll wait another day or two before I close this bug so that others can confirm that the massive cpu usage issue is gone.  However, I'm increasingly confident that this issue is fixed.
Comment 65 Eric Bair 2006-08-15 02:01:24 UTC
Actually, as I reread the comments on this page, it sounds like everyone seems to agree that the cpu usage issue is fixed in 2.6.3.  Some are still reporting problems with new messages not showing up in the inbox, but it appears that another bug report has already been filed on this issue.  (Indeed, it's marked as fixed if I'm not mistaken.)

Hence, I decided to go ahead and close this bug.  If anyone finds that evolution is hanging and using huge amounts of CPU even after upgrading to 2.6.3, let me know, and I'll reopen it.  Other issues mentioned on this thread should probably be filed as separate bug reports.
Comment 66 Sushma Rai 2006-08-21 10:03:22 UTC
In reply to comment #63,

1. For the new mails fectching problem see the
bug #349413
2. For the marking as spam problem, please file a separate bug.
Comment 67 Sushma Rai 2006-08-21 10:06:07 UTC
Bug #257641 is about marking mails as junk.
Comment 68 Karsten Bräckelmann 2006-08-29 23:55:42 UTC
*** Bug 349676 has been marked as a duplicate of this bug. ***
Comment 69 Karsten Bräckelmann 2006-09-28 16:50:25 UTC
*** Bug 358152 has been marked as a duplicate of this bug. ***
Comment 70 Karsten Bräckelmann 2006-09-28 16:51:15 UTC
*** Bug 357167 has been marked as a duplicate of this bug. ***