GNOME Bugzilla – Bug 724909
Highlight module hangs on large attachments
Last modified: 2014-11-20 13:50:36 UTC
Created attachment 269947 [details] freezing-email.txt Attaching email causing the hang...
This is with evolution-3.11.90 and webkit-gtk-2.2.4
Backtrace after hang: (gdb) thread apply all bt
+ Trace 233226
Thread 1 (Thread 0x7ffff7f88940 (LWP 22586))
The hang in evolution happens in modules/text-highlight/e-mail-formatter-text-highlight.c on line 234 inside camel_stream_write_string function: https://git.gnome.org/browse/evolution/tree/modules/text-highlight/e-mail-formatter-text-highlight.c#n234 I added debug messages before and after that function and only the message before was displayed.
Hangs for me too. I didn't know the text-highlight module was doing blocking disk writes in the UI thread. :(
The code spawns the 'highlight' utility, and tries to write the entire message through the stdin pipe before reading the converted output through the stdout pipe. My guess is we're filling up a buffer somewhere, and we need to be writing and reading chunks simultaneously. I'll see what I can do.
Fixed for Evolution 3.11.91: https://git.gnome.org/browse/evolution/commit/?id=e15c81b8ee34fff9aa1da9085587e568e59da854
*** Bug 731344 has been marked as a duplicate of this bug. ***
I'm reopening this, it is still not fixed. The downstream bug report: https://bugzilla.redhat.com/show_bug.cgi?id=1136807 evolution-3.12.4-1.fc20.i686 evolution-debuginfo-3.12.4-1.fc20.i686 evolution-ews-3.12.4-1.fc20.i686 evolution-data-server-debuginfo-3.12.5-1.fc20.i686 evolution-data-server-3.12.5-1.fc20.i686 evolution-ews-debuginfo-3.12.4-1.fc20.i686 highlight-3.18-1.fc20.i686 but I'm able to reproduce this with git master too. Evolution backtrace shows:
+ Trace 234069
Thread 1 (Thread 0x7f090dff5a80 (LWP 20873))
(it's cut significantly, with webkit related stuff).
backtrace from highlight:
+ Trace 234070
Thread 1 (process 21122)
I dumped the previous fix and replaced it with a simpler, smaller (code-line wise), quicker and the most importantly working solution which doesn't depend on any Unix specific features which just break portability of the code. It's currently WebKit processing which takes most of the time of the large text processing, which can be indicated by a higher CPU usage. Created commit b10ef4f in evo master (3.13.6+) [1] Created commit 13008d6 in evo evolution-3-12 (3.12.7+) [1] https://git.gnome.org/browse/evolution/commit/?id=b10ef4f
*** Bug 734998 has been marked as a duplicate of this bug. ***
*** Bug 732690 has been marked as a duplicate of this bug. ***