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 355481 - Evolution stuck in a tight memory-claiming loop handling spell-checking in mailer
Evolution stuck in a tight memory-claiming loop handling spell-checking in ma...
Status: RESOLVED OBSOLETE
Product: GtkHtml
Classification: Other
Component: Editing
3.12.x
Other Linux
: High critical
: ---
Assigned To: gtkhtml-maintainers
gtkhtml-maintainers
Depends on:
Blocks:
 
 
Reported: 2006-09-11 19:43 UTC by Dave Malcolm
Modified: 2014-08-30 15:24 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Dave Malcolm 2006-09-11 19:43:46 UTC
evolution's GUI became unresponsive and memory usage started to rapidly climb (claimed roughly 512MB of heap over roughly 2 minutes), leading to the machine becoming more and more unreponsive as a whole

This is using Fedora development packages:
evolution-2.8.0-1.fc6
evolution-data-server-1.8.0-1.fc6

I captured this backtrace before killing it:
  • #0 move_spell_errors
    at htmltext.c line 2136
  • #1 object_merge
    at htmltext.c line 530
  • #2 html_object_merge
    at htmlobject.c line 911
  • #3 remove_empty_and_merge
    at htmlengine-edit-cut-and-paste.c line 325
  • #4 insert_object_for_undo
    at htmlengine-edit-cut-and-paste.c line 907
  • #5 insert_object
    at htmlengine-edit-cut-and-paste.c line 1128
  • #6 html_engine_insert_text_with_extra_attributes
    at htmlengine-edit-cut-and-paste.c line 1373
  • #7 html_engine_paste_text_with_extra_attributes
    at htmlengine-edit-cut-and-paste.c line 1404
  • #8 html_engine_paste_text
    at htmlengine-edit-cut-and-paste.c line 1411
  • #9 gtk_html_im_commit_cb
    at gtkhtml.c line 3233
  • #10 IA__g_cclosure_marshal_VOID__STRING
    at gmarshal.c line 496
  • #11 IA__g_closure_invoke
    at gclosure.c line 490
  • #12 signal_emit_unlocked_R
    at gsignal.c line 2438
  • #13 IA__g_signal_emit_valist
  • #14 IA__g_signal_emit_by_name
    at gsignal.c line 2265
  • #15 gtk_im_multicontext_commit_cb
    at gtkimmulticontext.c line 424
  • #16 IA__g_cclosure_marshal_VOID__STRING
    at gmarshal.c line 496
  • #17 IA__g_closure_invoke
    at gclosure.c line 490
  • #18 signal_emit_unlocked_R
    at gsignal.c line 2438
  • #19 IA__g_signal_emit_valist
  • #20 IA__g_signal_emit_by_name
    at gsignal.c line 2265
  • #21 ??
    from /usr/lib/gtk-2.0/immodules/im-scim.so
  • #22 IA__g_cclosure_marshal_VOID__STRING
    at gmarshal.c line 496
  • #23 IA__g_closure_invoke
    at gclosure.c line 490
  • #24 signal_emit_unlocked_R
    at gsignal.c line 2438
  • #25 IA__g_signal_emit_valist
    at gsignal.c line 2197
  • #26 IA__g_signal_emit_by_name
    at gsignal.c line 2265
  • #27 gtk_im_context_simple_commit_char
    at gtkimcontextsimple.c line 1011
  • #28 gtk_im_context_simple_filter_keypress
    at gtkimcontextsimple.c line 1222
  • #29 IA__gtk_im_context_filter_keypress
    at gtkimcontext.c line 288
  • #30 gtk_im_context_scim_new
    from /usr/lib/gtk-2.0/immodules/im-scim.so
  • #31 IA__gtk_im_context_filter_keypress
    at gtkimcontext.c line 288
  • #32 gtk_im_multicontext_filter_keypress
    at gtkimmulticontext.c line 286
  • #33 IA__gtk_im_context_filter_keypress
    at gtkimcontext.c line 288
  • #34 key_press_event
    at gtkhtml.c line 974
  • #35 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #36 g_type_class_meta_marshal
    at gclosure.c line 567
  • #37 IA__g_closure_invoke
    at gclosure.c line 490
  • #38 signal_emit_unlocked_R
    at gsignal.c line 2476
  • #39 IA__g_signal_emit_valist
    at gsignal.c line 2207
  • #40 IA__g_signal_emit
    at gsignal.c line 2241
  • #41 gtk_widget_event_internal
    at gtkwidget.c line 3901
  • #42 IA__gtk_window_propagate_key_event
    at gtkwindow.c line 4671
  • #43 gtk_window_key_press_event
    at gtkwindow.c line 4701
  • #44 bonobo_window_key_press_event
    at bonobo-window.c line 267
  • #45 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 83
  • #46 g_type_class_meta_marshal
    at gclosure.c line 567
  • #47 IA__g_closure_invoke
    at gclosure.c line 490
  • #48 signal_emit_unlocked_R
    at gsignal.c line 2476
  • #49 IA__g_signal_emit_valist
    at gsignal.c line 2207
  • #50 IA__g_signal_emit
    at gsignal.c line 2241
  • #51 gtk_widget_event_internal
    at gtkwidget.c line 3901
  • #52 IA__gtk_propagate_event
    at gtkmain.c line 2162
  • #53 IA__gtk_main_do_event
    at gtkmain.c line 1422
  • #54 gdk_event_dispatch
    at gdkevents-x11.c line 2320
  • #55 IA__g_main_context_dispatch
    at gmain.c line 2045
  • #56 g_main_context_iterate
    at gmain.c line 2677
  • #57 IA__g_main_loop_run
    at gmain.c line 2881
  • #58 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #59 main
    at main.c line 615
  • #60 __libc_start_main
    at libc-start.c line 231
  • #61 _start

Comment 1 André Klapper 2006-09-11 21:57:46 UTC
so the offending line is
        se = (SpellError *) spell_errors->data;

moving to gtkhtml
Comment 2 Matthew Barnes 2007-11-22 15:07:33 UTC
Possibly fixed in bug #495073.
Comment 3 André Klapper 2014-08-30 15:24:00 UTC
(In reply to comment #2)
> Possibly fixed in bug #495073.

Assuming so.