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 733276 - downloading large message blocks gui from showing new messages
downloading large message blocks gui from showing new messages
Status: RESOLVED OBSOLETE
Product: evolution-ews
Classification: Other
Component: Mail
3.13.x
Other Linux
: Normal normal
: ---
Assigned To: Evolution EWS maintainer(s)
Evolution EWS maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2014-07-16 18:46 UTC by Emre Erenoglu
Modified: 2021-05-19 11:01 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Emre Erenoglu 2014-07-16 18:46:43 UTC
I discovered this issue while trying to debug the problem with "listen for server change notifications", ie this bug:
https://bugzilla.gnome.org/show_bug.cgi?id=699349

It looks like when your mailbox is already synced for offline use (sync remote
mail locally) and you receive new small mails, the notification of new mails
works well. GUI Refreshes properly and shows the new messages, starts to download them.

But when you receive a large mail like a few MB, Evo gets blocked of receiving
server change notification until that mail is downloaded. So it looks like
downloading new messages or messages for offline use blocks Evo from receiving
new mail notifications.

Combined with bug https://bugzilla.gnome.org/show_bug.cgi?id=733274  this becomes a big issue, as I can't see new messages until the large message is downloaded (ie, 10 MB in 14 minutes).

Maybe the server change notification and displaying it in GUI mail list can be done in a separate thread which won't be blocked by other message downloads?
Comment 1 Milan Crha 2014-07-18 13:06:49 UTC
Evolution EWS currently shares one connection within a process, which helps to not be kicked off the server for too many connections (there is one connection for evolution-source-registry, one for evolution-addressbook-factory, another one for evolution-calendar-factory and one for evolution itself. The requests are piled in a queue. There are mechanisms to enable multiple connections, but it can have a downside of the server rejecting a connection in one process, because the sum of the connections from the machine exceeds set maximum on the server.

You can try to tweak [1], but not promises whether it'll help:
https://git.gnome.org/browse/evolution-ews/tree/src/server/e-ews-connection.c#n56
Comment 2 Emre Erenoglu 2014-07-19 12:14:21 UTC
Sinde emails are much more frequent than contacts or calendar updates, would it make sense to make those two share one connection and let the new mail notification and message digest download gave a separate connection? This connection can get message headers and inform gui of changes, then download message body up to say 50k in case user clicks on the message. (since we are still waiting for large attachment download end for main message download process)
Comment 3 Milan Crha 2014-07-21 12:04:29 UTC
It currently doesn't work this way (partial downloads), but there surely can be done something close to it. The new mail notification part can download only message headers (MAPI property of Transport Headers) and if that's available (not every message has it), then use it to add the message into summary, thus a user has it available. I'm still unsure how the server will operate with other connections, whether it'll pause/slow them, when one of them will download whole message.
Comment 4 André Klapper 2021-05-19 11:01:07 UTC
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. 
As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled).

If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow
  https://wiki.gnome.org/Community/GettingInTouch/BugReportingGuidelines
and create a new ticket at
  https://gitlab.gnome.org/GNOME/evolution-ews/-/issues/

Thank you for your understanding and your help.