Created attachment 1224 [details] valgrind output 3.9.0cvs51 Viewing a new message; but when I click on icon to view HTML, CM goes into 100% CPU. (Who wants the message privately?) The message content where CM starts 100% CPU loop (100% reproducible) is: td[class=3D"hero-cell"] {=20 padding: 0 0 30px !important;=20 }=20 td[class=3D"content-cell"] {=20 display: block !important;=20 padding: 0 0 2px 0 !important;=20 width: 300px !important;=20 <=== loop occurs after "!importa" }=20 td[class=3D"content-cell-top"] {=20 display: block !important;=20 padding: 0 !important;=20 width: 300px !important;=20 }=20 td[class=3D"content-cell-bottom"] {=20 display: block !important;=20 padding: 0 !important;=20 width: 300px !important;=20 }=20 valgrind attachment may be more valuable than below which is what I found before using valgrind.... ============ gory details follow ============== 11:51:20 $ top -n 1 # redacted 12692 pfortin 20 0 1072m 72m 21m R 100 0.9 8:02.45 claws-mail 11:52:12 $ top -n 1 12692 pfortin 20 0 1074m 73m 21m R 100 0.9 8:44.08 claws-mail # Mostly stopped while researching/debugging.... 13:19:27 $ top -n 1 12692 pfortin 20 0 1076m 76m 21m R 98 1.0 10:00.86 claws-mail Tracked it down to plugins/gtkhtml2_viewer/libgtkhtml/css/cssvalue.c:152 while (tmp_entry->next) { tmp_entry = tmp_entry->next; } strace showed only this... there was about 5-6 seconds between each brk. $ strace -p 12692 Process 12692 attached - interrupt to quit brk(0x447f000) = 0x447f000 brk(0x44a0000) = 0x44a0000 <=== +0x21000 brk(0x44c1000) = 0x44c1000 " brk(0x44e2000) = 0x44e2000 " brk(0x4503000) = 0x4503000 " brk(0x4524000) = 0x4524000 " brk(0x4545000) = 0x4545000 " gdb shows this loop... (gdb)stepi 152 while (tmp_entry->next) { 1: tmp_entry->next = (CssValueEntry *) 0x44b2fc0 <=== +0x40 each iteration (gdb) 0x00007f5c383d0383 152 while (tmp_entry->next) { 1: tmp_entry->next = (CssValueEntry *) 0x44b3000 (gdb) 0x00007f5c383d0387 152 while (tmp_entry->next) { 1: tmp_entry->next = (CssValueEntry *) 0x44b3000 (gdb) 0x00007f5c383d038a 152 while (tmp_entry->next) { 1: tmp_entry->next = (CssValueEntry *) 0x44b3000 (gdb) 152 while (tmp_entry->next) { <=== same as above 1: tmp_entry->next = (CssValueEntry *) 0x44b3000 (gdb) bt #0 css_value_list_append (list=0x3acb620, element=<optimized out>, list_sep=<optimized out>) at cssvalue.c:152 #1 0x00007f5c383cfad8 in css_parser_parse_atkeyword (base_url=0x0, ret_val=<synthetic pointer>, end_pos=999, start_pos=<optimized out>, buffer= 0x2d57400 "\n@charset \"utf-8\"; \n.ReadMsgBody { \n width: 100%; \n} \n.ExternalClass { \n width: 100%; \n} \nimg.banner { \n margin-left: 0 !important; \n margin-right: 0 !important; \n} \ntd { \n font-family: Arial, Helveti"...) at cssparser.c:1274 #2 css_parser_parse_stylesheet (str=<optimized out>, len=<optimized out>, base_url=<optimized out>) at cssparser.c:1505 #3 0x00007f5c383d1648 in html_document_node_inserted_traverser (document=0x1949a40, node=0x34dc160) at htmldocument.c:281 #4 0x00007f5c383d1c01 in html_document_new_node (parser=<optimized out>, node=0x34dc160, document=0x1949a40) at htmldocument.c:530 #5 0x00007f5c425d3354 in g_cclosure_marshal_VOID__OBJECTv () from /lib64/libgobject-2.0.so.0 #6 0x00007f5c425cfeca in ?? () from /lib64/libgobject-2.0.so.0 #7 0x00007f5c425e8711 in g_signal_emit_valist () from /lib64/libgobject-2.0.so.0 #8 0x00007f5c425e9212 in g_signal_emit () from /lib64/libgobject-2.0.so.0 #9 0x00007f5c3e6ca0f9 in ?? () from /usr/lib64/libxml2.so.2 #10 0x00007f5c3e6cfafd in htmlParseChunk () from /usr/lib64/libxml2.so.2 #11 0x00007f5c383f5bd9 in html_stream_write (stream=0x37c90a0, buffer=<optimized out>, size=10) at htmlstream.c:85 #12 0x00007f5c383c70da in gtkhtml2_show_mimepart_real (_viewer=0x2cf1730) at gtkhtml2_viewer.c:323 #13 0x00007f5c4231478b in ?? () from /lib64/libglib-2.0.so.0 #14 0x00007f5c42313bc3 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0 #15 0x00007f5c42313f10 in ?? () from /lib64/libglib-2.0.so.0 #16 0x00007f5c4231430a in g_main_loop_run () from /lib64/libglib-2.0.so.0 #17 0x00007f5c45ee9d57 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0 #18 0x00000000004474c1 in main (argc=1, argv=0x7fffaa37f2a8) at main.c:1710 (gdb) Registers.... each time through the loop, only rcx & rdx change (+0x40) (gdb) info r rax 0x4c82780 80226176 rbx 0x3acb620 61650464 rcx 0x2d6c5a0 47629728 <=== rdx 0x2d6c5a0 47629728 <=== rsi 0x4c82760 80226144 rdi 0x4 4 rbp 0x2a64a40 0x2a64a40 rsp 0x7fffaa37c2c0 0x7fffaa37c2c0 r8 0x18 24 r9 0x8 8 r10 0x0 0 r11 0x206 518 r12 0x3e7 999 r13 0x3acb620 61650464 r14 0x166 358 r15 0x0 0 rip 0x7f5c383d0383 0x7f5c383d0383 <css_value_list_append+83> eflags 0x206 [ PF IF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 (gdb) ************************************************************** Trying to kill CM with ^C is ignored, as is window close, until KDE offers to terminate it. Restarted with "claws-mail --debug". When I clicked on the HTML viewer icon, got this on the console: mimeview.c:854:text/html gtkhtml2_viewer.c:1219:gtkhtml2_viewer_create gtkhtml2_viewer.c:1253:setting minimum size to 9.00 (overriding 8.00) gtkhtml2_viewer.c:131:gtkhtml2_get_widget: 0x27b8b60 gtkhtml2_viewer.c:131:gtkhtml2_get_widget: 0x27b8b60 gtkhtml2_viewer.c:261:gtkhtml2_show_mimepart gtkhtml2_viewer.c:291:using charset ISO-8859-1 Unhandled property: 324 -webkit-text-size-adjust (claws-mail:25605): HtmlCss-WARNING **: Unhandled keyword 210 - @charset "utf-8"; .ReadMsgBody { width: 100%; } .ExternalClass { width: 100%; } img.banner { margin-left: 0 !important; margin-right: 0 !important; } td { font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: 1.231; border-collapse: collapse; } a { color:#0078c9; } @media only screen and (max-width: 480px) { td[id="pre-header"] { font-size: 9px !important; } table[class="table"] { width: 300px !important; max-width: 300px !important; display: block !important; padding: 0 !important; table-layout: fixed !important; margin:0px !important; } table[class="table-center"] { width: 300px !important; max-width: 300px !important; display: block !important; padding: 0 !important; table-layout: fixed !important; margin:0px !important; text-align:center; } td[class="hero-cell"] { padding: 0 0 30px !important; } td[class="content-cell"] { display: block !important; padding: 0 0 2px 0 !important; width: 300px !importa ###################################### ^C returned this; but did not quit... ^Cmain.c:2855:Quitting on signal 2 Moving on to valgrind.... see attachment....
Upgraded to 3.9.0cvs60 and problem persists. Started CM, went straight to the message and when I clicked on HTML view, went 100% CPU. Noticed these on the console this time in case it helps... Unhandled property: 324 -webkit-text-size-adjust (claws-mail:13803): HtmlCss-WARNING **: Unhandled keyword 210 -
Fixed. Thanks Colin!!