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 733274 - EWS is very slow to download large messages
EWS is very slow to download large messages
Status: RESOLVED FIXED
Product: evolution-ews
Classification: Other
Component: Mail
3.13.x
Other Linux
: Normal major
: ---
Assigned To: Evolution EWS maintainer(s)
Evolution EWS maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2014-07-16 18:41 UTC by Emre Erenoglu
Modified: 2014-07-21 12:00 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Emre Erenoglu 2014-07-16 18:41:14 UTC
While trying to debug the "listen for server change notifications" on Exchange 2010 SP1 and Evo EWS, I discovered that the nofications were blocked due to downloading of new message. This was blocking the new mail notifications from server and refreshing of GUI. So here's the issue:

When EWS is used to access Exchange account (512 MB mailbox, maybe 250MB used)
1) "downloading messages for offline use" takes ages. I have to leave it
overnight to download
2) likewise downloading a new but large message (ie 5MB, 10 MB) literally takes
ages. 

Downloading same message with IMAP using Thunderbird takes maybe half a minute.

For example, the 10 MB email that blocks Evo from receiving notifications of
new mails downloaded in 14 minutes (12kb/sec).

I'm requested to make a new bug report from this bug:
https://bugzilla.gnome.org/show_bug.cgi?id=699349

which referred to this bug as a hint (similar issue with IMAP):
https://bugzilla.gnome.org/show_bug.cgi?id=719475

This is Evolution, EDS and EWS compiled from git master on 13/07/2014.
Comment 1 Milan Crha 2014-07-18 12:10:45 UTC
I investigated the possibilities on the libsoup side and there are not many options. I tried both soup_request_send() and soup_message_set_chunk_allocator(). I can increase chunk size from 8KB to 16KB with both methods, but even if I tell to download larger chunks (which was the fix in IMAP), then the server still sends only up to 16KB chunks. I take this as a prove that comparing IMAP protocol with EWS protocol is misleading, both are different technologies with different implementations on the same server.

I sometimes get quicker results with the tweaked libsoup (it doesn't matter whether with the chunk allocator or the request), but not always. It feels like a good thing to do, to request larger chunks, thus I'll do the change in the evolution-ews. I will use the deprecated soup_message_set_chunk_allocator(), to not have too many changes in the code. In any case, according to my tests, we cannot do better with EWS. I also tried with curl and that is also slow, thus it is not about libsoup, but about the server as such. Hopefully newer Exchange servers (2013+) do/will provide better response times.

Created commit 3d6611f in ews master (3.13.4+) [1]
Created commit 10eb3f4 in ews evolution-ews-3-12 (3.12.5+)

[1] https://git.gnome.org/browse/evolution-ews/commit/?id=3d6611f
Comment 2 Milan Crha 2014-07-18 13:00:59 UTC
I forgot to add here a link to an article I noticed:
http://stackoverflow.com/questions/10091745/exchange-web-services-attachment-load-is-slow
Comment 3 Emre Erenoglu 2014-07-19 12:09:07 UTC
Thanks Milan for your effort and time trying to fix it. 
What I will try to do from my side is to see if Outlook is able to download faster.  as far as I know, the new versions, at least the one on Mac OsX is also using EWS as its main protocol.
If it is downloading fast, then maybe we are missing something.
Comment 4 Milan Crha 2014-07-21 12:00:10 UTC
Good idea, especially if you'll connect to the same server.