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 552673 - Using 100% CPU after hitting some message
Using 100% CPU after hitting some message
Status: RESOLVED DUPLICATE of bug 528372
Product: GtkHtml
Classification: Other
Component: Rendering
3.23.x
Other Linux
: Normal normal
: ---
Assigned To: Srinivasa Ragavan
Srinivasa Ragavan
Depends on:
Blocks:
 
 
Reported: 2008-09-17 17:33 UTC by Kjartan Maraas
Modified: 2008-09-18 16:43 UTC
See Also:
GNOME target: ---
GNOME version: 2.23/2.24


Attachments
example message (259.44 KB, application/x-compressed-tar)
2008-09-17 17:49 UTC, Kjartan Maraas
Details

Description Kjartan Maraas 2008-09-17 17:33:04 UTC
Backtrace:
(gdb) thread apply all bt full

Thread 1 (Thread 0xb7f1b760 (LWP 7216))

  • #0 IA__g_slist_reverse
    at gslist.c line 504
  • #1 get_glyph_items_in_range
    at htmltextslave.c line 651
  • #2 html_text_slave_get_glyph_items
    at htmltextslave.c line 666
  • #3 hts_calc_width
    at htmltextslave.c line 129
  • #4 html_text_slave_real_calc_size
    at htmltextslave.c line 209
  • #5 html_object_calc_size
    at htmlobject.c line 1081
  • #6 layout_line
    at htmlclueflow.c line 918
  • #7 html_clue_flow_layout
    at htmlclueflow.c line 1022
  • #8 html_clue_flow_real_calc_size
    at htmlclueflow.c line 1051
  • #9 html_object_calc_size
    at htmlobject.c line 1081
  • #10 html_cluev_do_layout
    at htmlcluev.c line 210
  • #11 html_object_calc_size
    at htmlobject.c line 1081
  • #12 html_cluev_do_layout
    at htmlcluev.c line 210
  • #13 html_object_calc_size
    at htmlobject.c line 1081
  • #14 html_engine_calc_size
    at htmlengine.c line 5205
  • #15 html_engine_update_event
    at htmlengine.c line 4731
  • #16 html_engine_timer_event
    at htmlengine.c line 4885
  • #17 html_engine_flush
    at htmlengine.c line 6831
  • #18 gtk_html_flush
    at gtkhtml.c line 6104
  • #19 emhs_sync_flush
    at em-html-stream.c line 130
  • #20 emss_process_message
    at em-sync-stream.c line 83
  • #21 g_idle_dispatch
    at gmain.c line 4232
  • #22 g_main_dispatch
    at gmain.c line 2142
  • #23 IA__g_main_context_dispatch
    at gmain.c line 2694
  • #24 g_main_context_iterate
    at gmain.c line 2775
  • #25 IA__g_main_loop_run
    at gmain.c line 2983
  • #26 bonobo_main
    at bonobo-main.c line 311
  • #27 main
    at main.c line 689

Thread 1 (Thread 0xb7f1b760 (LWP 7216))

  • #0 IA__g_slist_reverse
    at gslist.c line 504
  • #1 get_glyph_items_in_range
    at htmltextslave.c line 651
  • #2 html_text_slave_get_glyph_items
    at htmltextslave.c line 666
  • #3 hts_calc_width
    at htmltextslave.c line 129
  • #4 html_text_slave_real_calc_size
    at htmltextslave.c line 209
  • #5 html_object_calc_size
    at htmlobject.c line 1081
  • #6 layout_line
    at htmlclueflow.c line 918
  • #7 html_clue_flow_layout
    at htmlclueflow.c line 1022
  • #8 html_clue_flow_real_calc_size
    at htmlclueflow.c line 1051
  • #9 html_object_calc_size
    at htmlobject.c line 1081
  • #10 html_cluev_do_layout
    at htmlcluev.c line 210
  • #11 html_object_calc_size
    at htmlobject.c line 1081
  • #12 html_cluev_do_layout
    at htmlcluev.c line 210
  • #13 html_object_calc_size
    at htmlobject.c line 1081
  • #14 html_engine_calc_size
    at htmlengine.c line 5205
  • #15 html_engine_update_event
    at htmlengine.c line 4731
  • #16 html_engine_timer_event
    at htmlengine.c line 4885
  • #17 html_engine_flush
    at htmlengine.c line 6831
  • #18 gtk_html_flush
    at gtkhtml.c line 6104
  • #19 emhs_sync_flush
    at em-html-stream.c line 130
  • #20 emss_process_message
    at em-sync-stream.c line 83
  • #21 g_idle_dispatch
    at gmain.c line 4232
  • #22 g_main_dispatch
    at gmain.c line 2142
  • #23 IA__g_main_context_dispatch
    at gmain.c line 2694
  • #24 g_main_context_iterate
    at gmain.c line 2775
  • #25 IA__g_main_loop_run
    at gmain.c line 2983
  • #26 bonobo_main
    at bonobo-main.c line 311
  • #27 main
    at main.c line 689
The program is running.  Quit anyway (and detach it)? (y or n) y
Comment 1 Kjartan Maraas 2008-09-17 17:49:08 UTC
Created attachment 118894 [details]
example message
Comment 2 Kjartan Maraas 2008-09-17 17:49:57 UTC
I'm guessing this is just a general problem with huge messages, but I can't remember having been affected by it this much in a good while. I'm seeing this a lot while reading svn-commits-list from august.
Comment 3 Milan Crha 2008-09-18 14:18:26 UTC
I'm afraid to say it's the way how GtkHTML works. Every 10 ms it updates the view when parsing email, if I change this to 250 ms, then it's quicker, but awfully flickers. When I do this on every single write to the stream it flickers even more. It recalculates the text's slaves to fit in line too, but no t only that is slow.

I bet on WebKit, which I was told will be included as mail renderer in 2.26. (maybe more than just mail renderer, will see).
Comment 4 Milan Crha 2008-09-18 16:43:48 UTC
Err, I found a dupe for this, quite similar as this one, thus moving it there.

*** This bug has been marked as a duplicate of 528372 ***