GNOME Bugzilla – Bug 468736
Memory consumption reaches 100% with text/calendar attachments without a plugin
Last modified: 2010-10-01 04:15:49 UTC
I clicked on print button to print an event notification mail.After clicking on print button,memory consumption increased continuously and reached up to 90% and then evolution crashed.Mean while status bar was displaying 'formatting message'. Gdb traces (evolution:13875): GLib-GObject-WARNING **: IA__g_object_get_property: object class `ECanvas' h as no property named `focused_item' Increasing itip formatter search count to 1 [New Thread 0xaeffeb90 (LWP 14120)] [New Thread 0xaf7ffb90 (LWP 14121)] Increasing itip formatter search count to 2 [Thread 0xaeffeb90 (LWP 14120) exited] [New Thread 0xaeffeb90 (LWP 14122)] [New Thread 0xb0000b90 (LWP 14123)] [New Thread 0xb11f0b90 (LWP 14124)] [New Thread 0xb09efb90 (LWP 14125)] [Thread 0xb11f0b90 (LWP 14124) exited] [Thread 0xb09efb90 (LWP 14125) exited] [Thread 0xaeffeb90 (LWP 14122) exited] [Thread 0xb0000b90 (LWP 14123) exited] [New Thread 0xb09efb90 (LWP 14127)] Decreasing itip formatter search count to 1 [Thread 0xaf7ffb90 (LWP 14121) exited] [Thread 0xb09efb90 (LWP 14127) exited] [New Thread 0xb09efb90 (LWP 14128)] Decreasing itip formatter search count to 0 [Thread 0xb09efb90 (LWP 14128) exited] Increasing itip formatter search count to 1 [New Thread 0xb09efb90 (LWP 14134)] [New Thread 0xaf7ffb90 (LWP 14135)] [New Thread 0xb0000b90 (LWP 14136)] [New Thread 0xaeffeb90 (LWP 14137)] Increasing itip formatter search count to 2 [Thread 0xb0000b90 (LWP 14136) exited] [New Thread 0xb0000b90 (LWP 14138)] [Thread 0xaf7ffb90 (LWP 14135) exited] [New Thread 0xb11f0b90 (LWP 14139)] [New Thread 0xaf7ffb90 (LWP 14140)] [Thread 0xb0000b90 (LWP 14138) exited] [Thread 0xaf7ffb90 (LWP 14140) exited] Decreasing itip formatter search count to 1 [Thread 0xaeffeb90 (LWP 14137) exited] [Thread 0xb11f0b90 (LWP 14139) exited] Decreasing itip formatter search count to 0 [Thread 0xb09efb90 (LWP 14134) exited] (evolution:13875): GLib-GObject-WARNING **: IA__g_object_get_property: object class `ECanvas' h as no property named `focused_item' [New Thread 0xb09efb90 (LWP 14148)] [Thread 0xb09efb90 (LWP 14148) exited] GLib-ERROR **: gmem.c:154: failed to allocate 227525 bytes aborting... Program received signal SIGTRAP, Trace/breakpoint trap.
+ Trace 156739
Thread 3016993680 (LWP 13885)
Created attachment 94035 [details] Screen shot Attached screen shot displays memory consumption and status bar.
Created attachment 94036 [details] Meeting which causes crash It appears for every event notification mail.I am attaching one sample meeting.
A full stacktrace after Evolution spins for awhile will show hundreds of those em_format_part / em_format_part_as / efh_text_plain frame triplets. I think I see why this is happening. The mailer does not register an EMFormatHandler for "text/calendar" MIME parts, so em_format_part_as() falls back to the generic "text/*" handler, which is efh_text_plain(). But efh_text_plain() explicitly defers to em_format_part() when the MIME type is "text/calendar". em_format_part() calls em_format_part_as(), which again tries to look up an EMFormatHandler for "text/calendar" MIME parts, fails, and falls back to the generic "text/*" handler... Rinse and repeat. So Evolution's format dispatcher and handler are essentially falling into an argument of "I thought you handled it." "No, I thought YOU handled it!" Apparently no one's handling it. Was this working in some previous version? Maybe I can go back and look at what changed.
Also, the attachment in comment #2 is an mbox file, not an iCalendar file, despite the .ics extension. Useful to know when trying to reproduce the bug.
Confirming, adjusting Priority.
Matthew, basically this scenario is with event notification mail and i don't think you have to import any file.It is easily reproducible. If you want to import my file,then import it as mbox file in Inbox or any other folder.When you will click print for this notification mail,you will get scenario easily. Let me know if you want any help.
I tried in OpenSUSE 10.2 (Evolution 2.8.2).It doesn't give error when i try to print but when i click on 'print preview',memory and CPU consumption go high and infinite loop will start. Here are the traces ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [New Thread -1316639856 (LWP 8345)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8345) exited] [Thread -1333609584 (LWP 8344) exited] [New Thread -1333609584 (LWP 8346)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [New Thread -1316639856 (LWP 8347)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1333609584 (LWP 8346) exited] [Thread -1316639856 (LWP 8347) exited] [New Thread -1316639856 (LWP 8348)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8348) exited] [New Thread -1316639856 (LWP 8349)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8349) exited] [New Thread -1316639856 (LWP 8350)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8350) exited] [New Thread -1316639856 (LWP 8351)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8351) exited] [New Thread -1316639856 (LWP 8352)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8352) exited] [New Thread -1316639856 (LWP 8353)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8353) exited] [New Thread -1316639856 (LWP 8354)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8354) exited] [New Thread -1316639856 (LWP 8355)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8355) exited] [New Thread -1316639856 (LWP 8356)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8356) exited] [New Thread -1316639856 (LWP 8357)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [New Thread -1333609584 (LWP 8358)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8357) exited] [Thread -1333609584 (LWP 8358) exited] [New Thread -1333609584 (LWP 8359)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [New Thread -1316639856 (LWP 8360)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1316639856 (LWP 8360) exited] [Thread -1333609584 (LWP 8359) exited] [New Thread -1333609584 (LWP 8361)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1333609584 (LWP 8361) exited] [New Thread -1333609584 (LWP 8362)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1333609584 (LWP 8362) exited] [New Thread -1333609584 (LWP 8363)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [New Thread -1316639856 (LWP 8364)] ** (evolution-2.8:8273): WARNING **: IPP request failed with status 1030 [Thread -1333609584 (LWP 8363) exited] [Thread -1316639856 (LWP 8364) exited] [New Thread -1316639856 (LWP 8365)] GLib-ERROR **: gmem.c:154: failed to allocate 228408 bytes aborting... Program received signal SIGABRT, Aborted.
+ Trace 158795
Thread NaN (LWP 8291)
Sigh, I dont see this if I build from source on OpenSUSE.
Created attachment 95415 [details] [review] Hack to prove my theory This fixes the issue and tells what the issue is. I will fix this for 2.12.1 in a better way (rejected this patch already).
Committed a cleaned up patch to stable/head.
Created attachment 139065 [details] test email This is a test email to prove it's not fixed :) It contains a meeting invitation, which opens fine when itip-formatter plugin is enabled, but having it disabled triggers this bug, the bottom of the trace looks like this: ...
+ Trace 216587
The whole system is quite unresponsive.
Created attachment 139074 [details] [review] proposed evo patch for evolution; when talking about hacks... I just didn't found how to detect a recursion in calling of these.
Sounds like the plugin should be marked as "system" so it's mandatory.
Created commit 781d9aa in evo master (2.29.1+)
I just hit this issue using the latest Evolution from the gnome-2-28 branch. Please consider backporting the fix to gnome-2-28.
OK, Created commit 323a524 in evo gnome-2-28 (2.28.2+)
*** Bug 597483 has been marked as a duplicate of this bug. ***